About zapier-dev-mcp
zapier-dev-mcp is an MCP server for developers building integrations with zapier-platform-cli. It inspects project definitions, checks common app-review issues, and runs the project's own validator.
Key features
- 01Inspect triggers, actions, auth, and hooks
- 02Lint integrations for review readiness
- 03Generate component test fixtures and skeletons
- 04Run the project's zapier validate command
Use cases
- 01Review an integration before app submission
- 02Find missing samples or mismatched version fields
- 03Create test scaffolding for integration components
MCP support
Exposes integration inspection, linting, fixture generation, and validation tools to MCP clients. Project inspection evaluates its entry module in a child process.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
4Saved tool list · updated 3w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| path | string | Yes | Path to a zapier-platform-cli integration project directory |
Details
From the project READMEzapier-dev-mcp
An MCP server for people who build Zapier integrations. Zapier MCP lets AI use Zapier apps — this server helps you ship one. Point Claude at your zapier-platform-cli project:
- "What's in this integration?" — triggers, creates, searches, auth, platform version, request hooks
- "Is it ready for app review?" — a lint pass encoding the things Zapier's review commonly bounces integrations for
- "Run the validator" — wraps your project's own
zapier validate
Quick start
Claude Code
claude mcp add zapier-dev -- npx -y zapier-dev-mcp
Claude Desktop — add to claude_desktop_config.json:
{
"mcpServers": {
"zapier-dev": {
"command": "npx",
"args": ["-y", "zapier-dev-mcp"]
}
}
}
Then: "Lint C:\code\my-zapier-app and walk me through fixing the errors."
Tools
| Tool | What it does |
|---|---|
inspect_integration | Structured summary of the app definition |
lint_integration | Review-readiness report: errors / warnings / info, each anchored to a component path |
generate_test_fixtures | Ready-to-run bundle mocks (typed inputData, authData from your auth fields) plus an appTester test skeleton per component |
validate_integration | Runs the project's own zapier validate (schema + style), with install guidance if the CLI is missing |
What the linter checks
- Missing
operation.sampleon visible actions — required for public apps, and the single most common review bounce - Dynamic dropdowns (
"trigger_key.id.label") referencing triggers that don't exist - Missing
display.label/display.description/noun; unlabeled input fields - Definition
versionvspackage.jsonversion mismatch;platformVersionvs thezapier-platform-coredependency - Auth without a
connectionLabel(users can't tell accounts apart) - Key/map-key mismatches and duplicate keys
hidden components skip the visibility checks. The linter complements zapier validate — schema validation catches malformed definitions; this catches reviewable-but-rough ones.
Notes
- Inspecting a project evaluates its entry module in a child process (with a timeout and output cap) — exactly what the Zapier CLI itself does. Only point it at projects you trust, i.e. your own.
- Computed input fields (functions) can't be linted statically; they're skipped, not flagged.
- Not affiliated with or endorsed by Zapier.
zapier-platform-cliis Zapier's open-source SDK.
Development
npm install
npm test # offline tests — synthetic projects written in-suite
npm run build # tsc → dist/
node scripts/smoke.mjs # end-to-end: generates a project, drives the server over stdio
Architecture: src/extract.ts (definition extraction via child process) and src/lint.ts (pure review checks) carry the logic; src/index.ts is the MCP wiring.
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.