Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,254 @@
export const sectionTitle = 'Common workflows'

import { Tabs, TabItem, Aside } from '@astrojs/starlight/components'

<details>
<summary>Auto-provision from existing Zapier connections</summary>

The fastest way to get started is to auto-provision the MCP server based on apps the user has already connected in Zapier.

<Tabs syncKey="tech-stack">
<TabItem label="Node.js">
```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);
```
</TabItem>
<TabItem label="Python">
```python
result = actions.execute_tool(
tool_name="zapiermcp_auto_provision_mcp",
connection_name="zapiermcp",
identifier="user_123",
tool_input={},
)
print(result.data["result"])
```
</TabItem>
</Tabs>

After provisioning, call `zapiermcp_list_enabled_zapier_actions` to see which apps and action keys are now active.

</details>

<details>
<summary>Discover and enable an app</summary>

Search Zapier's catalog for an app, then enable its actions on the MCP server so the agent can use them.

<Tabs syncKey="tech-stack">
<TabItem label="Node.js">
```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);
```
</TabItem>
<TabItem label="Python">
```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"])
```
</TabItem>
</Tabs>

Pass a specific `action` key alongside `app` to enable only one action instead of all.

</details>

<details>
<summary>List enabled actions and execute a read action</summary>

Always list enabled actions first to get the exact `app` and `action` keys before calling execute tools.

<Tabs syncKey="tech-stack">
<TabItem label="Node.js">
```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);
```
</TabItem>
<TabItem label="Python">
```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"])
```
</TabItem>
</Tabs>

</details>

<details>
<summary>Execute a write action</summary>

Use `zapiermcp_execute_zapier_write_action` to create or modify data in a connected app. The `instructions` and `output` fields accept natural language.

<Tabs syncKey="tech-stack">
<TabItem label="Node.js">
```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);
```
</TabItem>
<TabItem label="Python">
```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"])
```
</TabItem>
</Tabs>

<Aside type="caution" title="Write actions modify data">
`zapiermcp_execute_zapier_write_action` creates or modifies records in the connected app. Confirm the `action` key from `zapiermcp_list_enabled_zapier_actions` before calling this tool.
</Aside>

</details>

<details>
<summary>Create and reuse a Zapier Skill</summary>

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.

<Tabs syncKey="tech-stack">
<TabItem label="Node.js">
```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);
```
</TabItem>
<TabItem label="Python">
```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"])
```
</TabItem>
</Tabs>

</details>
Comment thread
coderabbitai[bot] marked this conversation as resolved.
1 change: 1 addition & 0 deletions src/components/templates/agent-connectors/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
77 changes: 77 additions & 0 deletions src/content/docs/agentkit/connectors/zapiermcp.mdx
Original file line number Diff line number Diff line change
@@ -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'

<Steps>

1. ### Install the SDK

<Tabs syncKey="tech-stack">
<TabItem label="Node.js">
```bash frame="terminal"
npm install @scalekit-sdk/node
```
</TabItem>
<TabItem label="Python">
```bash frame="terminal"
pip install scalekit
```
</TabItem>
</Tabs>

Full SDK reference: [Node.js](/agentkit/sdks/node/) | [Python](/agentkit/sdks/python/)

2. ### Set your credentials

<AgentKitCredentials />

3. ### Authorize and make your first call

<QuickstartGenericOauthSection connector="zapiermcp" toolName="zapiermcp_get_configuration_url" providerName="Zapier MCP" />

</Steps>

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

<SectionAfterSetupZapiermcpCommonWorkflows />

## 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.

<ToolList tools={tools} />
8 changes: 8 additions & 0 deletions src/data/agent-connectors/capabilities.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
]
}
2 changes: 1 addition & 1 deletion src/data/agent-connectors/catalog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,7 @@ export const catalog: Record<string, ProviderMeta> = {
},
zendesk: {
iconUrl: 'https://cdn.scalekit.com/sk-connect/assets/provider-icons/zendesk.svg',
authType: 'API KEY',
authType: 'API Key',
categories: ['Customer Support', 'Communication'],
},
googleforms: {
Expand Down
Loading