fillout

Read Fillout forms and submissions, export responses, and create submissions and webhooks.

我該用這個嗎

品質與安全性

A
說明品質
98%
結構描述完整度
90%
命名品質
80%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~2,638Token(工具定義)
~2.6 KB典型回應大小
顯著的注意力影響(128k 上下文的 2.06%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "fillout": {
      "url": "https://fillout.usefulapi.io/mcp"
    }
  }
}

遠端端點

https://fillout.usefulapi.io/mcpstreamable-http

它能做什麼

工具清單

工具(9)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢fillout_list_forms

List every form in the Fillout account — each form's name and formId. Start here to find the formId the other tools need. Fillout: GET /forms.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fillout_get_form(formId)

Fetch one form's metadata: every question (id, name, type), calculations, URL parameters, scheduling and payment fields, and quiz settings. Use the question ids to read answers or to create submissions. Fillout: GET /forms/{formId}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "formId": {
      "type": "string",
      "minLength": 1,
      "description": "The form's public id (the formId from fillout_list_forms, also the id in the form's share URL)."
    }
  },
  "required": [
    "formId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fillout_list_submissions(formId, afterDate, beforeDate, status, search, ...)

List one page of a form's submissions (answers to every question, calculations, URL parameters, scheduling, payments, quiz score, login email), filtered by date range, status or free-text search. Offset pagination: the response carries totalResponses and pageCount. Fillout: GET /forms/{formId}/submissions.

輸入結構描述

{
  "type": "object",
  "properties": {
    "formId": {
      "type": "string",
      "minLength": 1,
      "description": "The form's public id (the formId from fillout_list_forms, also the id in the form's share URL)."
    },
    "afterDate": {
      "description": "Only submissions submitted after this ISO 8601 date-time, e.g. 2026-09-01T00:00:00Z.",
      "type": "string"
    },
    "beforeDate": {
      "description": "Only submissions submitted before this ISO 8601 date-time.",
      "type": "string"
    },
    "status": {
      "description": "'finished' (default) or 'in_progress' for unfinished / partial submissions.",
      "type": "string",
      "enum": [
        "finished",
        "in_progress"
      ]
    },
    "search": {
      "description": "Only submissions containing this text.",
      "type": "string"
    },
    "includePreview": {
      "description": "Also include preview (test) responses.",
      "type": "boolean"
    },
    "limit": {
      "description": "Submissions per page, 1-150 (Fillout default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 150
    },
    "offset": {
      "description": "Starting position (0-based) for this page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "sort": {
      "description": "Sort by submission time: 'asc' (default) or 'desc' for newest first.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "includeEditLink": {
      "description": "Include an editLink for each submission.",
      "type": "boolean"
    }
  },
  "required": [
    "formId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fillout_get_submission(formId, submissionId, includeEditLink)

Fetch a single submission by id, with every answer. Fillout: GET /forms/{formId}/submissions/{submissionId}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "formId": {
      "type": "string",
      "minLength": 1,
      "description": "The form's public id (the formId from fillout_list_forms, also the id in the form's share URL)."
    },
    "submissionId": {
      "type": "string",
      "minLength": 1,
      "description": "The submission's id (submissionId)."
    },
    "includeEditLink": {
      "description": "Include an editLink for the submission.",
      "type": "boolean"
    }
  },
  "required": [
    "formId",
    "submissionId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fillout_count_submissions(formId, afterDate, beforeDate, status, search, ...)

Count a form's submissions matching the same filters as fillout_list_submissions (date range, status, search) without pulling the answers — e.g. 'how many responses this week?' or 'how many partial submissions?'. Reads totalResponses from GET /forms/{formId}/submissions with limit=1.

輸入結構描述

{
  "type": "object",
  "properties": {
    "formId": {
      "type": "string",
      "minLength": 1,
      "description": "The form's public id (the formId from fillout_list_forms, also the id in the form's share URL)."
    },
    "afterDate": {
      "description": "Only submissions submitted after this ISO 8601 date-time, e.g. 2026-09-01T00:00:00Z.",
      "type": "string"
    },
    "beforeDate": {
      "description": "Only submissions submitted before this ISO 8601 date-time.",
      "type": "string"
    },
    "status": {
      "description": "'finished' (default) or 'in_progress' for unfinished / partial submissions.",
      "type": "string",
      "enum": [
        "finished",
        "in_progress"
      ]
    },
    "search": {
      "description": "Only submissions containing this text.",
      "type": "string"
    },
    "includePreview": {
      "description": "Also include preview (test) responses.",
      "type": "boolean"
    }
  },
  "required": [
    "formId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fillout_export_submissions(formId, afterDate, beforeDate, status, search, ...)

Fetch many submissions in one call by walking the offset pagination (150 per page, paced under Fillout's 5 requests/second limit), up to max_submissions. Same filters as fillout_list_submissions. Use this for analysis across a whole response set; the result says whether it was truncated. Fillout: GET /forms/{formId}/submissions (repeated).

輸入結構描述

{
  "type": "object",
  "properties": {
    "formId": {
      "type": "string",
      "minLength": 1,
      "description": "The form's public id (the formId from fillout_list_forms, also the id in the form's share URL)."
    },
    "afterDate": {
      "description": "Only submissions submitted after this ISO 8601 date-time, e.g. 2026-09-01T00:00:00Z.",
      "type": "string"
    },
    "beforeDate": {
      "description": "Only submissions submitted before this ISO 8601 date-time.",
      "type": "string"
    },
    "status": {
      "description": "'finished' (default) or 'in_progress' for unfinished / partial submissions.",
      "type": "string",
      "enum": [
        "finished",
        "in_progress"
      ]
    },
    "search": {
      "description": "Only submissions containing this text.",
      "type": "string"
    },
    "includePreview": {
      "description": "Also include preview (test) responses.",
      "type": "boolean"
    },
    "sort": {
      "description": "'asc' (default, oldest first) or 'desc'.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "max_submissions": {
      "description": "Stop after this many submissions (default 500, max 3000).",
      "type": "integer",
      "minimum": 1,
      "maximum": 3000
    }
  },
  "required": [
    "formId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴fillout_create_submissions(formId, submissions)

Create up to 10 new submissions on a form, as if respondents had filled it in — e.g. to import responses collected elsewhere. Each submission needs its question answers (question ids from fillout_get_form); URL parameters, scheduling, payments, login email and timestamps are optional. Creates real records that trigger the form's integrations. Fillout: POST /forms/{formId}/submissions.

輸入結構描述

{
  "type": "object",
  "properties": {
    "formId": {
      "type": "string",
      "minLength": 1,
      "description": "The form's public id (the formId from fillout_list_forms, also the id in the form's share URL)."
    },
    "submissions": {
      "minItems": 1,
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "questions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The question id (from fillout_get_form)."
                },
                "value": {
                  "description": "The answer, shaped for the question type (string, number, array of choices, object...)."
                }
              },
              "required": [
                "id",
                "value"
              ]
            },
            "description": "Answers, one per question id."
          },
          "urlParameters": {
            "description": "URL parameter values.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "URL parameter id (from fillout_get_form)."
                },
                "name": {
                  "type": "string",
                  "description": "URL parameter name."
                },
                "value": {
                  "type": "string",
                  "description": "URL parameter value."
                }
              },
              "required": [
                "id",
                "name",
                "value"
              ]
            }
          },
          "submissionTime": {
            "description": "When it was submitted, ISO 8601 (default now).",
            "type": "string"
          },
          "lastUpdatedAt": {
            "description": "When it was last updated, ISO 8601.",
            "type": "string"
          },
          "scheduling": {
            "description": "Scheduling (booking) answers.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Scheduling field id."
                },
                "value": {
                  "type": "object",
                  "properties": {
                    "fullName": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "eventStartTime": {
                      "type": "string",
                      "description": "ISO 8601."
                    },
                    "eventEndTime": {
                      "type": "string",
                      "description": "ISO 8601."
                    },
                    "timezone": {
                      "type": "string",
                      "description": "IANA timezone, e.g. Europe/Prague."
                    },
                    "userId": {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    "scheduledUserEmail": {
                      "type": "string"
                    },
                    "eventId": {
                      "type": "string"
                    },
                    "eventUrl": {
                      "type": "string"
                    },
                    "rescheduleOrCancelUrl": {
                      "type": "string"
                    },
                    "meetingNotes": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "fullName",
                    "email",
                    "eventStartTime",
                    "eventEndTime",
                    "timezone"
                  ],
                  "description": "Booking details."
                }
              },
              "required": [
                "id",
                "value"
              ]
            }
          },
          "payments": {
            "description": "Payment answers (records only; no money moves).",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Payment field id."
                },
                "value": {
                  "type": "object",
                  "properties": {
                    "paymentId": {
                      "type": "string",
                      "description": "Stripe payment id."
                    },
                    "stripeCustomerId": {
                      "type": "string"
                    },
                    "stripeCustomerUrl": {
                      "type": "string"
                    },
                    "stripePaymentUrl": {
                      "type": "string"
                    },
                    "totalAmount": {
                      "description": "Amount in cents.",
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    "currency": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "stripeSubscriptionId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "paymentId"
                  ],
                  "description": "A record of an existing Stripe payment — this does NOT charge anyone."
                }
              },
              "required": [
                "id",
                "value"
              ]
            }
          },
          "login": {
            "description": "Login-page information.",
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "description": "Verified respondent email."
              }
            },
            "required": [
              "email"
            ]
          }
        },
        "required": [
          "questions"
        ]
      },
      "description": "1-10 submissions to create."
    }
  },
  "required": [
    "formId",
    "submissions"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴fillout_create_webhook(formId, url)

Subscribe a URL to a form's new submissions: Fillout will POST each submission (same shape as a fillout_list_submissions entry) to it. Returns the webhook id — keep it, it is the only handle for removing the webhook later. Fillout: POST /webhook/create.

輸入結構描述

{
  "type": "object",
  "properties": {
    "formId": {
      "type": "string",
      "minLength": 1,
      "description": "The form's public id (the formId from fillout_list_forms, also the id in the form's share URL)."
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "The HTTPS endpoint that should receive submissions."
    }
  },
  "required": [
    "formId",
    "url"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴fillout_remove_webhook(webhookId)

Stop a webhook from receiving submissions. Recoverable: create it again with fillout_create_webhook (it gets a new id). Fillout: POST /webhook/delete.

輸入結構描述

{
  "type": "object",
  "properties": {
    "webhookId": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1
        },
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        }
      ],
      "description": "The webhook id returned by fillout_create_webhook."
    }
  },
  "required": [
    "webhookId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本9 個工具