Zapier MCP connector
OAuth 2.0 AutomationProductivityDeveloper ToolsConnect to Zapier MCP to automate workflows and integrate with thousands of apps directly from your AI agent.
Zapier MCP connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set your credentials”Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret> -
Authorize and make your first call
Section titled “Authorize and make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'zapiermcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Zapier MCP:', link)process.stdout.write('Press Enter after authorizing...')await new Promise(r => process.stdin.once('data', r))// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'zapiermcp_get_configuration_url',toolInput: {},})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "zapiermcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Zapier MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="zapiermcp_get_configuration_url",connection_name=connection_name,identifier=identifier,)print(result)
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- Execute actions across 8,000+ apps — run read (search/retrieve) and write (create/modify) actions in any app connected to Zapier
- Discover and enable app actions — search Zapier’s catalog for any app, enable its actions on this MCP server, and disable them when no longer needed
- Auto-provision from existing connections — automatically set up the MCP server based on the user’s already-connected Zapier accounts
- Manage Zapier Skills — create, retrieve, update, and delete named reusable workflow documents that define how to accomplish multi-step tasks
- List enabled actions — inspect which apps and action keys are currently active so the agent always uses correct, up-to-date identifiers
- Get configuration URL — surface the Zapier MCP configuration page so users can add, edit, or remove connected apps and actions
Common workflows
Section titled “Common workflows”Auto-provision from existing Zapier connections
The fastest way to get started is to auto-provision the MCP server based on apps the user has already connected in Zapier.
// Auto-provisions actions based on the user's existing Zapier accountsconst result = await actions.executeTool({ toolName: 'zapiermcp_auto_provision_mcp', connectionName: 'zapiermcp', identifier: 'user_123', toolInput: {},});console.log(result.data?.result);result = actions.execute_tool( tool_name="zapiermcp_auto_provision_mcp", connection_name="zapiermcp", identifier="user_123", tool_input={},)print(result.data["result"])After provisioning, call zapiermcp_list_enabled_zapier_actions to see which apps and action keys are now active.
Discover and enable an app
Search Zapier’s catalog for an app, then enable its actions on the MCP server so the agent can use them.
// Search for apps by nameconst apps = await actions.executeTool({ toolName: 'zapiermcp_discover_zapier_actions', connectionName: 'zapiermcp', identifier: 'user_123', toolInput: { app: 'slack' },});
// Enable all actions for the appconst enabled = await actions.executeTool({ toolName: 'zapiermcp_enable_zapier_action', connectionName: 'zapiermcp', identifier: 'user_123', toolInput: { app: 'slack' },});console.log(enabled.data?.result);# Search for apps by nameapps = actions.execute_tool( tool_name="zapiermcp_discover_zapier_actions", connection_name="zapiermcp", identifier="user_123", tool_input={"app": "slack"},)
# Enable all actions for the appenabled = actions.execute_tool( tool_name="zapiermcp_enable_zapier_action", connection_name="zapiermcp", identifier="user_123", tool_input={"app": "slack"},)print(enabled.data["result"])Pass a specific action key alongside app to enable only one action instead of all.
List enabled actions and execute a read action
Always list enabled actions first to get the exact app and action keys before calling execute tools.
// List all enabled actionsconst actions_list = await actions.executeTool({ toolName: 'zapiermcp_list_enabled_zapier_actions', connectionName: 'zapiermcp', identifier: 'user_123', toolInput: {},});
// Execute a read action using natural language instructionsconst result = await actions.executeTool({ toolName: 'zapiermcp_execute_zapier_read_action', connectionName: 'zapiermcp', identifier: 'user_123', toolInput: { app: 'gmail', action: 'find_email', instructions: 'Find the latest email from noreply@example.com', output: 'subject and body of the email', },});console.log(result.data?.result);# List all enabled actionsactions_list = actions.execute_tool( tool_name="zapiermcp_list_enabled_zapier_actions", connection_name="zapiermcp", identifier="user_123", tool_input={},)
# Execute a read action using natural language instructionsresult = actions.execute_tool( tool_name="zapiermcp_execute_zapier_read_action", connection_name="zapiermcp", identifier="user_123", tool_input={ "app": "gmail", "action": "find_email", "instructions": "Find the latest email from noreply@example.com", "output": "subject and body of the email", },)print(result.data["result"])Execute a write action
Use zapiermcp_execute_zapier_write_action to create or modify data in a connected app. The instructions and output fields accept natural language.
const result = await actions.executeTool({ toolName: 'zapiermcp_execute_zapier_write_action', connectionName: 'zapiermcp', identifier: 'user_123', toolInput: { app: 'slack', action: 'send_channel_message', instructions: 'Send a message to #general saying the weekly report is ready', output: 'confirmation that the message was sent', },});console.log(result.data?.result);result = actions.execute_tool( tool_name="zapiermcp_execute_zapier_write_action", connection_name="zapiermcp", identifier="user_123", tool_input={ "app": "slack", "action": "send_channel_message", "instructions": "Send a message to #general saying the weekly report is ready", "output": "confirmation that the message was sent", },)print(result.data["result"])Create and reuse a Zapier Skill
Skills are named, versioned markdown documents that define how to accomplish a multi-step task. Save a workflow once and execute it by name in future calls.
// Save a skillawait actions.executeTool({ toolName: 'zapiermcp_create_zapier_skill', connectionName: 'zapiermcp', identifier: 'user_123', toolInput: { name: 'weekly-report', description: 'Sends the weekly summary to Slack and logs it in Google Sheets', skillDefinition: '1. Execute slack/send_channel_message to #reports\n2. Execute google-sheets/create_spreadsheet_row', },});
// Retrieve and execute the skill laterconst skill = await actions.executeTool({ toolName: 'zapiermcp_get_zapier_skill', connectionName: 'zapiermcp', identifier: 'user_123', toolInput: { name: 'weekly-report' },});console.log(skill.data?.result);# Save a skillactions.execute_tool( tool_name="zapiermcp_create_zapier_skill", connection_name="zapiermcp", identifier="user_123", tool_input={ "name": "weekly-report", "description": "Sends the weekly summary to Slack and logs it in Google Sheets", "skillDefinition": "1. Execute slack/send_channel_message to #reports\n2. Execute google-sheets/create_spreadsheet_row", },)
# Retrieve and execute the skill laterskill = actions.execute_tool( tool_name="zapiermcp_get_zapier_skill", connection_name="zapiermcp", identifier="user_123", tool_input={"name": "weekly-report"},)print(skill.data["result"])Tool list
Section titled “Tool list”Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.
zapiermcp_auto_provision_mcp
#
Automatically set up this MCP server based on the user's existing connected accounts in Zapier. 0 params
Automatically set up this MCP server based on the user's existing connected accounts in Zapier.
zapiermcp_create_zapier_skill
#
Save a workflow as a reusable Zapier Skill. A skill is a named, versioned markdown document that defines how to accomplish a task using Zapier actions. 3 params
Save a workflow as a reusable Zapier Skill. A skill is a named, versioned markdown document that defines how to accomplish a task using Zapier actions.
description string required One-sentence description of what this skill does name string required Short, unique name for this skill (e.g. 'create jira ticket', 'daily standup'). Names are case-insensitive. skillDefinition string required Full markdown content of the skill. IMPORTANT: Before creating, ask the user about their specific configuration — project keys, channel names, default assignees, recurring parameters — so those get baked in as fixed values. Reference each MCP tool the skill uses with a ```mcp-tool\n<tool_name>\n``` code fence. Include step-by-step instructions and any fixed parameter values. zapiermcp_delete_zapier_skill
#
Permanently delete a Zapier Skill by name. 1 param
Permanently delete a Zapier Skill by name.
name string required The exact name of the skill to delete zapiermcp_disable_zapier_action
#
Remove an app's actions from this MCP server. Use list_enabled_zapier_actions to see which apps are currently enabled. 2 params
Remove an app's actions from this MCP server. Use list_enabled_zapier_actions to see which apps are currently enabled.
app string required App name to remove (e.g., 'gmail', 'jira', 'slack'). Accepts short names or full IDs. Use list_enabled_zapier_actions to see enabled apps. action string optional Specific action key to remove. If omitted, all actions for the app are removed. zapiermcp_discover_zapier_actions
#
Search 8,000+ Zapier apps to find actions you can enable. Returns app IDs and action keys to use with enable_zapier_action. 1 param
Search 8,000+ Zapier apps to find actions you can enable. Returns app IDs and action keys to use with enable_zapier_action.
app string optional Search for apps by name. Omit to see popular apps. Search 8,000+ available apps. zapiermcp_enable_zapier_action
#
Enable an app's actions on this MCP server. Use discover_zapier_actions to find the app name first. 2 params
Enable an app's actions on this MCP server. Use discover_zapier_actions to find the app name first.
app string required App name or identifier (e.g., 'gmail', 'jira', 'slack'). Accepts short names or full IDs from discover_zapier_actions. action string optional Specific action key to enable. If omitted or '*', all actions for the app are enabled. zapiermcp_execute_zapier_read_action
#
Execute a search or read action to retrieve data from a connected app. Call list_enabled_zapier_actions first to get the app name and action key. 5 params
Execute a search or read action to retrieve data from a connected app. Call list_enabled_zapier_actions first to get the app name and action key.
action string required Action key to execute. Use list_enabled_zapier_actions to get exact keys. app string required App identifier. Use list_enabled_zapier_actions to see available apps. instructions string required Natural language instructions for the action output string required Natural language description of what data you want from the results. Example: 'just the title and created date' or 'only items with status active'. A filter will be automatically generated to extract this data. params object optional Optional direct parameter values to pass to the action zapiermcp_execute_zapier_write_action
#
Execute a write or create action in a connected app. Call list_enabled_zapier_actions first to get the app name and action key. 5 params
Execute a write or create action in a connected app. Call list_enabled_zapier_actions first to get the app name and action key.
action string required Action key to execute. Use list_enabled_zapier_actions to get exact keys. app string required App identifier. Use list_enabled_zapier_actions to see available apps. instructions string required Natural language instructions for the action output string required Natural language description of what data you want from the results. Example: 'just the title and created date' or 'only items with status active'. A filter will be automatically generated to extract this data. params object optional Optional direct parameter values to pass to the action zapiermcp_get_configuration_url
#
Get the URL where users can configure this MCP server — adding, editing, or removing actions and connecting accounts. 0 params
Get the URL where users can configure this MCP server — adding, editing, or removing actions and connecting accounts.
zapiermcp_get_zapier_skill
#
Fetch the full markdown content of a Zapier Skill by name. Call this before executing a skill. 1 param
Fetch the full markdown content of a Zapier Skill by name. Call this before executing a skill.
name string required The exact name of the skill to retrieve zapiermcp_list_enabled_zapier_actions
#
List all apps and actions currently enabled on this Zapier MCP server. Pass an app name to see its available action keys. Use action keys with execute_zapier_read_action and execute_zapier_write_action. 2 params
List all apps and actions currently enabled on this Zapier MCP server. Pass an app name to see its available action keys. Use action keys with execute_zapier_read_action and execute_zapier_write_action.
action string optional Filter by action key. Omit to list all actions. app string optional Filter by app name (e.g., 'gmail', 'jira', 'slack'). Omit to list all apps. zapiermcp_list_zapier_skills
#
List all saved Zapier Skills with their names and descriptions. 0 params
List all saved Zapier Skills with their names and descriptions.
zapiermcp_send_feedback
#
Send feedback about your Zapier MCP experience to the Zapier team. 2 params
Send feedback about your Zapier MCP experience to the Zapier team.
feedback string required Feedback message to send to the Zapier MCP team feedback_positive boolean required Whether this is positive feedback (true) or negative (false) zapiermcp_update_zapier_skill
#
Update an existing Zapier Skill's description or content by name. 3 params
Update an existing Zapier Skill's description or content by name.
name string required The exact name of the skill to update description string optional Updated one-sentence description (optional) skillDefinition string optional Updated full markdown content (optional)