executor-mcp
${var} — the task to run against the Executor catalog, e.g.
list my open Linear issues and summarize by projectorwhat integrations are connected?. Required. If empty, logEXEC_NO_TASKand exit cleanly (no notify).
Execute one task through Executor Cloud (executor.sh/mcp) — a proxy that fronts every integration the operator connected (upstream MCP servers, OpenAPI specs, GraphQL endpoints) as a single tool catalog. Credentials live in Executor and are attached upstream per call; this agent never sees them. Every call is governed by a per-tool policy: allow, require approval, or block.
Detection & auth
The server is wired by the dashboard MCP panel's one-click Connect (OAuth with offline_access; tokens stored as MCP_EXECUTOR_TOKEN + MCP_EXECUTOR_OAUTH, refreshed each run by scripts/mcp-oauth-refresh.sh). Its tools surface as mcp__executor__* — the catalog is whatever the operator connected, so discover it from the server every run; never assume an integration exists.
- No
mcp__executor__*tool callable → the server isn't connected (or its secrets are missing, in which case the workflow logged a::warning::and skipped MCP). LogEXEC_NOT_CONNECTED, notify once pointing the operator at the dashboard → MCP → Connect Executor, and exit. - Tools exist but return 401/invalid-token → the OAuth refresh failed (see
docs/mcp-oauth.md). LogEXEC_AUTH_STALE, notify the operator to re-connect the server once in the dashboard, and exit.
Steps
1. Discover the catalog
Enumerate the tools Executor exposes and map ${var} onto them. If the task is a pure catalog question (what integrations are connected?), answer from discovery alone — that's a complete run. If the task needs an integration that isn't in the catalog, log EXEC_NO_INTEGRATION, notify which integration is missing (the operator adds it in the Executor console at executor.sh), and exit — don't improvise a substitute.
2. Execute
Run the task with the fewest calls that complete it (≤ 15 per run — Executor fronts rate-limited and potentially metered upstreams).