@ericrisco/rsc 0.1.37 → 0.1.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -2
- package/manifest.json +130 -4
- package/package.json +1 -1
- package/scripts/lib/domains.js +1 -0
- package/scripts/lib/recommend.js +5 -0
- package/skills/automation-flows/SKILL.md +1 -1
- package/skills/automation-strategy/SKILL.md +131 -0
- package/skills/automation-strategy/evals/README.md +16 -0
- package/skills/automation-strategy/evals/cases.yaml +48 -0
- package/skills/automation-strategy/references/automate-decision-and-roi.md +118 -0
- package/skills/automation-strategy/references/orchestration-and-antipatterns.md +107 -0
- package/skills/automation-strategy/references/platform-selection-matrix.md +86 -0
- package/skills/harness/references/providers.yaml +101 -0
- package/skills/make/SKILL.md +255 -0
- package/skills/make/evals/README.md +14 -0
- package/skills/make/evals/cases.yaml +45 -0
- package/skills/make/references/api-v2-cheatsheet.md +114 -0
- package/skills/make/references/blueprint-round-trip.md +128 -0
- package/skills/make/references/make-mcp-and-auth.md +101 -0
- package/skills/n8n/SKILL.md +205 -0
- package/skills/n8n/evals/README.md +14 -0
- package/skills/n8n/evals/cases.yaml +45 -0
- package/skills/n8n/references/auth-and-selfhost.md +62 -0
- package/skills/n8n/references/n8n-mcp-tools.md +84 -0
- package/skills/n8n/references/rest-api-cheatsheet.md +94 -0
- package/skills/power-automate/SKILL.md +169 -0
- package/skills/power-automate/evals/README.md +17 -0
- package/skills/power-automate/evals/cases.yaml +43 -0
- package/skills/power-automate/references/dataverse-web-api.md +187 -0
- package/skills/power-automate/references/entra-auth-setup.md +75 -0
- package/skills/power-automate/references/flowstudio-mcp-and-limits.md +62 -0
- package/skills/roast-me/tools/adapters/__pycache__/__init__.cpython-312.pyc +0 -0
- package/skills/roast-me/tools/adapters/__pycache__/base.cpython-312.pyc +0 -0
- package/skills/roast-me/tools/adapters/__pycache__/claude.cpython-312.pyc +0 -0
- package/skills/roast-me/tools/adapters/__pycache__/codex.cpython-312.pyc +0 -0
- package/skills/roast-me/tools/adapters/__pycache__/gemini.cpython-312.pyc +0 -0
- package/skills/roast-me/tools/adapters/__pycache__/registry.cpython-312.pyc +0 -0
- package/skills/zapier/SKILL.md +145 -0
- package/skills/zapier/evals/README.md +5 -0
- package/skills/zapier/evals/cases.yaml +50 -0
- package/skills/zapier/references/programmatic-limits-and-partner-api.md +48 -0
- package/skills/zapier/references/when-to-use-vs-n8n-make.md +44 -0
- package/skills/zapier/references/zapier-mcp-tools.md +72 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Zapier MCP — tools, lifecycle, and call sketches
|
|
2
|
+
|
|
3
|
+
Depth overflow for `SKILL.md`. The hosted Zapier MCP server exposes two layers of tools:
|
|
4
|
+
|
|
5
|
+
1. **Static meta-tools** — a fixed set (~14; **verify the current list at `docs.zapier.com/mcp`**, it changes) that let an agent discover, enable, configure, and execute actions dynamically. These are always present once the server is connected.
|
|
6
|
+
2. **Enabled app actions** — the specific actions you turned on for this MCP server (e.g. `slack_send_channel_message`). These appear as their own callable tools after you enable them.
|
|
7
|
+
|
|
8
|
+
Zapier hosts the server (`mcp.zapier.com/api/v1/connect`) and it is closed-source, so treat the exact tool names below as representative, not a contract. Confirm names against the live server's advertised tool list before hardcoding.
|
|
9
|
+
|
|
10
|
+
## The meta-tool families
|
|
11
|
+
|
|
12
|
+
| Family | Representative tool(s) | Purpose | Read/write |
|
|
13
|
+
| --- | --- | --- | --- |
|
|
14
|
+
| **Discover** | `discover_zapier_actions` | Search the 40,000+ action catalog by natural language; returns action ids you can enable. | read (free) |
|
|
15
|
+
| **Enable / manage** | `enable_zapier_action`, and list/disable/remove companions | Add a discovered action to this server so it becomes callable; list what is enabled; remove one. | read/config |
|
|
16
|
+
| **Configure** | an edit/config tool | Pre-fill or constrain an enabled action's fields (e.g. pin a default Slack channel). | config |
|
|
17
|
+
| **Execute — read** | `execute_zapier_read_action` | Run a search/find/get/list/lookup action. | read |
|
|
18
|
+
| **Execute — write** | `execute_zapier_write_action` | Run a send/create/update/add/delete action — real side effect. | **write** |
|
|
19
|
+
|
|
20
|
+
The server distinguishes read from write **in the tool name itself** — that is your safety signal (see the write-safety rule in `SKILL.md`). When in doubt, the verb in the action name (find/get/list = read; send/create/update/delete = write) decides.
|
|
21
|
+
|
|
22
|
+
## Lifecycle, end to end
|
|
23
|
+
|
|
24
|
+
```text
|
|
25
|
+
# 1. DISCOVER — what can Slack do here? (free read)
|
|
26
|
+
discover_zapier_actions({ query: "send a message to a Slack channel" })
|
|
27
|
+
→ [ { id: "slack_send_channel_message", label: "Send Channel Message", ... }, ... ]
|
|
28
|
+
|
|
29
|
+
# 2. ENABLE — make that action callable on this server
|
|
30
|
+
enable_zapier_action({ action: "slack_send_channel_message" })
|
|
31
|
+
→ { enabled: true, tool: "slack_send_channel_message" }
|
|
32
|
+
|
|
33
|
+
# 3. (optional) CONFIGURE — pin defaults so the agent can't pick the wrong channel
|
|
34
|
+
# e.g. lock channel = "#alerts", leave text as the only agent-supplied field
|
|
35
|
+
|
|
36
|
+
# 4. INVOKE — read first if you need to look something up (free-to-just-do)
|
|
37
|
+
execute_zapier_read_action({
|
|
38
|
+
action: "slack_find_message",
|
|
39
|
+
inputs: { query: "deploy failed" }
|
|
40
|
+
})
|
|
41
|
+
|
|
42
|
+
# …then the write, ONLY after showing the user the exact payload and getting approval
|
|
43
|
+
execute_zapier_write_action({
|
|
44
|
+
action: "slack_send_channel_message",
|
|
45
|
+
inputs: { channel: "#alerts", text: "Deploy #4821 succeeded ✅" }
|
|
46
|
+
})
|
|
47
|
+
→ 2 Zapier tasks consumed on success
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Cost accounting
|
|
51
|
+
|
|
52
|
+
- **2 Zapier tasks per successful tool call.** Failed calls cost nothing.
|
|
53
|
+
- Discovery and enablement are lightweight; the expensive unit is each successful read/write **invocation**.
|
|
54
|
+
- A polling or retrying agent multiplies this fast. Prefer a single precise call; do not loop `discover` in production paths (discover once, enable, then invoke the concrete tool by name).
|
|
55
|
+
- Task quota is your Zapier plan's quota — MCP draws from the same bucket as your Zaps.
|
|
56
|
+
|
|
57
|
+
## First-connect and error handling
|
|
58
|
+
|
|
59
|
+
- If no Zapier tools are visible, the server is installed but **not authenticated** — the user must connect it in their client's MCP settings (the client redirects to `mcp.zapier.com` to sign in). Do not call Zapier tools until they appear.
|
|
60
|
+
- `401 / unauthorized` → key expired or missing; re-authenticate at `mcp.zapier.com`.
|
|
61
|
+
- `authentication required` on one app → that app's connection needs its own OAuth; the user connects it at `mcp.zapier.com`.
|
|
62
|
+
- `tool/action not found` → not enabled on this server; discover + enable it, or the user adds it in the dashboard.
|
|
63
|
+
- `rate limit` → space calls out.
|
|
64
|
+
- Empty results are **not** an error — report "nothing found", don't silently retry with broader terms (each retry is real quota if it succeeds).
|
|
65
|
+
|
|
66
|
+
Translate errors into plain language for the user; never dump the raw 401.
|
|
67
|
+
|
|
68
|
+
## Handy patterns
|
|
69
|
+
|
|
70
|
+
- **Scope the key.** Enable only the actions a given agent needs. The MCP key can fire everything enabled on that server, and Enterprise org restrictions are **not** enforced through MCP.
|
|
71
|
+
- **Native MCP beats Zapier for a single app.** If a dedicated app MCP exists (e.g. a native Slack/Notion server), prefer it for that app; use Zapier for long-tail apps and cross-app chains. Never call both for one operation.
|
|
72
|
+
- **Trigger vs action.** MCP invokes actions. To *start* a Zap the user built, POST to its Catch Hook URL instead — no MCP call, no 2-task charge for the trigger itself (the Zap's own steps bill as normal Zapier tasks).
|