MCP Server
RapidForm ships a remote Model Context Protocol server, so AI assistants such as Claude, Cursor and any other MCP client can build forms, read submissions and manage webhooks for you in plain language. Ask "make me a quote request form for a landscaping company and publish it" and the assistant designs the fields, creates the form and hands you the link.
The MCP server uses the same API keys, workspace scoping, rate limits and plan rules as the REST API. It is included in the Pro and Business plans.
Server URL
https://rapidform.com/mcp
Transport: Streamable HTTP. Two ways to authenticate, depending on your client:
- Sign in with RapidForm (OAuth) — for Claude.ai, ChatGPT and other clients that ask for a server URL and then open a login window. Nothing to copy.
- API key — for Claude Code, Cursor, Claude Desktop and scripts that let you set an
Authorizationheader. Create the key under API in your RapidForm sidebar.
Sign in with RapidForm (Claude.ai, ChatGPT)
- In the client, add a custom connector or MCP server and paste
https://rapidform.com/mcp. Leave any client ID and secret fields empty; the client registers itself. - The client opens RapidForm. Log in if needed, check the workspace shown, and click Allow access.
- You're back in the client with the RapidForm tools available.
The connection acts on your current workspace, the one selected in your dashboard when you approved it. It needs a Pro or Business plan; a Free account can connect but every request is refused with plan_required until you upgrade.
Access lasts 30 days and is refreshed automatically while the client stays in use. To revoke it, open API in the sidebar and click Disconnect next to the app under "Connected apps".
Connecting with an API key
Replace YOUR_API_KEY with the full key, including the numeric prefix and pipe (for example 12|rf_…).
Claude Code
claude mcp add --transport http rapidform https://rapidform.com/mcp \
--header "Authorization: Bearer YOUR_API_KEY"
Cursor
Add to .cursor/mcp.json in your project, or ~/.cursor/mcp.json globally:
{
"mcpServers": {
"rapidform": {
"url": "https://rapidform.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
Claude Desktop
Claude Desktop's config file only launches local servers, so bridge to the remote server with mcp-remote. Add to claude_desktop_config.json:
{
"mcpServers": {
"rapidform": {
"command": "npx",
"args": [
"-y", "mcp-remote", "https://rapidform.com/mcp",
"--header", "Authorization: Bearer YOUR_API_KEY"
]
}
}
}
Other clients
Any client that supports remote Streamable HTTP servers works: either sign in through the OAuth flow above, or send the header Authorization: Bearer YOUR_API_KEY. The server advertises itself through the standard /.well-known/oauth-authorization-server metadata and supports dynamic client registration and PKCE, so no manual client setup is needed on either side.
Verifying the connection
Ask your assistant to "call get-account on RapidForm". It should reply with your workspace name, plan and usage. If the tools do not appear, the key is missing, revoked, or belongs to a Free account.
What the assistant can do
Every tool operates on the workspace the API key was created for. Forms in other workspaces are invisible to it.
| Tool | What it does | Arguments |
|---|---|---|
get-account |
Plan, limits and usage for this key. Assistants call it first. | — |
list-forms |
Forms in the workspace, newest first, with URL and submission count. | status, page, per_page |
get-form |
One form with its full field list, settings and theme. | form_id |
create-form |
Creates a form with fields, settings and theme. Drafts by default. | name, fields, internal_name, status, settings, theme |
update-form |
Changes name or status, merges settings and theme, replaces fields if given. | form_id + any of the above |
replace-form-fields |
Replaces the complete field list only. | form_id, fields |
delete-form |
Deletes a form. Marked destructive, so assistants confirm first. | form_id |
list-submissions |
Submissions newest first, cursor paginated, with unread and since filters. |
form_id, per_page, cursor, unread, since |
get-submission |
One submission with answers keyed by field label. | submission_id |
get-form-analytics |
Views, submissions and conversion for 7, 30 or 90 days. | form_id, period |
list-webhooks |
Webhooks on a form. | form_id |
add-webhook |
Adds a webhook URL, up to five per form. | form_id, url, active |
remove-webhook |
Removes a webhook. | form_id, webhook_id |
Arguments have the same names, types and rules as the REST API. See Forms API for the field object, settings and theme, and Submissions API for the submission object.
Resource
rapidform://reference/field-types is a Markdown reference of every field type, the field object keys, validation rules and conditional logic, with a complete example. Assistants read it before designing a form.
Prompt
build-form takes a description (and optional publish, default yes) and walks the assistant through checking the plan, reading the field reference, creating the form and reporting the link and embed snippet.
Example conversations
- "Create a contact form with name, email, a dropdown for the topic (Sales, Support, Partnership) and a message. Publish it and give me the embed code."
- "Show me the last 10 submissions to the Newsletter form and summarise the common questions."
- "Add a 'Company size' dropdown to the contact form that only shows when 'Are you a business?' is Yes."
- "How is the quote request form converting this month compared to the last 7 days?"
- "Send every new submission of the demo request form to https://hooks.example.com/demo."
Limits and safety
- Requests share the API key's limit of 120 per minute.
- Tools return clear error messages on invalid input, so the assistant can correct itself instead of creating a broken form.
delete-formandremove-webhookare flagged as destructive; well-behaved clients ask for confirmation before running them.- Revoke the key, or disconnect the app, under API in the sidebar to cut off an assistant immediately.