diff --git a/guides/zapier/meta.yaml b/guides/zapier/meta.yaml index aa5929a..b3601d6 100644 --- a/guides/zapier/meta.yaml +++ b/guides/zapier/meta.yaml @@ -28,43 +28,46 @@ provenance: - source: pulsemcp name: com.pulsemcp.mirror/zapier classification: mirror - observed_at: "2026-07-28T18:22:42Z" + observed_at: "2026-08-11T18:36:07Z" - source: provider-documentation locator: https://docs.zapier.com/llms.txt - observed_at: "2026-07-28T18:22:42Z" + observed_at: "2026-08-11T18:36:07Z" - source: provider-documentation locator: https://docs.zapier.com/mcp/get-started/connect - observed_at: "2026-07-28T18:22:42Z" + observed_at: "2026-08-11T18:36:07Z" - source: provider-documentation locator: https://docs.zapier.com/mcp/get-started/authentication - observed_at: "2026-07-28T18:22:42Z" + observed_at: "2026-08-11T18:36:07Z" - source: provider-documentation - locator: https://docs.zapier.com/mcp/quickstart - observed_at: "2026-07-28T18:22:42Z" + locator: https://docs.zapier.com/mcp/get-started/quickstart + observed_at: "2026-08-11T18:36:07Z" - source: provider-documentation locator: https://docs.zapier.com/mcp/overview/how-tools-work - observed_at: "2026-07-28T18:22:42Z" + observed_at: "2026-08-11T18:36:07Z" - source: provider-documentation - locator: https://docs.zapier.com/mcp/usage - observed_at: "2026-07-28T18:22:42Z" + locator: https://docs.zapier.com/mcp/features/usage + observed_at: "2026-08-11T18:36:07Z" - source: provider-documentation - locator: https://docs.zapier.com/mcp/security - observed_at: "2026-07-28T18:22:42Z" + locator: https://docs.zapier.com/mcp/manage/security + observed_at: "2026-08-11T18:36:07Z" - source: provider-documentation locator: https://help.zapier.com/hc/en-us/articles/36265392843917-Use-Zapier-MCP-with-your-client - observed_at: "2026-07-28T18:22:42Z" + observed_at: "2026-08-11T18:36:07Z" - source: provider-documentation locator: https://mcp.zapier.com/api/v1/connect - observed_at: "2026-07-28T18:22:42Z" + observed_at: "2026-08-11T18:36:07Z" - source: provider-documentation locator: https://mcp.zapier.com/.well-known/oauth-protected-resource/api/v1/connect - observed_at: "2026-07-28T18:22:42Z" + observed_at: "2026-08-11T18:36:07Z" - source: provider-documentation locator: https://mcp.zapier.com/.well-known/oauth-authorization-server - observed_at: "2026-07-28T18:22:42Z" + observed_at: "2026-08-11T18:36:07Z" + - source: provider-documentation + locator: https://zapier.com/llms.txt + observed_at: "2026-08-11T18:36:07Z" - source: provider-documentation locator: https://zapier.com/mcp - observed_at: "2026-07-28T18:22:42Z" + observed_at: "2026-08-11T18:36:07Z" - source: doctrine locator: doctrine/speakeasy-setup.md - observed_at: "2026-07-28T18:22:42Z" + observed_at: "2026-08-11T18:36:07Z" diff --git a/guides/zapier/pipeline.lock.json b/guides/zapier/pipeline.lock.json index 9571201..6755cfa 100644 --- a/guides/zapier/pipeline.lock.json +++ b/guides/zapier/pipeline.lock.json @@ -2,14 +2,14 @@ "schema_version": 1, "slug": "zapier", "persona": "it-admin", - "runtime": "cursor-sdk", - "updated_at": "2026-07-28T18:34:22Z", + "runtime": "pi", + "updated_at": "2026-08-11T18:39:00Z", "steps": { "research": { - "input_digest": "sha256:ecd5d1e0de3c27f45642a2e584a4365ac4d90eeb6020ab983380ecfed19af565", + "input_digest": "sha256:daa88097019b770c8199516d3c1ee89cac583888c506931c25525f74338077df", "inputs": { - "model": "gpt-5.6-sol", - "prompt_digest": "sha256:3b79ac335ee0b509b454301f3d8eb1d9665aea3729404aa00d65e08433e6b4e5", + "model": "openrouter/openai/gpt-5.6-sol", + "prompt_digest": "sha256:255c60266361ff6711b0b04829329485020218f5a0460f70aa30f30d9c1711fc", "reading_list": [ { "path": "doctrine/glossary.md", @@ -21,36 +21,36 @@ }, { "path": "doctrine/roles/technical-research.md", - "digest": "sha256:66065c6978e8389ff59b1a5f1ba0bfe4b7d16c93189416d97119b5cbdd6f091f" + "digest": "sha256:88f093f873c705128a0a31eb38be298a2ee11f4d50815552739925337f8ac3ad" }, { "path": "doctrine/speakeasy-setup.md", - "digest": "sha256:8715948a90f95187a2e093e3dfbaccb2870423ee7c90aed4eeba5c418c0bb85e" + "digest": "sha256:9f173facc7f63e450eb7e4d693c67c0a88e9ff68f0a381cfcbae413a8d47dd16" } ], "artifacts": [], "params": { "provider": "zapier", - "notes": "Issue requests updating the existing Zapier setup guide; review guides/zapier and align with current MCP server capabilities and auth.\n\nSpeakeasy MCP Catalog: present name=\"com.pulsemcp.mirror/zapier\"" + "notes": "Refresh the existing guide due to lockfile drift; previous runtime was cursor-sdk and the next run uses pi.\n\nSpeakeasy MCP Catalog: forced-catalog name=\"com.pulsemcp.mirror/zapier\"" } }, "outputs": [ { "path": "research.md", - "digest": "sha256:a40cf402ee47cee83a341cc4e7ddc6741f4f3d74928a1d307d9b5dca2e344880" + "digest": "sha256:174f373c464140fe2bcb2ada353a2237b885a85686753d8e6e4ed63307403801" }, { "path": "meta.yaml", - "digest": "sha256:1f6b9295f678bc31e67310147d028fa556e65c39719c422f99b02c34e741ec39" + "digest": "sha256:adb4d85fcc0973c8f411030b348609555bfe62a387e495dfd0eced067e431485" } ], - "completed_at": "2026-07-28T18:34:22Z" + "completed_at": "2026-08-11T18:39:00Z" }, "draft": { - "input_digest": "sha256:307022abc3b46053a01dd77fcdb60170f826956bb987e52a436270d5da36fa5e", + "input_digest": "sha256:c96360d72e4f599412dfdb07a87125a5ba34c4489ea0fdee84a9a0f89ef53bb9", "inputs": { - "model": "gpt-5.6-sol", - "prompt_digest": "sha256:a956869fa21cc7f91fff9450fe09c86dc2014cb5f058691e03d07eb0b3acce3f", + "model": "openrouter/openai/gpt-5.6-sol", + "prompt_digest": "sha256:ad649d12e8bf3882a1593555c0c4d31681ac50aa891177b1a8f766a563d85d6c", "reading_list": [ { "path": "doctrine/glossary.md", @@ -62,26 +62,26 @@ }, { "path": "doctrine/roles/writer.md", - "digest": "sha256:1e2f0afa73e8c28502f7fea0d21722a22c980326f3bd878418df27c23fa5b6b3" + "digest": "sha256:4214af68feea7dfc68fab1058e1d5d35e6238d5b51fd9b10db421ebafc49a3cc" }, { "path": "doctrine/personas/it-admin.md", - "digest": "sha256:b76dc61236fa5c56390354a0d51d5b5ee666395bb65a2e993b79bd9aa9c1fd0d" + "digest": "sha256:38c1356b43c9e5f92527f9b73e8561a62cb2eb636b675796af49d0b6015dd9be" } ], "artifacts": [ { "path": "research.md", - "digest": "sha256:a40cf402ee47cee83a341cc4e7ddc6741f4f3d74928a1d307d9b5dca2e344880" + "digest": "sha256:174f373c464140fe2bcb2ada353a2237b885a85686753d8e6e4ed63307403801" }, { "path": "meta.yaml", - "digest": "sha256:1f6b9295f678bc31e67310147d028fa556e65c39719c422f99b02c34e741ec39" + "digest": "sha256:adb4d85fcc0973c8f411030b348609555bfe62a387e495dfd0eced067e431485" } ], "params": { "provider": "zapier", - "notes": "Issue requests updating the existing Zapier setup guide; review guides/zapier and align with current MCP server capabilities and auth.\n\nSpeakeasy MCP Catalog: forced-catalog name=\"com.pulsemcp.mirror/zapier\"", + "notes": "Refresh the existing guide due to lockfile drift; previous runtime was cursor-sdk and the next run uses pi.\n\nSpeakeasy MCP Catalog: forced-catalog name=\"com.pulsemcp.mirror/zapier\"", "persona": "it-admin" } }, @@ -92,16 +92,16 @@ }, { "path": "speakeasy.md", - "digest": "sha256:a3e7f7f986e7d776b325bd2b5d00872187b58c7c15f80736ba613469d49daabb" + "digest": "sha256:a5e3d51ea774259aed8c07a27677104b7739b906cb6bfab1a57a2f2d79b70a61" } ], - "completed_at": "2026-07-28T18:34:22Z" + "completed_at": "2026-08-11T18:39:00Z" }, "review.fidelity": { - "input_digest": "sha256:9d2f2ad08f54b7b95467e8f82e616c04080ecced105f0891100bce46046f47cc", + "input_digest": "sha256:cf5267b7c790b1fdc5c48533cce0eb4bf810e9b6ba52faf67ddca15c6b011389", "inputs": { - "model": "gpt-5.6-sol", - "prompt_digest": "sha256:cb91cacc0c50621e5c913643f99937071ea75c9a7c0856ff8c6cc70fc568d861", + "model": "openrouter/openai/gpt-5.6-sol", + "prompt_digest": "sha256:2885ba720bba92fbed782f1ac13fdbd065c3f1a294302ee85792fc4f61866e1f", "reading_list": [ { "path": "doctrine/glossary.md", @@ -113,17 +113,17 @@ }, { "path": "doctrine/roles/fidelity.md", - "digest": "sha256:472ec8a2db648c822d126dea857d3f79e9c97a8e9b5fe6a997170bef3c8d2c22" + "digest": "sha256:f1c64906d2702d25c5db118f0a1a471b4962333a506c235ffebccf67413aa7f3" } ], "artifacts": [ { "path": "research.md", - "digest": "sha256:a40cf402ee47cee83a341cc4e7ddc6741f4f3d74928a1d307d9b5dca2e344880" + "digest": "sha256:174f373c464140fe2bcb2ada353a2237b885a85686753d8e6e4ed63307403801" }, { "path": "meta.yaml", - "digest": "sha256:1f6b9295f678bc31e67310147d028fa556e65c39719c422f99b02c34e741ec39" + "digest": "sha256:adb4d85fcc0973c8f411030b348609555bfe62a387e495dfd0eced067e431485" }, { "path": "external.md", @@ -131,12 +131,12 @@ }, { "path": "speakeasy.md", - "digest": "sha256:a3e7f7f986e7d776b325bd2b5d00872187b58c7c15f80736ba613469d49daabb" + "digest": "sha256:a5e3d51ea774259aed8c07a27677104b7739b906cb6bfab1a57a2f2d79b70a61" } ], "params": { "provider": "zapier", - "notes": "Issue requests updating the existing Zapier setup guide; review guides/zapier and align with current MCP server capabilities and auth.\n\nSpeakeasy MCP Catalog: forced-catalog name=\"com.pulsemcp.mirror/zapier\"", + "notes": "Refresh the existing guide due to lockfile drift; previous runtime was cursor-sdk and the next run uses pi.\n\nSpeakeasy MCP Catalog: forced-catalog name=\"com.pulsemcp.mirror/zapier\"", "persona": "it-admin", "dimension": "fidelity" } @@ -148,16 +148,16 @@ }, { "path": "speakeasy.md", - "digest": "sha256:a3e7f7f986e7d776b325bd2b5d00872187b58c7c15f80736ba613469d49daabb" + "digest": "sha256:a5e3d51ea774259aed8c07a27677104b7739b906cb6bfab1a57a2f2d79b70a61" } ], - "completed_at": "2026-07-28T18:34:22Z" + "completed_at": "2026-08-11T18:39:00Z" }, "review.achievability": { - "input_digest": "sha256:6bafa114a9fd454afe71995de61a2eb93103d6e0870f7ebf3a19184b43afa285", + "input_digest": "sha256:7762154d27512ee4323146a6bf5d8ac7d24397a3442027b879d7bb6e01f15ca1", "inputs": { - "model": "gpt-5.6-sol", - "prompt_digest": "sha256:5da0cf6dfcf7d6cc8a083825cd048f87c4d0ce7442683b67981efb98b8a97ca3", + "model": "openrouter/openai/gpt-5.6-sol", + "prompt_digest": "sha256:0b287f892ece7611416030973e4b1952db4c173e3023930bf238685d39b79cdf", "reading_list": [ { "path": "doctrine/glossary.md", @@ -173,17 +173,17 @@ }, { "path": "doctrine/personas/it-admin.md", - "digest": "sha256:b76dc61236fa5c56390354a0d51d5b5ee666395bb65a2e993b79bd9aa9c1fd0d" + "digest": "sha256:38c1356b43c9e5f92527f9b73e8561a62cb2eb636b675796af49d0b6015dd9be" } ], "artifacts": [ { "path": "research.md", - "digest": "sha256:a40cf402ee47cee83a341cc4e7ddc6741f4f3d74928a1d307d9b5dca2e344880" + "digest": "sha256:174f373c464140fe2bcb2ada353a2237b885a85686753d8e6e4ed63307403801" }, { "path": "meta.yaml", - "digest": "sha256:1f6b9295f678bc31e67310147d028fa556e65c39719c422f99b02c34e741ec39" + "digest": "sha256:adb4d85fcc0973c8f411030b348609555bfe62a387e495dfd0eced067e431485" }, { "path": "external.md", @@ -191,12 +191,12 @@ }, { "path": "speakeasy.md", - "digest": "sha256:a3e7f7f986e7d776b325bd2b5d00872187b58c7c15f80736ba613469d49daabb" + "digest": "sha256:a5e3d51ea774259aed8c07a27677104b7739b906cb6bfab1a57a2f2d79b70a61" } ], "params": { "provider": "zapier", - "notes": "Issue requests updating the existing Zapier setup guide; review guides/zapier and align with current MCP server capabilities and auth.\n\nSpeakeasy MCP Catalog: forced-catalog name=\"com.pulsemcp.mirror/zapier\"", + "notes": "Refresh the existing guide due to lockfile drift; previous runtime was cursor-sdk and the next run uses pi.\n\nSpeakeasy MCP Catalog: forced-catalog name=\"com.pulsemcp.mirror/zapier\"", "persona": "it-admin", "dimension": "achievability" } @@ -208,10 +208,10 @@ }, { "path": "speakeasy.md", - "digest": "sha256:a3e7f7f986e7d776b325bd2b5d00872187b58c7c15f80736ba613469d49daabb" + "digest": "sha256:a5e3d51ea774259aed8c07a27677104b7739b906cb6bfab1a57a2f2d79b70a61" } ], - "completed_at": "2026-07-28T18:34:22Z" + "completed_at": "2026-08-11T18:39:00Z" } } } diff --git a/guides/zapier/research.md b/guides/zapier/research.md index 9a37608..2042d63 100644 --- a/guides/zapier/research.md +++ b/guides/zapier/research.md @@ -1,7 +1,7 @@ --- research_version: 1 slug: zapier -researched_at: 2026-07-28T18:22:42Z +researched_at: 2026-08-11T18:36:07Z --- # Zapier — Research Dossier @@ -36,12 +36,13 @@ researched_at: 2026-07-28T18:22:42Z Zapier's current public documentation is internally inconsistent about whether a user must first create a named server at `mcp.zapier.com`. The current **Connect your AI client** page says OAuth clients connect directly to the -shared URL with “no server setup required,” while the quickstart, first-workflow -page, authentication page, and support article still describe creating a +shared URL with “no server setup required,” while the documentation index, +quickstart, authentication page, and support article still describe creating a client-specific server first. This Guide uses the direct OAuth path because the shared remote currently returns an RFC 9728 challenge and publishes a DCR -registration endpoint, and because the Speakeasy MCP Catalog entry maps to that -shared remote. The older connection-token path is therefore not rendered. +registration endpoint, and because the forced Speakeasy MCP Catalog entry maps +to that shared remote. The older connection-token path is therefore not +rendered. ## Credential flow @@ -156,12 +157,16 @@ https://docs.zapier.com/mcp/get-started/connect. ### Source inventory - Developer documentation: `https://docs.zapier.com`; its MCP index is - available at `https://docs.zapier.com/llms.txt`. Used. + available at `https://docs.zapier.com/llms.txt`. Used. The index itself + still recommends creating a server, while its current client-connection + page says no server setup is required. - Product and admin surface: `https://mcp.zapier.com`; authentication is required for dashboard UI, while the remote endpoint and OAuth metadata are public. Public metadata used; authenticated UI not probed. -- Product site: `https://zapier.com/mcp`. Used for plan availability and - enterprise positioning. +- Product site: `https://zapier.com`; its machine-readable root index is + `https://zapier.com/llms.txt`. The MCP product page is + `https://zapier.com/mcp`. Used for plan availability and enterprise + positioning. - Support knowledge base: `https://help.zapier.com/hc/en-us`. Used to compare the older server/token setup path and confirm plan availability. - Speakeasy setup doctrine: `doctrine/speakeasy-setup.md`. Used for the fixed @@ -170,42 +175,44 @@ https://docs.zapier.com/mcp/get-started/connect. ### Source records - `https://docs.zapier.com/llms.txt` — observed - `2026-07-28T18:22:42Z`; documentation-property sweep and current MCP page + `2026-08-11T18:36:07Z`; documentation-property sweep and current MCP page inventory. - `https://docs.zapier.com/mcp/get-started/connect` — observed - `2026-07-28T18:22:42Z`; shared remote URL, Streamable HTTP, no SSE, + `2026-08-11T18:36:07Z`; shared remote URL, Streamable HTTP, no SSE, direct OAuth connection, and no-server-setup statement. - `https://docs.zapier.com/mcp/get-started/authentication` — observed - `2026-07-28T18:22:42Z`; documented authentication alternatives and the + `2026-08-11T18:36:07Z`; documented authentication alternatives and the older connection-token path. -- `https://docs.zapier.com/mcp/quickstart` — observed - `2026-07-28T18:22:42Z`; conflicting named-server setup flow and OAuth as +- `https://docs.zapier.com/mcp/get-started/quickstart` — observed + `2026-08-11T18:36:07Z`; conflicting named-server setup flow and OAuth as the normal flow for listed clients. - `https://docs.zapier.com/mcp/overview/how-tools-work` — observed - `2026-07-28T18:22:42Z`; dynamic discovery, OAuth auto-provisioning, + `2026-08-11T18:36:07Z`; dynamic discovery, OAuth auto-provisioning, ownership limitation for app connections, and manual-mode distinction. -- `https://docs.zapier.com/mcp/usage` — observed - `2026-07-28T18:22:42Z`; task billing, non-billable setup/authentication, +- `https://docs.zapier.com/mcp/features/usage` — observed + `2026-08-11T18:36:07Z`; task billing, non-billable setup/authentication, and task-limit behavior. -- `https://docs.zapier.com/mcp/security` — observed - `2026-07-28T18:22:42Z`; default account enablement, workspace controls, +- `https://docs.zapier.com/mcp/manage/security` — observed + `2026-08-11T18:36:07Z`; default account enablement, workspace controls, user permissions, and account-level restrictions. -- `https://zapier.com/mcp` — observed `2026-07-28T18:22:42Z`; availability +- `https://zapier.com/llms.txt` — observed `2026-08-11T18:36:07Z`; + product-property sweep and pointer to the developer documentation index. +- `https://zapier.com/mcp` — observed `2026-08-11T18:36:07Z`; availability on all plans and use of the existing plan quota. - `https://help.zapier.com/hc/en-us/articles/36265392843917-Use-Zapier-MCP-with-your-client` - — observed `2026-07-28T18:22:42Z`; support-site requirements, all-plan + — observed `2026-08-11T18:36:07Z`; support-site requirements, all-plan availability, and the older unlisted-client token flow. - `https://mcp.zapier.com/api/v1/connect` — observed - `2026-07-28T18:22:42Z`; live `401` response and RFC 9728 + `2026-08-11T18:36:07Z`; live `401` response and RFC 9728 `WWW-Authenticate` challenge. - `https://mcp.zapier.com/.well-known/oauth-protected-resource/api/v1/connect` - — observed `2026-07-28T18:22:42Z`; resource identifier, authorization + — observed `2026-08-11T18:36:07Z`; resource identifier, authorization server, and supported scopes. - `https://mcp.zapier.com/.well-known/oauth-authorization-server` — observed - `2026-07-28T18:22:42Z`; issuer, OAuth endpoints, DCR endpoint, grants, + `2026-08-11T18:36:07Z`; issuer, OAuth endpoints, DCR endpoint, grants, token authentication methods, PKCE methods, and scopes. - Pulse MCP Catalog record `com.pulsemcp.mirror/zapier`, title `Zapier` — - observed `2026-07-28T18:22:42Z`; catalog presence and catalog add-server + observed `2026-08-11T18:36:07Z`; catalog presence and catalog add-server path. Source: `pulsemcp`. -- `doctrine/speakeasy-setup.md` — observed `2026-07-28T18:22:42Z`; fixed +- `doctrine/speakeasy-setup.md` — observed `2026-08-11T18:36:07Z`; fixed Speakeasy-side flow, labels, screenshot notes, and anchors. diff --git a/retro/runs/2026-08-11T18:36:07Z-zapier.json b/retro/runs/2026-08-11T18:36:07Z-zapier.json new file mode 100644 index 0000000..33780cd --- /dev/null +++ b/retro/runs/2026-08-11T18:36:07Z-zapier.json @@ -0,0 +1,33 @@ +{ + "slug": "zapier", + "provider": "zapier", + "persona": "it-admin", + "timestamp": "2026-08-11T18:36:07Z", + "started_at": "2026-08-11T18:36:07Z", + "finished_at": "2026-08-11T18:39:00Z", + "runtime": "pi", + "status": "converged", + "rounds": 1, + "nits": [], + "open_questions": [ + "Zapier’s public documentation does not publish the exact labels or content of the browser sign-in and authorization prompts presented after DCR; the Setup Guide should direct the reader to complete the on-screen prompts without inventing labels.", + "Zapier has not reconciled its direct-connect page with documentation that still requires creating a client-specific server. The direct DCR route is supported by live discovery metadata, but it was not completed end to end because that requires client registration and authorization with a Zapier account." + ], + "history": [ + { + "round": 1, + "blockers": [], + "nits": [] + } + ], + "research_change": { + "method": "judge", + "unchanged": false, + "notes": "operator notes changed since lock; keeping AFTER and treating as changed for skip. judge: AFTER is drafting-equivalent to BEFORE. Remote URL, transport, OAuth DCR flow, prerequisites, catalog-only add-server path, anchors, credential fields, scopes, and Speakeasy steps are unchanged. Differences are timestamp churn, minor wording, updated Zapier documentation locators, and the added zapier.com/llms.txt provenance record; these do not require re-rendering external.md or speakeasy.md or invalidate prior setup review." + }, + "notes_digest": "sha256:4787d82bc896ef66b946798ffdc65a36d2a6f5d755fcaf9d7714616b61d27fd3", + "setup_churn": { + "external_md_lines": 0, + "speakeasy_md_lines": 0 + } +}