View as Markdown

Typeform Integration

Manage Typeform workspaces, forms, and responses

The Typeform integration provides access to manage Typeform workspaces, forms, and responses through the Integrate MCP server.

Installation

The Typeform integration is included with the SDK:

import { typeformIntegration } from "integrate-sdk/server";

Setup

1. Create a Typeform OAuth App

  1. Go to Api Developer Portal
  2. Create a new OAuth application
  3. Configure your redirect URI
  4. Note your Client ID and Client Secret

2. Configure the Integration on Your Server

Add the Typeform integration to your server configuration. The integration automatically reads TYPEFORM_CLIENT_ID and TYPEFORM_CLIENT_SECRET from your environment variables:

import { createMCPServer, typeformIntegration } from "integrate-sdk/server";
 
export const { client: serverClient } = createMCPServer({
  apiKey: process.env.INTEGRATE_API_KEY,
  integrations: [
    typeformIntegration({
      scopes: ["offline", "accounts:read", "forms:read", "forms:write", "responses:read", "workspaces:read"], // Optional
    }),
  ],
});

You can override the environment variables by passing explicit values:

typeformIntegration({
  clientId: process.env.CUSTOM_TYPEFORM_ID,
  clientSecret: process.env.CUSTOM_TYPEFORM_SECRET,
      scopes: ["offline", "accounts:read", "forms:read", "forms:write", "responses:read", "workspaces:read"], // Optional
});

3. Client-Side Usage

The default client automatically includes all integrations. You can use it directly:

import { client } from "integrate-sdk";
 
await client.authorize("typeform");
const result = await client.typeform.getMe({});
 
console.log(result);

If you're using a custom client, add the integration to the integrations array:

import { createMCPClient, typeformIntegration } from "integrate-sdk";
 
const customClient = createMCPClient({
  integrations: [typeformIntegration()],
});

Configuration Options

export interface TypeformIntegrationConfig {
  clientId?: string;

Default Scopes

These defaults are applied unless you override scopes in the integration config:

  • offline
  • accounts:read
  • forms:read
  • forms:write
  • responses:read
  • workspaces:read

Tools

typeform_get_me

Get me

No parameters.

typeform_list_workspaces

List workspaces

export type TypeformListWorkspacesParams = Record<string, unknown>;

typeform_get_workspace

Get workspace

export type TypeformGetWorkspaceParams = Record<string, unknown>;

typeform_list_forms

List forms

export type TypeformListFormsParams = Record<string, unknown>;

typeform_get_form

Get form

export type TypeformGetFormParams = Record<string, unknown>;

typeform_create_form

Create form

export type TypeformCreateFormParams = Record<string, unknown>;

typeform_update_form

Update form

export type TypeformUpdateFormParams = Record<string, unknown>;

typeform_delete_form

Delete form

export type TypeformDeleteFormParams = Record<string, unknown>;

typeform_list_responses

List responses

export type TypeformListResponsesParams = Record<string, unknown>;

Notes

  • Category: Productivity
  • Authentication mode: OAuth