typeform-mcp-server
v1.0.0
Published
MCP server for Typeform API integration - create forms, retrieve responses, and manage webhooks
Maintainers
Readme
Typeform MCP Server
A Model Context Protocol (MCP) server for integrating with the Typeform API. This server enables AI assistants to create forms, retrieve responses, and manage webhooks through Typeform's REST API.
Features
- List Forms - Browse all forms in your account with filtering and pagination
- Get Form Details - Retrieve complete form definitions including fields and settings
- Get Responses - Fetch form submissions with filtering by date, completion status, and more
- Create Forms - Build new forms programmatically with various field types
- Manage Webhooks - Set up, view, and delete webhooks for real-time notifications
- List Workspaces - View and search workspaces to organize forms
Installation
From npm
npm install -g typeform-mcp-serverFrom Source
git clone <repository-url>
cd typeform
npm install
npm run buildConfiguration
Getting Your Access Token
- Go to Typeform Admin
- Click Generate a new token
- Select the required scopes:
forms:read- Read form definitionsforms:write- Create and update formsresponses:read- Read form responseswebhooks:read- Read webhook configurationswebhooks:write- Create and manage webhooksworkspaces:read- Read workspace information
- Copy the generated token
Environment Variable
Set your access token as an environment variable:
export TYPEFORM_ACCESS_TOKEN="your_access_token_here"Cursor Configuration
Add to your Cursor MCP settings (~/.cursor/mcp.json):
{
"mcpServers": {
"typeform": {
"command": "npx",
"args": ["-y", "typeform-mcp-server"],
"env": {
"TYPEFORM_ACCESS_TOKEN": "your_access_token_here"
}
}
}
}Or if installed globally:
{
"mcpServers": {
"typeform": {
"command": "typeform-mcp-server",
"env": {
"TYPEFORM_ACCESS_TOKEN": "your_access_token_here"
}
}
}
}Claude Desktop Configuration
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"typeform": {
"command": "npx",
"args": ["-y", "typeform-mcp-server"],
"env": {
"TYPEFORM_ACCESS_TOKEN": "your_access_token_here"
}
}
}
}Available Tools
typeform_list_forms
List all forms in your Typeform account.
Parameters:
workspace_id(optional): Filter by workspacesearch(optional): Search by form titlepage_size: Items per page (1-100, default: 20)page: Page number (default: 1)response_format:markdownorjson(default:markdown)
typeform_get_form
Get detailed information about a specific form.
Parameters:
form_id(required): The form IDresponse_format:markdownorjson(default:markdown)
typeform_get_responses
Retrieve responses submitted to a form.
Parameters:
form_id(required): The form IDpage_size: Responses per page (1-1000, default: 25)since(optional): ISO 8601 date to filter responses afteruntil(optional): ISO 8601 date to filter responses beforecompleted(optional): Filter by completion statussort: Sort order (submitted_at,ascorsubmitted_at,desc)query(optional): Search responses by contentresponse_format:markdownorjson(default:markdown)
typeform_create_form
Create a new form with custom fields.
Parameters:
title(required): Form titleworkspace_id(optional): Workspace to create form infields(required): Array of field definitionswelcome_screens(optional): Welcome screen configurationsthankyou_screens(optional): Thank you screen configurationssettings(optional): Form settingsresponse_format:markdownorjson(default:markdown)
Supported Field Types:
short_text,long_text- Text inputsemail,website,phone_number- Contact fieldsnumber,date- Data fieldsmultiple_choice,dropdown,picture_choice- Selection fieldsyes_no,legal- Boolean fieldsrating,opinion_scale,nps- Scale fieldsfile_upload- File attachmentstatement- Information display
typeform_create_webhook
Create a webhook for form submission notifications.
Parameters:
form_id(required): Form to attach webhook totag(required): Unique webhook identifierurl(required): Destination URL for notificationsenabled: Whether webhook is active (default: true)verify_ssl: Verify SSL certificates (default: true)secret(optional): Secret for signature verificationresponse_format:markdownorjson(default:markdown)
typeform_get_webhook
Get details of a specific webhook.
Parameters:
form_id(required): Form IDtag(required): Webhook tagresponse_format:markdownorjson(default:markdown)
typeform_delete_webhook
Delete a webhook from a form.
Parameters:
form_id(required): Form IDtag(required): Webhook tag to delete
typeform_list_workspaces
List all workspaces in your account.
Parameters:
page_size: Items per page (1-100, default: 20)page: Page number (default: 1)search(optional): Search by workspace nameresponse_format:markdownorjson(default:markdown)
Usage Examples
List All Forms
"Show me all my Typeform forms"Create a Feedback Form
"Create a customer feedback form with:
- A rating question for overall satisfaction (1-5 stars)
- A multiple choice question for what they liked best
- A long text field for additional comments"Get Recent Responses
"Get the last 10 responses from form abc123 submitted this week"Set Up a Webhook
"Create a webhook for form abc123 that sends responses to https://my-server.com/webhook"Rate Limits
Typeform API allows 2 requests per second per account. The server handles rate limit errors gracefully and provides informative error messages.
Development
# Install dependencies
npm install
# Build
npm run build
# Run in development mode
npm run dev
# Clean build artifacts
npm run cleanLicense
MIT
