Fillout MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Fillout MCP Server Summarize this week's responses to my Customer feedback form"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Fillout MCP Server
A Model Context Protocol server for Fillout. It lets Claude, Cursor, ChatGPT and other AI agents work with your forms and submissions.
Unofficial. This is a community project and is not affiliated with Fillout. It was built from Fillout's public REST API docs.
What you can ask your agent
"Summarize this week's responses to my Customer feedback form and group the complaints by theme."
"Which leads from the Demo request form mentioned a budget over $10k? Put them in a table."
"Import these 8 rows from my CSV into the Event signup form."
"Set up a webhook so new Applications go to
https://hooks.example.com/apply."
Related MCP server: Formswrite MCP
Tools
Tool | What it does | Writes? |
| List all forms (name + id) | No |
| Questions, types, calculations, URL params, quiz/payment fields | No |
| Filter by date range, status, free-text search; paginated; compact output | No |
| One submission by id | No |
| Create 1–10 submissions (imports, back-fills) | Yes |
| Permanently delete a submission | Destructive |
| Send new submissions to a URL | Yes |
| Remove a webhook | Yes |
Submissions are returned in a compact, token-friendly shape: answers are keyed by question name, and empty fields are dropped. Pass raw: true to get Fillout's full objects instead. Destructive tools carry MCP destructiveHint annotations, so clients can ask before running them.
Setup
Create an API key in Fillout: Settings → Developer → API key.
Build it:
git clone https://github.com/OfirOhan/fillout-mcp.git
cd fillout-mcp && npm install && npm run buildClaude Desktop
Add this to claude_desktop_config.json:
{
"mcpServers": {
"fillout": {
"command": "node",
"args": ["/absolute/path/to/fillout-mcp/dist/index.js"],
"env": { "FILLOUT_API_KEY": "your_api_key" }
}
}
}Cursor / Claude Code / other MCP clients
Use the same command, node /path/to/fillout-mcp/dist/index.js, with FILLOUT_API_KEY in the environment. For Claude Code:
claude mcp add fillout -e FILLOUT_API_KEY=your_api_key -- node /path/to/fillout-mcp/dist/index.jsConfiguration
Variable | Default | Notes |
| (required) | Fillout API key |
|
| Set to |
| (from region) | Override for self-hosted instances |
Development
npm install
npm test # builds, runs unit tests and an end-to-end MCP stdio test against a fake Fillout APIThe tests run on Node 20, 22 and 24 in CI.
Notes & limits
Fillout's API limits requests to 5 per second per key.
Submissions created via the API don't trigger Fillout notifications, workflows or integrations. This is Fillout's behaviour.
Author
Built by Ofir Ohana, an AI agents engineer. Issues and PRs are welcome.
License
MIT
Available Tools
8 toolscreate_submissionsCreate submissionsA
Create 1-10 submissions for a form (for example, to import data). Call get_form first to get question ids. Note: submissions created via the API do not trigger Fillout notifications, workflows or integrations.
Inputs: formId (required), submissions (required).
create_webhookCreate webhookA
Register a URL that Fillout calls on every new submission to a form. Returns the webhook id.
Inputs: url (required), formId (required).
delete_submissionDelete submissionADestructive
Permanently delete a submission. This cannot be undone, so confirm with the user first.
Inputs: formId (required), submissionId (required).
delete_webhookDelete webhookBDestructive
Remove a webhook by its id.
Inputs: webhookId (required).
get_formGet form structureARead-only
Get a form's questions (id, name, type) plus calculations, URL parameters, scheduling, payment and quiz fields. Use the question ids when creating submissions.
Inputs: formId (required).
get_submissionGet submissionCRead-only
Get one submission by ID.
Inputs: formId (required), submissionId (required), raw, includeEditLink.
list_formsList formsARead-only
List all Fillout forms in the account (name and formId).
Inputs: no named parameters.
list_submissionsList submissionsARead-only
Query a form's submissions with date range, status, text search and pagination. Returns compact records (answers keyed by question name) unless raw=true.
Inputs: formId (required), raw, sort, limit, +6 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 8 tools
Tools cleanly separate into three resources: forms (list_forms, get_form), submissions (get_submission, list_submissions, create_submissions, delete_submission), and webhooks (create_webhook, delete_webhook). Each tool has a distinct resource+action pairing with no meaningful overlap.
Every tool follows a strict verb_noun snake_case pattern (list_forms, get_form, create_submissions, delete_webhook, etc.). The convention is applied uniformly across all resources with no deviations.
Eight tools is well-scoped for a forms/submissions/webhooks domain, with each tool earning its place. No redundant or filler tools are present.
Submission lifecycle is well covered (create, get, list, delete) and webhooks have create/delete, but there is no list_webhooks to discover existing webhooks, and no form create/update (arguably out of scope for an API). These are minor gaps an agent can mostly work around.
Maintenance
Related MCP Connectors
Read Fillout forms and submissions, export responses, and create submissions and webhooks.
Build, edit and publish forms and read their responses from your AI assistant.
Give AI agents access to form submissions — read, search, update, and process file attachments.
Browse Formstack forms, submissions and webhooks, search responses, and create submissions.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceEnables form management, response handling, and analytics through the Fillout.io API for enhanced form interactions and insights.-

Formswrite MCPofficial
AlicenseNot gradedqualityDmaintenanceEnables LLMs to convert documents to Google Forms, edit questions, list and publish forms, and run AI form assistant tools through the Formswrite API.MIT- FlicenseNot gradedqualityDmaintenanceEnables form management, response handling, and analytics via the Fillout.io API, allowing users to create, update, and fetch forms and submissions through natural language.-
- AlicenseNot gradedqualityDmaintenanceExposes the Filly Forms REST API as MCP tools for AI agents, enabling form type listing, record CRUD, data preview, and document upload with AI extraction.MIT