mcp skill:
you choose exactly which inputs the agent fills and which fields it may read back. Unlike the curated
providers, Zapier ships no pre-built actions — every customer’s server exposes a different set, so
the “pack” is the discover-and-freeze flow itself.
Authenticate every request with a secret API key:
Authorization: Bearer flowyte_sk_…. The kind is
zapier. You pay Zapier’s task pricing on your own plan; Flowyte adds no markup.How it works
Connect your Zapier MCP endpoint
Paste the MCP server URL from your Zapier account — no OAuth. Flowyte runs
initialize +
tools/list and reports how many actions are equipped.List the equipped tools
Read the tools you’ve equipped — plus whether it’s a
classic or agentic server.Resolve the action (agentic servers)
Pick the specific action; Flowyte resolves it to a concrete, closed schema, pinning any dynamic
parents (spreadsheet → worksheet → column) along the way. Classic servers already expose a closed
schema per tool, so this step is a no-op for them.
Probe a tool (optional)
Run a tool once to learn which fields it returns, so you can choose what the agent may read.
1. Connect
Zapier connects with an API-key-style credential: paste your Zapier MCP server endpoint URL (the secret is embedded in the URL). It’s encrypted at rest and never echoed back. ThetoolCount in the
response is how many actions are equipped — the connect wizard shows it (or a designed empty state at 0).
2. List the equipped tools
GET /integrations/zapier/tools runs tools/list against your endpoint and returns each equipped
tool’s name, description, and raw JSON-Schema inputSchema — the discovery step for authoring a skill.
The envelope also carries serverMode:
serverMode: "agentic" means your server exposes a few generic executor tools
(execute_zapier_read_action, …) instead of one tool per action — and that’s fully supported. Pick
the specific action you want; Flowyte calls POST /integrations/zapier/tools/{tool}/resolve to
resolve it to a concrete, closed, pinnable schema (materializing dynamic fields once their parents are
pinned), then you freeze it exactly like a classic tool. See Connect Zapier.3. Probe a tool (optional)
An MCP tool has no output schema and Zapier has no sandbox, so to learn which fields a tool returns you run it once and inspect the response.POST /integrations/{kind}/tools/{tool}/probe executes the
real action with your args — you must set acknowledge_execution: true — and returns the response
flattened to dotted leaf paths (with a name-based PII class per leaf) to allow-list at freeze time.
4. Freeze a tool into a skill
POST /agents/{agentId}/integrations/zapier/mcp-skills turns one equipped tool into a skill. Only the
operator-exposed params become the skill’s parameters; pinned args are locked on at runtime.
Every schema-required input must be pinned or exposed; allowedFields (dotted leaf paths from the
probe) is deny-by-default. Because an MCP tool carries no read/write metadata the skill lands
fail-closed as a write (confirm + non-parallel) unless readAttestation.attestedRead is true — a
human downgrade recorded verbatim for audit. Bulk/broadcast-shaped tools are refused.
In the API
| Action | Endpoint | Scope |
|---|---|---|
| Connect the MCP endpoint | POST /integrations/zapier/connect | integrations:write |
List equipped tools (serverMode) | GET /integrations/zapier/tools | integrations:read |
| Resolve an action to a pinnable schema (agentic servers) | POST /integrations/{kind}/tools/{tool}/resolve | integrations:read |
| Probe a tool (executes it) | POST /integrations/{kind}/tools/{tool}/probe | integrations:write |
| Freeze a tool into a skill | POST /agents/{agentId}/integrations/zapier/mcp-skills | skills:write |
| Subscribe to call events | POST /agents/{agentId}/integrations/zapier/triggers | webhooks:write |
| Disconnect | DELETE /integrations/zapier | integrations:write |