diff --git a/src/components/templates/agent-connectors/_section-after-setup-zapiermcp-common-workflows.mdx b/src/components/templates/agent-connectors/_section-after-setup-zapiermcp-common-workflows.mdx
new file mode 100644
index 000000000..38adf3c25
--- /dev/null
+++ b/src/components/templates/agent-connectors/_section-after-setup-zapiermcp-common-workflows.mdx
@@ -0,0 +1,254 @@
+export const sectionTitle = 'Common workflows'
+
+import { Tabs, TabItem, Aside } from '@astrojs/starlight/components'
+
+
+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.
+
+
+
+ ```typescript
+ // Auto-provisions actions based on the user's existing Zapier accounts
+ const result = await actions.executeTool({
+ toolName: 'zapiermcp_auto_provision_mcp',
+ connectionName: 'zapiermcp',
+ identifier: 'user_123',
+ toolInput: {},
+ });
+ console.log(result.data?.result);
+ ```
+
+
+ ```python
+ 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.
+
+
+
+ ```typescript
+ // Search for apps by name
+ const apps = await actions.executeTool({
+ toolName: 'zapiermcp_discover_zapier_actions',
+ connectionName: 'zapiermcp',
+ identifier: 'user_123',
+ toolInput: { app: 'slack' },
+ });
+
+ // Enable all actions for the app
+ const enabled = await actions.executeTool({
+ toolName: 'zapiermcp_enable_zapier_action',
+ connectionName: 'zapiermcp',
+ identifier: 'user_123',
+ toolInput: { app: 'slack' },
+ });
+ console.log(enabled.data?.result);
+ ```
+
+
+ ```python
+ # Search for apps by name
+ apps = actions.execute_tool(
+ tool_name="zapiermcp_discover_zapier_actions",
+ connection_name="zapiermcp",
+ identifier="user_123",
+ tool_input={"app": "slack"},
+ )
+
+ # Enable all actions for the app
+ enabled = 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.
+
+
+
+ ```typescript
+ // List all enabled actions
+ const actions_list = await actions.executeTool({
+ toolName: 'zapiermcp_list_enabled_zapier_actions',
+ connectionName: 'zapiermcp',
+ identifier: 'user_123',
+ toolInput: {},
+ });
+
+ // Execute a read action using natural language instructions
+ const 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);
+ ```
+
+
+ ```python
+ # List all enabled actions
+ actions_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 instructions
+ result = 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.
+
+
+
+ ```typescript
+ 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);
+ ```
+
+
+ ```python
+ 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.
+
+
+
+ ```typescript
+ // Save a skill
+ await 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 later
+ const skill = await actions.executeTool({
+ toolName: 'zapiermcp_get_zapier_skill',
+ connectionName: 'zapiermcp',
+ identifier: 'user_123',
+ toolInput: { name: 'weekly-report' },
+ });
+ console.log(skill.data?.result);
+ ```
+
+
+ ```python
+ # Save a skill
+ actions.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 later
+ skill = actions.execute_tool(
+ tool_name="zapiermcp_get_zapier_skill",
+ connection_name="zapiermcp",
+ identifier="user_123",
+ tool_input={"name": "weekly-report"},
+ )
+ print(skill.data["result"])
+ ```
+
+
+
+
diff --git a/src/components/templates/agent-connectors/index.ts b/src/components/templates/agent-connectors/index.ts
index 9847da425..24dee7366 100644
--- a/src/components/templates/agent-connectors/index.ts
+++ b/src/components/templates/agent-connectors/index.ts
@@ -147,6 +147,7 @@ export { default as SectionAfterSetupTrelloCommonWorkflows } from './_section-af
export { default as SectionAfterSetupTwitterCommonWorkflows } from './_section-after-setup-twitter-common-workflows.mdx'
export { default as SectionAfterSetupVercelCommonWorkflows } from './_section-after-setup-vercel-common-workflows.mdx'
export { default as SectionAfterSetupXeroCommonWorkflows } from './_section-after-setup-xero-common-workflows.mdx'
+export { default as SectionAfterSetupZapiermcpCommonWorkflows } from './_section-after-setup-zapiermcp-common-workflows.mdx'
export { default as SectionAfterSetupZendeskCommonWorkflows } from './_section-after-setup-zendesk-common-workflows.mdx'
export { default as SectionAfterSetupZoomCommonWorkflows } from './_section-after-setup-zoom-common-workflows.mdx'
export { default as SectionAfterToolListSalesforceMetadataApiSoap } from './_section-after-tool-list-salesforce-metadata-api-soap.mdx'
diff --git a/src/content/docs/agentkit/connectors/zapiermcp.mdx b/src/content/docs/agentkit/connectors/zapiermcp.mdx
new file mode 100644
index 000000000..44f99d9f7
--- /dev/null
+++ b/src/content/docs/agentkit/connectors/zapiermcp.mdx
@@ -0,0 +1,77 @@
+---
+title: 'Zapier MCP connector'
+tableOfContents: true
+description: 'Connect to Zapier MCP to automate workflows and integrate with thousands of apps directly from your AI agent.'
+sidebar:
+ label: 'Zapier MCP'
+overviewTitle: 'Quickstart'
+connectorIcon: https://cdn.scalekit.com/sk-connect/assets/provider-icons/zapier.svg
+connectorAuthType: OAuth 2.0
+connectorCategories: [Automation, Productivity, Developer Tools]
+head:
+ - tag: style
+ content: |
+ .sl-markdown-content h2 {
+ font-size: var(--sl-text-xl);
+ }
+ .sl-markdown-content h3 {
+ font-size: var(--sl-text-lg);
+ }
+---
+
+import ToolList from '@/components/ToolList.astro'
+import { tools } from '@/data/agent-connectors/zapiermcp'
+import { Steps, Tabs, TabItem } from '@astrojs/starlight/components'
+import { AgentKitCredentials } from '@components/templates'
+import { QuickstartGenericOauthSection } from '@components/templates'
+import { SectionAfterSetupZapiermcpCommonWorkflows } from '@components/templates'
+
+
+
+1. ### Install the SDK
+
+
+
+ ```bash frame="terminal"
+ npm install @scalekit-sdk/node
+ ```
+
+
+ ```bash frame="terminal"
+ pip install scalekit
+ ```
+
+
+
+ Full SDK reference: [Node.js](/agentkit/sdks/node/) | [Python](/agentkit/sdks/python/)
+
+2. ### Set your credentials
+
+
+
+3. ### Authorize and make your first call
+
+
+
+
+
+## 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
+
+
+
+## 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.
+
+
diff --git a/src/data/agent-connectors/capabilities.json b/src/data/agent-connectors/capabilities.json
index aee5f4808..5d550164a 100644
--- a/src/data/agent-connectors/capabilities.json
+++ b/src/data/agent-connectors/capabilities.json
@@ -150,5 +150,13 @@
"**Track rankings** \u2014 monitor keyword positions across countries and devices over time",
"**Audit sites** \u2014 run crawls to surface broken pages, redirect chains, and on-page SEO issues",
"**Analyze web analytics** \u2014 retrieve traffic stats, top pages, UTM breakdowns, and traffic sources for Web Analytics projects"
+ ],
+ "zapiermcp": [
+ "**Execute actions across 8,000+ apps** \u2014 run read (search/retrieve) and write (create/modify) actions in any app connected to Zapier",
+ "**Discover and enable app actions** \u2014 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** \u2014 automatically set up the MCP server based on the user's already-connected Zapier accounts",
+ "**Manage Zapier Skills** \u2014 create, retrieve, update, and delete named reusable workflow documents that define how to accomplish multi-step tasks",
+ "**List enabled actions** \u2014 inspect which apps and action keys are currently active so the agent always uses correct, up-to-date identifiers",
+ "**Get configuration URL** \u2014 surface the Zapier MCP configuration page so users can add, edit, or remove connected apps and actions"
]
}
diff --git a/src/data/agent-connectors/catalog.ts b/src/data/agent-connectors/catalog.ts
index f5f986d9d..c020457bd 100644
--- a/src/data/agent-connectors/catalog.ts
+++ b/src/data/agent-connectors/catalog.ts
@@ -319,7 +319,7 @@ export const catalog: Record = {
},
zendesk: {
iconUrl: 'https://cdn.scalekit.com/sk-connect/assets/provider-icons/zendesk.svg',
- authType: 'API KEY',
+ authType: 'API Key',
categories: ['Customer Support', 'Communication'],
},
googleforms: {
diff --git a/src/data/agent-connectors/zapiermcp.ts b/src/data/agent-connectors/zapiermcp.ts
new file mode 100644
index 000000000..f2ca0295d
--- /dev/null
+++ b/src/data/agent-connectors/zapiermcp.ts
@@ -0,0 +1,247 @@
+import type { Tool } from '../../types/agent-connectors'
+
+export const tools: Tool[] = [
+ {
+ name: 'zapiermcp_auto_provision_mcp',
+ description: `Automatically set up this MCP server based on the user's existing connected accounts in Zapier.`,
+ params: [],
+ },
+ {
+ name: 'zapiermcp_create_zapier_skill',
+ description: `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.`,
+ params: [
+ {
+ name: 'description',
+ type: 'string',
+ required: true,
+ description: `One-sentence description of what this skill does`,
+ },
+ {
+ name: 'name',
+ type: 'string',
+ required: true,
+ description: `Short, unique name for this skill (e.g. 'create jira ticket', 'daily standup'). Names are case-insensitive.`,
+ },
+ {
+ name: 'skillDefinition',
+ type: 'string',
+ required: true,
+ description: `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\\n\`\`\` code fence. Include step-by-step instructions and any fixed parameter values.`,
+ },
+ ],
+ },
+ {
+ name: 'zapiermcp_delete_zapier_skill',
+ description: `Permanently delete a Zapier Skill by name.`,
+ params: [
+ {
+ name: 'name',
+ type: 'string',
+ required: true,
+ description: `The exact name of the skill to delete`,
+ },
+ ],
+ },
+ {
+ name: 'zapiermcp_disable_zapier_action',
+ description: `Remove an app's actions from this MCP server. Use list_enabled_zapier_actions to see which apps are currently enabled.`,
+ params: [
+ {
+ name: 'app',
+ type: 'string',
+ required: true,
+ description: `App name to remove (e.g., 'gmail', 'jira', 'slack'). Accepts short names or full IDs. Use list_enabled_zapier_actions to see enabled apps.`,
+ },
+ {
+ name: 'action',
+ type: 'string',
+ required: false,
+ description: `Specific action key to remove. If omitted, all actions for the app are removed.`,
+ },
+ ],
+ },
+ {
+ name: 'zapiermcp_discover_zapier_actions',
+ description: `Search 8,000+ Zapier apps to find actions you can enable. Returns app IDs and action keys to use with enable_zapier_action.`,
+ params: [
+ {
+ name: 'app',
+ type: 'string',
+ required: false,
+ description: `Search for apps by name. Omit to see popular apps. Search 8,000+ available apps.`,
+ },
+ ],
+ },
+ {
+ name: 'zapiermcp_enable_zapier_action',
+ description: `Enable an app's actions on this MCP server. Use discover_zapier_actions to find the app name first.`,
+ params: [
+ {
+ name: 'app',
+ type: 'string',
+ required: true,
+ description: `App name or identifier (e.g., 'gmail', 'jira', 'slack'). Accepts short names or full IDs from discover_zapier_actions.`,
+ },
+ {
+ name: 'action',
+ type: 'string',
+ required: false,
+ description: `Specific action key to enable. If omitted or '*', all actions for the app are enabled.`,
+ },
+ ],
+ },
+ {
+ name: 'zapiermcp_execute_zapier_read_action',
+ description: `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.`,
+ params: [
+ {
+ name: 'action',
+ type: 'string',
+ required: true,
+ description: `Action key to execute. Use list_enabled_zapier_actions to get exact keys.`,
+ },
+ {
+ name: 'app',
+ type: 'string',
+ required: true,
+ description: `App identifier. Use list_enabled_zapier_actions to see available apps.`,
+ },
+ {
+ name: 'instructions',
+ type: 'string',
+ required: true,
+ description: `Natural language instructions for the action`,
+ },
+ {
+ name: 'output',
+ type: 'string',
+ required: true,
+ description: `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.`,
+ },
+ {
+ name: 'params',
+ type: 'object',
+ required: false,
+ description: `Optional direct parameter values to pass to the action`,
+ },
+ ],
+ },
+ {
+ name: 'zapiermcp_execute_zapier_write_action',
+ description: `Execute a write or create action in a connected app. Call list_enabled_zapier_actions first to get the app name and action key.`,
+ params: [
+ {
+ name: 'action',
+ type: 'string',
+ required: true,
+ description: `Action key to execute. Use list_enabled_zapier_actions to get exact keys.`,
+ },
+ {
+ name: 'app',
+ type: 'string',
+ required: true,
+ description: `App identifier. Use list_enabled_zapier_actions to see available apps.`,
+ },
+ {
+ name: 'instructions',
+ type: 'string',
+ required: true,
+ description: `Natural language instructions for the action`,
+ },
+ {
+ name: 'output',
+ type: 'string',
+ required: true,
+ description: `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.`,
+ },
+ {
+ name: 'params',
+ type: 'object',
+ required: false,
+ description: `Optional direct parameter values to pass to the action`,
+ },
+ ],
+ },
+ {
+ name: 'zapiermcp_get_configuration_url',
+ description: `Get the URL where users can configure this MCP server — adding, editing, or removing actions and connecting accounts.`,
+ params: [],
+ },
+ {
+ name: 'zapiermcp_get_zapier_skill',
+ description: `Fetch the full markdown content of a Zapier Skill by name. Call this before executing a skill.`,
+ params: [
+ {
+ name: 'name',
+ type: 'string',
+ required: true,
+ description: `The exact name of the skill to retrieve`,
+ },
+ ],
+ },
+ {
+ name: 'zapiermcp_list_enabled_zapier_actions',
+ description: `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.`,
+ params: [
+ {
+ name: 'action',
+ type: 'string',
+ required: false,
+ description: `Filter by action key. Omit to list all actions.`,
+ },
+ {
+ name: 'app',
+ type: 'string',
+ required: false,
+ description: `Filter by app name (e.g., 'gmail', 'jira', 'slack'). Omit to list all apps.`,
+ },
+ ],
+ },
+ {
+ name: 'zapiermcp_list_zapier_skills',
+ description: `List all saved Zapier Skills with their names and descriptions.`,
+ params: [],
+ },
+ {
+ name: 'zapiermcp_send_feedback',
+ description: `Send feedback about your Zapier MCP experience to the Zapier team.`,
+ params: [
+ {
+ name: 'feedback',
+ type: 'string',
+ required: true,
+ description: `Feedback message to send to the Zapier MCP team`,
+ },
+ {
+ name: 'feedback_positive',
+ type: 'boolean',
+ required: true,
+ description: `Whether this is positive feedback (true) or negative (false)`,
+ },
+ ],
+ },
+ {
+ name: 'zapiermcp_update_zapier_skill',
+ description: `Update an existing Zapier Skill's description or content by name.`,
+ params: [
+ {
+ name: 'name',
+ type: 'string',
+ required: true,
+ description: `The exact name of the skill to update`,
+ },
+ {
+ name: 'description',
+ type: 'string',
+ required: false,
+ description: `Updated one-sentence description (optional)`,
+ },
+ {
+ name: 'skillDefinition',
+ type: 'string',
+ required: false,
+ description: `Updated full markdown content (optional)`,
+ },
+ ],
+ },
+]