npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

typeform-mcp-server

v1.0.0

Published

MCP server for Typeform API integration - create forms, retrieve responses, and manage webhooks

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

From Source

git clone <repository-url>
cd typeform
npm install
npm run build

Configuration

Getting Your Access Token

  1. Go to Typeform Admin
  2. Click Generate a new token
  3. Select the required scopes:
    • forms:read - Read form definitions
    • forms:write - Create and update forms
    • responses:read - Read form responses
    • webhooks:read - Read webhook configurations
    • webhooks:write - Create and manage webhooks
    • workspaces:read - Read workspace information
  4. 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 workspace
  • search (optional): Search by form title
  • page_size: Items per page (1-100, default: 20)
  • page: Page number (default: 1)
  • response_format: markdown or json (default: markdown)

typeform_get_form

Get detailed information about a specific form.

Parameters:

  • form_id (required): The form ID
  • response_format: markdown or json (default: markdown)

typeform_get_responses

Retrieve responses submitted to a form.

Parameters:

  • form_id (required): The form ID
  • page_size: Responses per page (1-1000, default: 25)
  • since (optional): ISO 8601 date to filter responses after
  • until (optional): ISO 8601 date to filter responses before
  • completed (optional): Filter by completion status
  • sort: Sort order (submitted_at,asc or submitted_at,desc)
  • query (optional): Search responses by content
  • response_format: markdown or json (default: markdown)

typeform_create_form

Create a new form with custom fields.

Parameters:

  • title (required): Form title
  • workspace_id (optional): Workspace to create form in
  • fields (required): Array of field definitions
  • welcome_screens (optional): Welcome screen configurations
  • thankyou_screens (optional): Thank you screen configurations
  • settings (optional): Form settings
  • response_format: markdown or json (default: markdown)

Supported Field Types:

  • short_text, long_text - Text inputs
  • email, website, phone_number - Contact fields
  • number, date - Data fields
  • multiple_choice, dropdown, picture_choice - Selection fields
  • yes_no, legal - Boolean fields
  • rating, opinion_scale, nps - Scale fields
  • file_upload - File attachment
  • statement - Information display

typeform_create_webhook

Create a webhook for form submission notifications.

Parameters:

  • form_id (required): Form to attach webhook to
  • tag (required): Unique webhook identifier
  • url (required): Destination URL for notifications
  • enabled: Whether webhook is active (default: true)
  • verify_ssl: Verify SSL certificates (default: true)
  • secret (optional): Secret for signature verification
  • response_format: markdown or json (default: markdown)

typeform_get_webhook

Get details of a specific webhook.

Parameters:

  • form_id (required): Form ID
  • tag (required): Webhook tag
  • response_format: markdown or json (default: markdown)

typeform_delete_webhook

Delete a webhook from a form.

Parameters:

  • form_id (required): Form ID
  • tag (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 name
  • response_format: markdown or json (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 clean

License

MIT