Skip to main content
Glama

Fillout.io MCP Server

by danielma-tic

Fillout.io MCP Server

MCP Server for the Fillout.io API, enabling form management, response handling, and analytics.

Token Setup

  1. Get your Fillout.io API Key:

    • Log in to your Fillout.io account

    • Go to Account Settings → API & Webhooks

    • Click "Create new API Key"

    • Copy your new API key

  2. API Key Information:

    • Production keys start with fo_live_

    • Test keys start with fo_test_

    • Test keys only work with test forms

    • API keys provide access to all resources in your account

  3. Replace your-fillout-api-key in the configuration with your API key.

⚠️ Security Notes:

  • Keep your API key secure and private

  • Use test keys for development

  • Store keys in environment variables

  • Rotate keys periodically

  • Never commit keys to version control

Related MCP server: Loxo MCP Server

Token Troubleshooting

Common Error Messages

  1. "Invalid API key provided" or "Authentication failed"

    • Cause: API key is missing, malformed, or invalid

    • Solution:

      • Verify key starts with fo_live_ or fo_test_

      • Check for extra spaces or characters

      • Ensure environment variable is set correctly

      • Create a new key if necessary

  2. "Test mode key used with live form"

    • Cause: Using test key (fo_test_) with production form

    • Solution:

      • Use live key for production forms

      • Create test form for development

      • Switch to appropriate key type

  3. "Rate limit exceeded"

    • Cause: Too many API requests

    • Solution:

      • Implement request throttling

      • Check usage in dashboard

      • Optimize request patterns

Validation Steps

  1. Check API Key Format:

    # Key should: - Start with 'fo_live_' or 'fo_test_' - Be approximately 50 characters - Contain only letters, numbers, and underscores
  2. Test API Key:

    curl -H "Authorization: Bearer your-api-key" \ https://api.fillout.com/v1/api/forms

Features

Form Management

  • List all forms

  • Get form details

  • Create new forms

  • Delete forms

  • Update form settings

Response Handling

  • Submit form responses

  • Get form submissions

  • Filter responses

  • Export responses

Analytics

  • Response rates

  • Completion times

  • Submission trends

Tools

  1. list_forms

    • Get all accessible forms

    • Parameters:

      • limit (optional): Number of forms to return

      • offset (optional): Pagination offset

    • Returns: Array of form objects

  2. get_form

    • Get detailed form information

    • Parameters:

      • formId (string): Form identifier

    • Returns: Form details including questions and settings

  3. create_form

    • Create a new form

    • Parameters:

      • name (string): Form name

      • description (optional string): Form description

      • questions (array): Array of question objects

        • type: Question type (e.g., 'ShortAnswer', 'MultipleChoice')

        • name: Question text

        • required: Whether question is required

        • choices: Array of choices for multiple choice questions

    • Returns: Created form object

  4. get_form_responses

    • Get form submissions

    • Parameters:

      • formId (string): Form identifier

      • filters (optional): Response filters

      • pageSize (optional): Results per page

      • afterDate (optional): Filter by submission date

      • beforeDate (optional): Filter by submission date

      • status (optional): Filter by completion status

    • Returns: Array of form responses

  5. submit_form_response

    • Submit a new response

    • Parameters:

      • formId (string): Form identifier

      • responses (array): Array of answers

        • questionId: Question identifier

        • value: Response value

      • calculations (optional): Custom calculations

    • Returns: Submission confirmation

Setup

Usage with Claude Desktop

Docker Configuration

{ "mcpServers": { "fillout": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "FILLOUT_API_KEY", "mcp/fillout" ], "env": { "FILLOUT_API_KEY": "your-fillout-api-key" } } } }

NPX Configuration

{ "mcpServers": { "fillout": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-fillout" ], "env": { "FILLOUT_API_KEY": "your-fillout-api-key" } } } }

Building

Prerequisites

  • Node.js 18 or later

  • npm or yarn

  • Docker (optional)

Local Development

# Install dependencies npm install # Run in development mode npm run dev # Build for production npm run build

Docker Build

# Build image docker build -t mcp/fillout . # Run container docker run -e FILLOUT_API_KEY=your-key mcp/fillout

Examples

Creating a Form

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"] } ] });

Submitting a Response

const response = await client.submitFormResponse(formId, { responses: [ { questionId: "q1", value: "Great customer service!" }, { questionId: "q2", value: "Yes" } ] });

Error Handling

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 } }

License

This project is licensed under the MIT License. See the LICENSE file for details.

-
security - not tested
-
license - not tested
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/danielma-tic/fillout-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server