MCP Server for the Fillout.io API, enabling form management, response handling, and analytics.
Get your Fillout.io API Key:
API Key Information:
fo_live_
fo_test_
Replace your-fillout-api-key
in the configuration with your API key.
⚠️ Security Notes:
"Invalid API key provided" or "Authentication failed"
fo_live_
or fo_test_
"Test mode key used with live form"
fo_test_
) with production form"Rate limit exceeded"
Check API Key Format:
# Key should:
- Start with 'fo_live_' or 'fo_test_'
- Be approximately 50 characters
- Contain only letters, numbers, and underscores
Test API Key:
curl -H "Authorization: Bearer your-api-key" \
https://api.fillout.com/v1/api/forms
list_forms
limit
(optional): Number of forms to returnoffset
(optional): Pagination offsetget_form
formId
(string): Form identifiercreate_form
name
(string): Form namedescription
(optional string): Form descriptionquestions
(array): Array of question objects
type
: Question type (e.g., 'ShortAnswer', 'MultipleChoice')name
: Question textrequired
: Whether question is requiredchoices
: Array of choices for multiple choice questionsget_form_responses
formId
(string): Form identifierfilters
(optional): Response filterspageSize
(optional): Results per pageafterDate
(optional): Filter by submission datebeforeDate
(optional): Filter by submission datestatus
(optional): Filter by completion statussubmit_form_response
formId
(string): Form identifierresponses
(array): Array of answers
questionId
: Question identifiervalue
: Response valuecalculations
(optional): Custom calculations{
"mcpServers": {
"fillout": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"FILLOUT_API_KEY",
"mcp/fillout"
],
"env": {
"FILLOUT_API_KEY": "your-fillout-api-key"
}
}
}
}
{
"mcpServers": {
"fillout": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-fillout"
],
"env": {
"FILLOUT_API_KEY": "your-fillout-api-key"
}
}
}
}
# Install dependencies
npm install
# Run in development mode
npm run dev
# Build for production
npm run build
# Build image
docker build -t mcp/fillout .
# Run container
docker run -e FILLOUT_API_KEY=your-key mcp/fillout
const form = await client.createForm({
name: "Customer Feedback",
description: "Please share your experience",
questions: [
{
type: "ShortAnswer",
name: "What did you like most?",
required: true
},
{
type: "MultipleChoice",
name: "Would you recommend us?",
required: true,
choices: ["Yes", "No", "Maybe"]
}
]
});
const response = await client.submitFormResponse(formId, {
responses: [
{
questionId: "q1",
value: "Great customer service!"
},
{
questionId: "q2",
value: "Yes"
}
]
});
The server provides detailed error messages for common issues:
try {
const forms = await client.listForms();
} catch (error) {
if (error instanceof AuthenticationError) {
// Handle invalid API key
} else if (error instanceof FilloutError) {
// Handle API-specific errors
} else {
// Handle unexpected errors
}
}
This project is licensed under the MIT License. See the LICENSE file for details.
Seamless access to top MCP servers powering the future of AI integration.