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.
Endpoint
Section titled “Endpoint”https://app.formtress.com/api/mcp- Transport: Streamable HTTP (stateless, JSON responses)
- Server name:
formtress - Methods:
POST,GET,DELETE(plusOPTIONSfor CORS preflight) - CORS: enabled, so browser-based clients work too
Authentication
Section titled “Authentication”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.
- Go to Connect → MCP & AI in your workspace dashboard.
- Click New token and give it a descriptive name (e.g. “Claude desktop”).
- Copy the token immediately; it is shown only once.
Send the token as an Authorization header:
Authorization: Bearer fmt_live_xxxxxxxxxxxxxxxxxxxxFor 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.
Connecting a client
Section titled “Connecting a client”Works with claude.ai, the Claude Desktop app, and Claude mobile via OAuth (no token needed).
- Open Claude → Settings → Connectors.
- Click + Add → Add custom connector.
- Fill in the information: Name:
Formtress, MCP server URL:https://app.formtress.com/api/mcp, then Continue. - Claude opens a Formtress sign-in. Authenticate, then pick the workspace to expose. Auth completes automatically.
ChatGPT Desktop connects via OAuth too: no token needed.
- Open ChatGPT → Plugins, click Add → Add custom MCP server.
- Fill in the information: Name:
Formtress, Server URL:https://app.formtress.com/api/mcp, check the checkbox, and create the plugin. - ChatGPT opens a Formtress sign-in. Authenticate, then pick the workspace to expose. Auth completes automatically.
The Claude Code CLI accepts remote HTTP servers natively:
claude mcp add --transport http formtress https://app.formtress.com/api/mcp --header "Authorization: Bearer fmt_live_..."Replace fmt_live_... with one of your tokens. Add --scope user to make the server available in every project, or leave it out to scope it to the current project.
Manual configuration
Section titled “Manual configuration”For clients configured via config files rather than OAuth, here are copy-paste snippets.
Cursor / VS Code / other
Section titled “Cursor / VS Code / other”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 config file
Section titled “Claude Desktop config file”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_..." } } }}Available tools
Section titled “Available tools”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.
| Tool | Description |
|---|---|
get_workspace | Workspace id, name, slug, allowed URLs, and plan. |
get_usage | Current billing-period submission count vs plan limit, percent used, remaining, and period dates. |
list_forms | All forms in the workspace (id, name, field count, redacted integration summaries). |
get_form | Full form details - fields, ban rules, and configured integrations. Webhook URLs are redacted to host-only so secret paths are never exposed. |
list_submissions | Recent submissions, optionally filtered by form, type (clean, sus, spam, test), and date range. Paginated via cursor. |
get_submission | A single submission with all field data and metadata. |
search_submissions | Full-text search over submission field values and email (case-insensitive substring match). |
list_webhook_attempts | Recent webhook delivery attempts for a form, with success/failure status and HTTP response codes. |
analytics_timeseries | Daily breakdown of clean, suspicious, and bot-blocked submissions across the workspace. |
analytics_top_forms | Forms ranked by clean submission count. |
analytics_top_countries | Top submission countries (anonymised aggregate). |
analytics_top_pages | Top pages where submissions originated. |
Resources
Section titled “Resources”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.
Example prompts
Section titled “Example prompts”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?”
Rate limits
Section titled “Rate limits”MCP requests are rate limited separately from the REST API so AI clients don’t trip on connection bursts:
| Plan | REST API | MCP |
|---|---|---|
| Free | 60 requests/min | 120 requests/min |
| Paid | 60 requests/min | 600 requests/min |
Exceeding a limit returns 429. If you’re building a heavy integration, batch your reads and cache responses where possible.
Token limits
Section titled “Token limits”Free workspaces can keep up to 2 active tokens; paid plans allow 10. MCP and the REST API are available on all plans.
Underlying REST API
Section titled “Underlying REST API”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.