Mintlify provides the documentation search MCP. It does not turn OpenAPI
operations into callable action tools. Use the API action MCP when an agent
needs live TFUAI data.
Connect
The endpoint accepts either credential. Pick by how the client runs:
- OAuth suits hosted assistants such as Claude, ChatGPT, and Gemini. The user signs in and approves the scopes in a browser, so no secret is ever pasted into a chat. Most clients only need the server URL.
- API keys suit scripts, backend jobs, and self-hosted clients where no person is present to approve a browser prompt.
OAuth
Point the client athttps://api.teamfollowup.ai/api/mcp and let it run
discovery. An unauthenticated request returns 401 with the pointer that
starts the flow:
What to expect during the flow:
- PKCE is required,
S256only. A request without a code challenge is refused. - The consent screen lists the exact scopes the client asked for. Anything the user does not grant is not issued.
- Access tokens last 1 hour. Refresh tokens last 30 days and rotate on every use, so a refresh token is only ever valid once.
- Reusing a spent refresh token or authorization code revokes that whole token family. This is the standard response to a stolen token, and it means the client must store the newest refresh token it received.
/revoke.
API keys
Send the key as a bearer token:Tool visibility
tools/list returns only tools that meet both conditions:
- The operation is enabled for the current MCP release.
- The credential carries the operation’s required scope.
tools/list and refused if called by name.
For broad credentials, narrow the advertised catalog with a comma-separated
module filter. Module names are lowercase tag slugs:
400 with the valid module names.
Reads and writes
The MCP advertises every published read operation, plus the write operations whose effect stays inside the platform. A credential withagents:write can
create, update and delete agents; one with campaign_workflows:write can edit
workflows.
Write tools carry standard MCP annotations so your client knows when to ask
before running one:
A create is annotated
destructiveHint: false. An update or delete is
destructiveHint: true.
Operations the MCP does not expose
Some published operations are deliberately absent fromtools/list, no matter
how broad the key is. They place calls to real people, spend money, or cannot
be undone, and the consequence of a model getting one wrong does not stay
inside the platform:
Call these through the REST API, where a person is making the request. The
tools stay withheld rather than being scope-gated because the risk is about who
is deciding, not about what the key is allowed to do.
Tool arguments
Tool schemas preserve the original OpenAPI parameter locations:path, because the optional expectedVersion in its
body is the sole thing a body would carry.
A contact call-history read can accept:
Results
- Every operation published today answers with JSON, which returns as both MCP text content and structured content.
- Public API errors return tool results with
isError: trueand the original safe error body. The HTTP status is on the result as_meta["tfuai/httpStatus"]. - Network failures, timeouts, and oversized responses fail as tool errors.
Common connection errors
Use the Authentication page for scopes and key management.
