
Your agent has to answer questions about meetings: the pricing concession on Tuesday's call, the action items from standup, the commitment a customer made three weeks ago. Tactiq already holds those transcripts. So you go looking for its developer surface and find a hosted MCP server, and no public REST API reference.
That changes the usual MCP vs API framing. The real choice is between an agent that pulls meeting context on demand through MCP, and pipelines that receive meeting data when Tactiq pushes it. Here's how the two compare, and how to run the MCP path in production.
Only one of these is an interface an agent can query. That asymmetry drives everything below.
Tactiq builds and maintains a remote, HTTP-based MCP server at mcp.tactiq.io. There is nothing to install locally. Tactiq positions the same endpoint for Claude, Claude Code, Cursor, ChatGPT, Codex, and n8n, and it is a verified connector in Claude's directory.
Authorization is a browser-based OAuth sign-in. Tactiq's help center is explicit that there are no static API keys. The server exposes nine tools, and every one reads data. The single side effect: get_meeting starts summary generation when a meeting has no summary yet.
Access mirrors Tactiq's own sharing model. An agent sees the owned, shared, team, and space meetings the signed-in user can already open, and nothing more.
Tactiq does not publish a public REST API reference, a developer portal, or an API key flow. Its help center documents three programmatic surfaces: the MCP server, Tactiq Workflows, and a Zapier integration.
Workflows are post-meeting pipelines configured under My Workflows in the Tactiq dashboard. They run AI prompt steps and share the output to integrations such as Slack, Notion, HubSpot, and Linear, or email it to participants. Tactiq's Zapier app exposes a trigger that fires when a meeting transcript is ready.
Both push data forward after a meeting ends. Neither accepts a question. For the rest of this comparison, "the API path" means these push channels, because they are what exists.
Four dimensions matter: capability, auth, operational surface, and fit. The capability gap here is structural, so start there.
Tool names below are Tactiq's own. Scalekit's connector prefixes each one with tactiqmcp_.
The pattern is clean. MCP is a query surface with no events; the push paths are events with no query surface. Neither writes to Tactiq, so an agent that acts on a meeting (updates a CRM record, posts a Slack follow-up, files a Linear issue) always needs a second connector. Tactiq agents are multi-tool agents by construction.
Tactiq's tool descriptions carry an operating contract the model has to follow. get_meeting never returns the full transcript. If no summary exists, it returns detailedSummary: { status: 'generating', jobId }, and the agent polls get_generation_status until the status is ready. A failed status is terminal; the fix is a fresh get_meeting call.
Excerpt references expire. An excerptId from get_transcript_excerpts stops working after about an hour, so an agent cannot cache excerpt IDs across sessions. Each excerpt call returns at most 10 moments. An empty list means nothing matched the wording, not that the topic never came up, so prompts that rephrase before concluding "not discussed" produce better answers.
Full transcripts through get_transcript are capped at 10 distinct meetings per hour per user. Excerpt reads are capped at 100 distinct meetings per hour per user. Meetings already read inside the window don't count again.
That ceiling settles a design question. An agent that pulls full transcripts to "be thorough" can exhaust its hourly budget on a single research question across a quarter of calls. The server is built for excerpts-first retrieval: search for the meeting, read the AI summary, then pull the specific quotes. Full transcripts are for jobs that need the whole text, like translation. Leaving get_transcript out of an agent's tool surface is often the right default.
The MCP path is OAuth only. A user completes a browser consent screen and grants some or all of four scopes: mcp:meetings:own for their own meetings, mcp:meetings:shared for meetings shared with them, mcp:meetings:spaces for shared spaces, and mcp:meetings:details for summaries, AI artifacts, and transcripts. Revoking the grant from Tactiq's MCP settings invalidates access immediately.
The push paths authenticate differently. A Workflow runs inside the Tactiq account of the user who built it and holds credentials for each destination. A Zap runs under the Zapier account that connected Tactiq. In both cases the credential lives in a system your agent does not control.
Any Tactiq user can connect. Free and Pro plans allow search and list; details, summaries, and transcripts need a Team seat. The connect step succeeds either way, so the failure surfaces later as a tool error naming the missing mcp:meetings:details permission.
Upgrades don't fix existing grants. Tactiq's help center notes that a connection keeps the permissions approved when it was created, so a user who upgrades must reauthorize. Your agent needs a code path for this: detect the permission error and send that user a fresh authorization link.
Consent needs a browser once. After that, a server-side OAuth client that stores and refreshes the token can call the server without the user present, which is how background agents work here.
On the MCP path, Tactiq owns tool schemas, summary generation, transcription, and access rules. You own everything around the grant: OAuth client registration, per-user token storage, refresh, revocation handling, plan and scope errors, per-user rate-limit backoff, and tenant isolation. Tool schemas are defined server-side, so they change when Tactiq ships changes. Pin expected behavior with integration tests, not a version header.
On the push path, you own a receiving system and, with it, a copy of every transcript that lands there. That copy needs retention rules, access control, and deletion that stay consistent with Tactiq's own sharing model. A trigger fires on new transcripts; it does not backfill history, so questions about older meetings still need MCP.
Use Tactiq MCP when:
Use the push paths when:
Production designs often use both: a workflow or Zapier trigger as the signal, and an MCP-backed agent that finds the meeting and reasons over it.
Neither path removes per-user credentials. Each one just puts them in a different place.
In a B2B agent, each of your customers' users has their own Tactiq account, plan, and sharing graph. Two hundred users means two hundred OAuth grants, each with its own scope set, plan status, refresh cycle, and revocation state.
A shared Tactiq account is not a shortcut. MCP returns what the signed-in identity can open, so a shared account hands one person's view of Tactiq to every user of your product: too little for most of them, far too much for the rest. The push paths are no better, because each Workflow or Zap is bound to the user who configured it. What the user can't do, the agent can't do, and that only holds when the agent acts with the user's own grant.
Tactiq issues the grant. It does not give you a vault for two hundred of them, per-tenant isolation, refresh orchestration, a re-consent flow when a user upgrades to Team, or an audit trail of which agent read which transcript on whose behalf.
Meeting transcripts are some of the most sensitive data an agent will touch: pricing, hiring decisions, board discussions. The token lifecycle around them is infrastructure, whichever path you choose.
Recommended reading: How to Handle Token Refresh for AI Agents
Scalekit's Tactiq MCP connector handles the OAuth 2.1 flow, including Dynamic Client Registration (DCR), and stores each user's tokens in an AES-256 vault namespaced per tenant. Tokens refresh automatically and are resolved server-side at request time, so credentials never touch the agent runtime or the LLM context. Every call is scope-checked and logged against the user who authorized it. The MCP vs push decision stops changing your auth infrastructure.
The walkthrough below uses Python and LangChain. It calls Tactiq's tools through Scalekit's execute_tool first, then moves the same agent behind a Virtual MCP server. The Tactiq MCP connector docs list every tool and its parameters.
Create a Tactiq MCP connection in the Scalekit dashboard under AgentKit, then Connections. The connection name you set there must match TACTIQ_CONNECTION_NAME exactly; a mismatch is the most common integration error. Users who need summaries or transcripts need Tactiq Team seats.
Each user authorizes Tactiq once. get_or_create_connected_account returns that user's connected account, and get_authorization_link produces the consent link while it isn't active yet.
In production, redirect the user to the link instead of blocking on input(). Tell users to keep the meeting-details permission selected on Tactiq's consent screen, or summary reads fail later. The same function doubles as the re-consent path after a plan upgrade.
The agent is not loading a connector catalog. It is loading the tools this user's connected account is authorized to call, and a tool_names filter narrows that surface further. The LangChain adapter wraps list_scoped_tools and returns native StructuredTool objects.
tactiqmcp_get_transcript is left out deliberately; the 10-meetings-per-hour budget is too tight for an agent that might reach for it reflexively. Six tools instead of nine. Tool bloat is an accuracy problem and a cost problem, and scoped surfaces fix both.
Each tool invocation runs execute_tool with the user's vaulted credential. Plan and scope failures come back as tool results rather than exceptions, so the model can tell the user to upgrade or reauthorize. Today's date goes into the system prompt so date-range searches resolve correctly.
Because Tactiq MCP is read-only, useful Tactiq agents pull from more than one system. A meeting prep agent needs tomorrow's events from Google Calendar and past context from Tactiq. Virtual MCP servers give that agent one scoped endpoint: one server definition per agent role, and a short-lived session token per user per run. There is no MCP server to deploy, host, or maintain.
The server definition declares exactly which connections and tools the agent can see. Both connection names must match the dashboard.
Five tools across two connections, instead of Tactiq's nine plus the full Google Calendar connector catalog. The endpoint is static; the identity is not.
Before each run, confirm the user has active grants on every connection in the server, then mint a token bound to that user.
Session tokens default to about an hour. Set expiry above the expected run time, and call create_session_token again for the next run; that call is the remint, and there is no separate refresh endpoint.
LangChain reaches the endpoint through langchain-mcp-adapters, with the session token as a bearer header.
One server definition now serves every user in every tenant. User A's session token resolves user A's Tactiq and Calendar grants; it cannot reach user B's. For a complete version of this pattern, start from the sales call prep agent template.
Tool-level logs are what turn a working demo into an agent a security team will approve.
Every Tactiq tool call Scalekit executes for your agent is logged with full attribution: who authorized it, which agent ran it, and what came back. For Tactiq, that is a record of which meeting an agent fetched and for which user. The connector keeps 90 days of history, exports to your SIEM, and separates failures by source.
A security reviewer will ask which agent read the transcript of the leadership offsite, and on whose behalf. Without tool-level logs, the answer is a guess reconstructed from LLM traces.
Failure separation matters for debugging too. A Tactiq plan-gating error, a per-user rate limit, and a revoked grant look alike in agent output, but they have three different fixes. More on this pattern in agent tool observability.
If your agent answers questions over meeting history, quotes what people said, or combines meeting context with other tools, build against Tactiq MCP. There is no REST alternative for on-demand queries, and the server's excerpts-first design rewards agents that search before they read.
If you need the same artifact after every meeting, or an event the moment a transcript is ready, Tactiq Workflows or the Zapier trigger are simpler and need no agent code. Many production designs pair them: a push event as the signal, an MCP agent as the reasoner.
Either way, every Tactiq user brings their own grant, plan, and scopes. That lifecycle is the part that needs production-grade infrastructure. For a deeper look at credential ownership across agent tool-calling patterns, see how different architectures handle token storage and delegation.
When moving from a single user to multiple tenants, the auth model changes significantly — per-user grants, scope isolation, and revocation all need to be designed explicitly.
Building a Tactiq agent for multiple users or tenants? Talk to us for immediate help with your auth and tool-scoping design.
To start on your own, read the Tactiq MCP connector docs, browse the Tactiq MCP connector, and check AgentKit pricing. Agent templates such as the sales call prep agent and the CRM AI agent show the same per-user pattern across meeting and CRM tools. Comparing meeting tools? Read Granola MCP vs Granola API for AI Agents.