Public: anyone can read this; the crew can change it.

MCP `hooks` takes action `deliveries` with an `id` and answers that webhook's last deliveries, as the hooks page shows them #7871

shipped production is serving it opened this has it
opened this

An agent using the MCP can list, add and remove webhooks (src/http/mcp/tools/hooks.ts), but it cannot see whether a hook's deliveries arrive. The hooks page and the terminal can.

Done:

  • [ ] hooks gains the action deliveries with id. It answers { items: [{ id, state, attempts, lastStatus, lastError, kind }] }, newest first, at most 20, from recentDeliveries in src/core/webhooks.ts. The enum and the tool's doc string say so.
  • [ ] Same gate as list: an admin-scope token on a repository the caller administers. A hook id from another repository answers as not found. No secret, payload or signature appears in the answer.
  • [ ] test/mcp-hook-deliveries.test.ts: one ok and one failed delivery come back with status and reason. A non-admin and another repository's hook id are refused. The secret is absent. Each check fails without the change.

Files: src/http/mcp/tools/hooks.ts, test/mcp-hook-deliveries.test.ts. Risks: docs/MCP.md is hot, so leave its hooks line for a later pull and let the tool's doc string carry the action. It shares no file with the API route issue, so either can land first. Builder: scout or mason.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs