The Typeform MCP server is a connector that allows you to interact with your Typeform account from an LLM client of your choice. Right now, it's a generally-available beta with limited capabilities, but we'll be extending its capabilities over the next few months into a fully-fledged plugin for apps like ChatGPT and Claude.
💡Building a Typeform MCP connector and need help? Let us know here!
You can connect to the Typeform MCP server at this address:
https://api.typeform.com/mcpNote: if you use our EU data center, then you will need to use one of the following addresses depending on where your account is hosted: https://api.eu.typeform.com/mcp or https://api.typeform.eu/mcp
Our MCP server only supports the newer streamable HTTP transport, and we don't offer an SSE endpoint.
The MCP server supports OAuth. When you connect, you should be prompted to grant OAuth access to your Typeform account with the required scopes.
At the moment, our MCP server supports tools for:
🆕 Tools for getting form insights will be coming soon!
The full list of tools currently supported by our MCP server--along with their required OAuth scopes--is as follows:
| Tool name | Required OAuth scopes | Description |
|---|---|---|
accounts-list_accounts | accounts:read | Lists all accounts the authenticated user is a member of. |
automations-public_add_delay_step | automations:write | Add a delay step to an existing automation. |
automations-public_add_email_step | automations:write | Add an email step to an existing automation. |
automations-public_add_integration_step | automations:write | Add a send-to-integration step to an existing automation. |
automations-public_add_webhook_step | automations:write, webhooks:write | Add a webhook step to an existing automation. |
automations-public_create_automation | automations:write | Create a new Automation. |
automations-public_get_authorized_email_domains | automations:read, accounts:read | Get the authorized email domains for the current account. |
automations-public_get_automation | automations:read | Get an existing automation by its ID. Returns the working state. |
automations-public_get_email_notification | automations:read | Get the working state of an email notification template. |
automations-public_get_trigger | automations:read | Get a trigger by its ID. Returns the working state. |
automations-public_list_automations | automations:read | List all automations for the authenticated account. |
automations-public_list_referenceable_fields | automations:read | List the fields available to reference (on emails, triggers) for a given automation. |
automations-public_patch_trigger | automations:write | Patch a trigger by applying JSON Patch operations. |
automations-public_pause_automation | automations:write | Pause an automation by disabling its trigger and existing runs (optionally). |
automations-public_publish_automation | automations:write | Publish an automation. |
automations-public_remove_steps | automations:write | Remove one or more steps from an existing automation. |
automations-public_reorder_step | automations:write | Move an existing step to a new position in an automation. |
automations-public_update_delay_step | automations:write | Update an existing delay step's duration. |
automations-public_update_email_step | automations:write | Update an existing email step and content. |
automations-public_update_webhook_step | automations:write, webhooks:write | Update an existing webhook step's configuration. |
forms-public_get_capabilities | forms:read | Returns the field types, block operations, and logic operators supported by the form editing tools. Call this before building or editing a form to understand available options. |
forms-public_get_form | forms:read | Retrieves a form's current state. Supports a view parameter for targeted output: full (default), fields, or skeleton (structure only). |
forms-public_list_forms | forms:read | Lists forms owned by your user, with optional search and pagination. |
forms-public_create_form | forms:write | Creates a new, empty Typeform in a given workspace. Returns the form ID needed for subsequent editing tools. |
forms-public_validate_patch | forms:write | Validates a batch of patch operations against a form draft without saving anything. Returns a validation_token that must be passed to forms-public_patch_form to commit the changes. |
forms-public_patch_form | forms:write | Applies validated patch operations to a form draft. Requires a validation_token from forms-public_validate_patch. Changes are saved but not published — call forms-public_publish_form to make them live. |
forms-public_publish_form | forms:write | Publishes the current draft of a form, making it live. Only call this when the user explicitly wants the form to go live. |
forms-public_delete_form | forms:write | Deletes a form by its ID. |
contacts-public_get_contact | contacts:read | Gets a single contact by ID with all properties and their metadata. |
contacts-public_get_contacts_database_properties | contacts:read | Gets specific contact properties by their IDs. |
contacts-public_get_contacts_list | contacts:read | Gets the details of a specific contacts list (segment) by ID. |
contacts-public_get_form_property_compatibility | contacts:read | Gets compatible contact property mappings for a given form's fields and variables. |
contacts-public_get_form_property_mappings | contacts:read | Gets the property mappings (sync config) for a specific form. |
contacts-public_get_form_property_mappings_by_id | contacts:read | Gets the details of a form property mapping (sync config) by its ID. |
contacts-public_list_contacts | contacts:read | Lists contacts from the Contacts database, with optional filtering and pagination. |
contacts-public_list_contacts_database_properties | contacts:read | Lists all contact properties defined in the Contacts database schema. |
contacts-public_list_contacts_lists | contacts:read | Lists all saved contact lists in the Contacts database. |
contacts-public_list_form_property_mappings | contacts:read | Lists all form-to-contact property mappings (sync configs). |
contacts-public_bulk_create_contacts_lists | contacts:write | Creates one or more contacts lists (segments) in a single call. |
contacts-public_bulk_create_custom_contacts_database_properties | contacts:write | Creates multiple custom contact properties on the Contacts database schema in a single operation. |
contacts-public_bulk_upsert_contacts | contacts:write | Creates or updates multiple contacts in a single operation, matching on identifier. |
contacts-public_create_contact | contacts:write | Creates a new contact in the Contacts database. |
contacts-public_create_contacts_database_property | contacts:write | Creates a new custom property on the Contacts database schema. |
contacts-public_create_contacts_list | contacts:write | Creates a new contacts list (segment) in the Contacts database. |
contacts-public_create_form_property_mappings | contacts:write | Creates a form property mapping to connect a form's fields to contact properties. |
contacts-public_delete_contact | contacts:write | Deletes a contact from the Contacts database. |
contacts-public_delete_contacts_database_properties | contacts:write | Deletes multiple custom properties from the Contacts database schema in a single operation. |
contacts-public_delete_contacts_database_property | contacts:write | Deletes a single custom property from the Contacts database schema. |
contacts-public_delete_contacts_list | contacts:write | Deletes a contacts list (segment) from the Contacts database. |
contacts-public_delete_form_property_mappings | contacts:write | Deletes a form property mapping (sync config) by its ID. |
contacts-public_enable_standard_contacts_database_properties | contacts:write | Activates one or more disabled standard (built-in) contact properties. |
contacts-public_import_form_responses_by_mapping | contacts:write | Schedules an import of form responses into contacts using an existing form property mapping. |
contacts-public_update_contact | contacts:write | Updates an existing contact's properties in the Contacts database. |
contacts-public_update_contacts_database_property | contacts:write | Updates the name of a custom property on the Contacts database schema. |
contacts-public_update_contacts_list | contacts:write | Updates an existing contacts list's name or filter/sort settings. |
contacts-public_update_form_property_mappings | contacts:write | Updates an existing form property mapping, replacing all field mappings. |
insights-public_discover | insights:read | Returns the schema of analytics data available for a given form or audience, including queryable fields and measures. |
insights-public_list | insights:read | Returns paginated row-level response data for a single field in a dataset. |
workspaces-list_workspaces | workspaces:read | Lists the workspaces the caller can see, including ID, name, form count, and type. |
Access to features in Typeform's MCP server is subject to their availability in your subscription plan. Visit the Pricing page for more information.
If you have any comments, suggestions, or problems using our MCP server you can reach out to us here 💬