About otterkit
otterkit provides Agent Skills that teach AI coding agents to operate OtterKit tunnels and webhook endpoints. Its workflows cover capturing, verifying, and replaying events, including signed events for Stripe, GitHub, Shopify, and Slack.
Key features
- 01Teach agents to manage tunnels and webhook endpoints
- 02Capture, inspect, and replay webhook deliveries
- 03Send synthetic events with provider signatures
- 04Verify captured requests against signing secrets
- 05Provide workflows for Stripe, GitHub, Shopify, and Slack
Use cases
- 01Test a local webhook handler with synthetic provider events
- 02Inspect and verify captured webhook deliveries
- 03Replay captured events with refreshed signatures
- 04Set up OtterKit workflows in an AI coding agent
MCP support
OtterKit can also be added as an MCP server using `claude mcp add otterkit -- npx otterkit mcp`; it exposes the same capabilities as the skills.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
11Saved tool list · updated 3w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| ttl | string | No | Auto-stop after e.g. 45m, 4h, 3d (default 24h, max 7d) |
| respond | integer | No | Auto-response HTTP status (default 200) |
| standby | boolean | No | Keep the endpoint live if the daemon dies or disconnects: the server serves the auto-response itself and buffers requests (up to 200), replaying them into the log on reconnect. Billing continues while disconnected. |
| subdomain | string | No | Stable reserved subdomain (claimed to the account on first use) |
| respondBody | string | No | Auto-response body (default {"received":true}) |
Details
From the project READMEOtterKit Agent Skills
Skills that teach AI coding agents (Claude Code, Cursor, Copilot — anything that reads the Agent Skills format) to drive OtterKit: tunnels and serverless webhook endpoints with capture, signature verification, and replay.
| Skill | What the agent learns |
|---|---|
otterkit | Core: tunnels, webhook endpoints, capture, inspect, replay, daemons, pricing |
stripe-webhooks | Stripe: signed synthetic events, Stripe-Signature verification, re-signed replay |
github-webhooks | GitHub Apps: persistent capture endpoint, X-Hub-Signature-256 verification, replay |
shopify-webhooks | Shopify: stable --tunnel-url for the CLI, HMAC verification, standby endpoints |
slack-webhooks | Slack: Events API via capture tunnel, signing-secret verification, re-signed replay |
Install (Claude Code)
Copy any skill directory into .claude/skills/ in your project (or ~/.claude/skills/
for all projects):
git clone https://github.com/useotterkit/skill && cp -r skill/stripe-webhooks .claude/skills/
Or add the OtterKit MCP server, which exposes the same capabilities as tools:
claude mcp add otterkit -- npx otterkit mcp
What's different from a plain tunnel
Every skill leans on three things ngrok-class tools don't do:
otterkit send— synthetic provider events signed with real signature headers (stripe:payment_intent.succeeded,github:pull_request.opened, …) against a local handler, free, no provider account interaction.otterkit verify— check captured deliveries against a signing secret, per request, with the failure reason.otterkit replay --resign— re-deliver a captured event to local code, re-signed with a current timestamp so timestamp-tolerant handlers (Stripe, Slack) still accept it.
Skills are generated from the CLI's actual implementation and updated alongside it.
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.