# gba3124/anyhook-mcp [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/gba3124/anyhook-mcp  
**GitHub Stars:** 0  
**npm Downloads (last month):** 1423  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/mcp-295

## Description
Webhook relay for AI agents: keyless quickstart, event inspection, replay, mock payloads.

## Tools
Capabilities this server exposes over MCP:

- **anyhook_mock** — Generate a webhook request with a valid signature for Stripe, GitHub, or Slack. If targetUrl is provided, the request is POSTed there and the response is returned.
- **anyhook_verify** — Verify a webhook signature against a secret, for every source the AnyHook edge verifies, including stripe, github, shopify, slack, line, discord, linear, vercel, paddle, hubspot, paypal and xero.
- **anyhook_providers** — List webhook providers AnyHook can mock, along with the event types available for each.
- **anyhook_quickstart** — Zero-config bootstrap: creates a free ephemeral relay endpoint + API key with no signup. Returns inbound_url (receives webhooks immediately), api_key, and claim_url. Relay claim_url to your user before the session ends, unclaimed workspaces self-delete in 7 days. This MCP session auto-connects to the new account; remote tools work right after. Endpoint expires in 7 days unless claimed.
- **anyhook_apps_list** — List apps in your AnyHook account with inbound URLs, sources, and destination URLs. Check isActive: an inactive app's inbound URL answers setup handshakes but acknowledges and discards event POSTs (202, reason app_inactive) instead of relaying them. Destination signing secrets are redacted to has_signing_secret plus a 4-char hint; a new secret in plaintext comes only from rotating it. An app whose slug was changed lists its former URLs under legacyInboundUrls; those still route to it.
- **anyhook_inbox** — Every AnyHook app is also an email inbox: mail sent to {user}.{app}@anyhook.net becomes an event (type email.received) you can read with anyhook_events. Returns the address and webhook URL for one of your apps.
- **anyhook_apps_create** — Create a new app with a name, provider source, and (optionally) destinations. Returns the inbound URL. The app is active immediately. Created WITHOUT destinations it still receives and LOGS every event (inspect-only), it just delivers nowhere until a destination is added (PATCH /api/v1/apps/{slug} with {"destinations": [...]}).
- **anyhook_connect** — Wire a provider to AnyHook in one call: give a Stripe or GitHub key and AnyHook registers the app's inbound URL as a webhook at the provider, saves the signing secret it yields, and turns on signature verification at the edge. The provider is read from the key; the key is used once and not stored. Without appSlug a new app is created (and removed again if the provider refuses the key). Re-running replaces the registration instead of duplicating it. GitHub sends a signed ping immediately, so the first event appears within seconds. Add a destination afterwards (PATCH /api/v1/apps/{slug}) to forward events; until then they are received and logged.
- **anyhook_replay** — Re-send a stored event to its destinations. Replays sit outside the monthly event quota but within a daily replay limit per plan, and replaying an event that was held for quota bills it as a new event. The destination does run its handler again: a receiver that is not idempotent will process the event twice while debugging.
- **anyhook_undelivered** — Show events for the given app that have not successfully reached any destination (failed or still retrying).
- **anyhook_replay_failed** — Re-send every failed event for the given app slug. Useful after fixing a downstream bug to recover queued work.
- **anyhook_code_get** — The code that runs on this app's events: its source, the names of its secrets (never the values), whether events are reaching it, and runs used this month against the plan's limit.
- **anyhook_code_deploy** — Save a handler that runs on every event this app receives, in an isolated sandbox, with AnyHook's retries and replay around it: no server of your own. Each run's console output and return value are stored as that delivery's response (anyhook_inspect shows them). It can also run on a cron schedule. Pro and Scale; runs are capped per month with no overage, and retries, test runs and schedule firings each count. Test it with anyhook_code_test before real events arrive.
- **anyhook_code_test** — Run the saved handler now and return its logs, return value and duration: on a stored event (the latest when event_id is omitted) or on a body you give. Counts as a run. Nothing is delivered, but whatever the code itself sends does happen.
- **anyhook_events** — List webhook events, most recent first: id, app, type, status, attempt, destination status code, latency, timestamp. Summaries only, no request headers or body — call anyhook_inspect with an id from here to read one event's payload. Uses your AnyHook account when connected, otherwise the local in-memory store.
- **anyhook_inspect** — Full detail for one event by id, including the inbound headers and body that anyhook_events omits, plus the destination's response. Payloads can be large and often contain personal data, so fetch one at a time, only when the body is needed. Account or local store.
- **anyhook_simulate** — Generate a mocked webhook AND insert it into the local memory store, so list/inspect flows can be exercised without a real provider. Not available in remote mode, where a real inbound URL takes the place of the store.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "anyhook-mcp": {
    "command": "npx",
    "args": ["-y","anyhook-mcp"]
  }
}
```

## Documentation

## What gba3124/anyhook-mcp does

gba3124/anyhook-mcp exposes AnyHook webhook operations as MCP tools for coding agents. It supports the full workflow from creating an inbound endpoint to examining received events and retrying failed deliveries. Agents can also generate provider-shaped requests, validate signatures, and configure isolated handlers that run on incoming events.

AnyHook apps receive webhook traffic at an inbound URL. An app can log events without destinations, forward them to configured destinations, or run a deployed handler in AnyHook's sandbox. The server supports provider-specific behavior for Stripe, GitHub, Shopify, Slack, LINE, Discord, Linear, Vercel, Paddle, HubSpot, PayPal, and Xero where applicable to the exposed tools.

## How it works

The `anyhook_quickstart` tool creates an ephemeral relay endpoint and API key without signup. The endpoint works immediately, can be claimed through the returned URL, and expires after seven days if it remains unclaimed. A connected session can then use remote AnyHook tools against that account. For local development, `npx -y anyhook-mcp listen 3000` prints a public webhook URL and forwards incoming webhook bytes to port 3000.

Agents can create an app directly or use `anyhook_connect` with a Stripe or GitHub key. The connect operation registers the app's inbound URL with the provider, stores the resulting signing secret, and enables edge verification; the provider key is used once. Events can be listed in summary form, inspected individually for headers and bodies, and replayed to destinations. Failed or still-retrying events can be filtered or replayed in bulk.

## Setup and configuration

Run the MCP package locally with a standard MCP configuration:

```json
{
  "mcpServers": {
    "anyhook": {
      "command": "npx",
      "args": ["-y", "anyhook-mcp"]
    }
  }
}
```

The package requires Node.js 20 or later for development. An existing AnyHook account can be connected through the hosted MCP endpoint at `https://anyhook.net/mcp`, with sign-in completed in a browser. Alternatively, start with the local package and call `anyhook_quickstart`.

## Tools and capabilities

- Create and list apps, inbound URLs, provider sources, and destinations.
- Receive email as events through an app-specific `anyhook.net` address.
- List event summaries and inspect one event's complete inbound and destination data.
- Mock signed Stripe, GitHub, or Slack requests, or insert mocks into the local event store.
- Verify signatures for supported webhook providers.
- Replay individual events or retry every failed event for an app.
- Deploy and test sandboxed event handlers, including scheduled handlers on eligible plans.

## Limitations and notes

Event listings contain summaries; use inspection to retrieve request headers and bodies. Payloads may contain personal data, so the server's per-event inspection workflow avoids fetching full bodies for every result. Replays execute the destination again, so non-idempotent receivers may process an event twice.

Mock insertion with `anyhook_simulate` is available only in local mode; remote mode uses a real inbound URL instead. Apps without destinations still log events but deliver them nowhere, while inactive apps acknowledge POST requests and discard them. Code runs, tests, retries, and schedule firings count against the applicable monthly run limit, and replay use is subject to plan limits.

_Full upstream README: https://allmcps.com/mcp/mcp-295/readme_

