Skip to content

MCP & AI Access

Formtress runs a Model Context Protocol (MCP) server so AI clients can read your workspace: list forms, search submissions, check webhook deliveries, and report on usage. No glue code required: point any MCP-capable client at the endpoint and your agent can answer questions about your forms.

Access is read-only and workspace-scoped, and can be revoked at any time.

https://app.formtress.com/api/mcp
  • Transport: Streamable HTTP (stateless, JSON responses)
  • Server name: formtress
  • Methods: POST, GET, DELETE (plus OPTIONS for CORS preflight)
  • CORS: enabled, so browser-based clients work too

There are two ways to authenticate, depending on your client:

  • OAuth (recommended): supported natively by Claude connectors, ChatGPT Desktop, and most clients that follow the MCP authorization spec. Nothing to create or paste; you just sign in to Formtress and pick the workspace to expose.
  • API tokens: the fallback for scripts, CLIs, and clients without OAuth. MCP requests are authenticated with the same tokens as the public API. Create them in your dashboard under Connect → MCP & AI.
  1. Go to Connect → MCP & AI in your workspace dashboard.
  2. Click New token and give it a descriptive name (e.g. “Claude desktop”).
  3. Copy the token immediately; it is shown only once.

Send the token as an Authorization header:

Authorization: Bearer fmt_live_xxxxxxxxxxxxxxxxxxxx

For MCP clients that cannot set custom headers, you can pass the token as a query parameter instead: https://app.formtress.com/api/mcp?token=fmt_live_.... The token is part of the URL in that case, so treat the link like a password.

Works with claude.ai, the Claude Desktop app, and Claude mobile via OAuth (no token needed).

Setting up the Formtress connector in Claude (00:38)
  1. Open Claude → Settings → Connectors.
  2. Click + Add → Add custom connector.
  3. Fill in the information: Name: Formtress, MCP server URL: https://app.formtress.com/api/mcp, then Continue.
  4. Claude opens a Formtress sign-in. Authenticate, then pick the workspace to expose. Auth completes automatically.

For clients configured via config files rather than OAuth, here are copy-paste snippets.

Any client that supports manual MCP config works with a standard HTTP entry. For Cursor, add to ~/.cursor/mcp.json (global) or .cursor/mcp.json in your repo:

{
"mcpServers": {
"formtress": {
"type": "http",
"url": "https://app.formtress.com/api/mcp",
"headers": {
"Authorization": "Bearer fmt_live_..."
}
}
}
}

Claude Desktop supports OAuth natively for remote servers; try the connector flow above first. If you’d rather use a token, add this to claude_desktop_config.json (requires mcp-remote via npx):

{
"mcpServers": {
"formtress": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://app.formtress.com/api/mcp",
"--transport",
"http-only",
"--header",
"Authorization:${FORMTRESS_MCP_AUTH}"
],
"env": {
"FORMTRESS_MCP_AUTH": "Bearer fmt_live_..."
}
}
}
}

The agent can call any of these tools once your token is configured. It’ll typically call list_forms first to discover ids, then use them for follow-up queries.

ToolDescription
get_workspaceWorkspace id, name, slug, allowed URLs, and plan.
get_usageCurrent billing-period submission count vs plan limit, percent used, remaining, and period dates.
list_formsAll forms in the workspace (id, name, field count, redacted integration summaries).
get_formFull form details - fields, ban rules, and configured integrations. Webhook URLs are redacted to host-only so secret paths are never exposed.
list_submissionsRecent submissions, optionally filtered by form, type (clean, sus, spam, test), and date range. Paginated via cursor.
get_submissionA single submission with all field data and metadata.
search_submissionsFull-text search over submission field values and email (case-insensitive substring match).
list_webhook_attemptsRecent webhook delivery attempts for a form, with success/failure status and HTTP response codes.
analytics_timeseriesDaily breakdown of clean, suspicious, and bot-blocked submissions across the workspace.
analytics_top_formsForms ranked by clean submission count.
analytics_top_countriesTop submission countries (anonymised aggregate).
analytics_top_pagesTop pages where submissions originated.

Forms are also exposed as MCP resources at formtress://forms/{formId}, so clients with a resource browser (Claude Desktop, Cursor) can list and attach them directly.

Once connected, try asking your assistant things like:

  • “Show me new submissions on my contact form today.”
  • “Find submissions mentioning acme.com.”
  • “Did my Zapier webhook fire? Any failures?”
  • “How close am I to my plan’s submission limit?”
  • “Which form got the most submissions this month?”

MCP requests are rate limited separately from the REST API so AI clients don’t trip on connection bursts:

PlanREST APIMCP
Free60 requests/min120 requests/min
Paid60 requests/min600 requests/min

Exceeding a limit returns 429. If you’re building a heavy integration, batch your reads and cache responses where possible.

Free workspaces can keep up to 2 active tokens; paid plans allow 10. MCP and the REST API are available on all plans.

The MCP server is a thin layer over Formtress’s read-only public API (https://app.formtress.com/api/v1), which is CORS-enabled and uses the same fmt_live_ tokens. The MCP page in your dashboard links to the full API & MCP reference.