Skip to main content
Glama

Server Details

A webhook inbox for agents: one call returns a live URL. Mock, verify, inspect and replay.

Ownership verified
Status
Healthy
Uptime
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
gba3124/anyhook-mcp
GitHub Stars
0
Server Listing
anyhook-mcp
ChatGPT
–
Claude
–

TDQS

A3.7/5.0

Scored across 17 tools

Disambiguation4/5

Most tools map to a distinct resource+action: apps_create/list, destination_add, events vs inspect (summary vs full payload), replay vs replay_failed (single event vs bulk failed drain), mock vs connect (synthetic request vs real provider registration). A few pairs need the description to separate them — particularly 'events' vs 'undelivered' (a filtered event list) and 'replay' vs 'replay_failed' — but the boundaries are stated explicitly, so misselection risk is low.

Naming Consistency4/5

Every name is snake_case with the uniform anyhook_ prefix, which makes the family instantly recognizable. The pattern wobbles between namespaced noun_verb (anyhook_apps_create, anyhook_code_deploy, anyhook_destination_add) and bare predicate names (anyhook_replay, anyhook_inspect, anyhook_undelivered), so the verb is not always in the same position, but each name remains readable and self-explanatory.

Tool Count4/5

At 17 tools the surface is on the heavy side, but each one covers a genuinely different capability of a webhook platform (ingest, inspect, replay, code handlers, mocking, signature verification, quotas, email inbox). Nothing looks like filler or a duplicate of another tool, so the count is justified rather than bloated.

Completeness3/5

The ingest-inspect-replay-handler loop is well covered, but lifecycle management is one-sided: there is create/list for apps and add for destinations, with no tool to delete or deactivate an app, remove a destination, or rotate a signing secret (rotation is described as the only way to get a plaintext secret, yet no tool exposes it). Agents hitting those needs will have to fall back to a dashboard.

Available Tools

17 tools
anyhook_apps_createCreate a new AnyHook appA
Destructive
Inspect

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 with anyhook_destination_add.

Inputs: name (required), source, destinations.

anyhook_apps_listList your AnyHook appsA
Read-onlyIdempotent
Inspect

List apps in your AnyHook account with inbound URLs, sources, and destination URLs. With isActive false, an 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.

Inputs: no named parameters.

anyhook_code_deployDeploy code that runs on an app's eventsA
Destructive
Inspect

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, retries, test runs and schedule firings each count, and each run and package install is charged to the monthly compute allowance (anyhook_usage shows both). anyhook_code_test runs it on a stored event.

Inputs: code (required), appSlug (required), enabled, secrets, +1 more.

anyhook_code_getRead an app's code handlerB
Read-only
Inspect

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.

Inputs: appSlug (required).

anyhook_code_testRun an app's code on a stored eventA
Destructive
Inspect

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.

Inputs: appSlug (required), body, event_id.

anyhook_connectConnect Stripe or GitHub with one keyA
Destructive
Inspect

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. Until the app has a destination (anyhook_destination_add), events are received and logged but not forwarded.

Inputs: provider_key (required), target, appSlug.

anyhook_destination_addForward an app's events to a URLA
DestructiveIdempotent
Inspect

Add a destination to an existing app: new events are forwarded to this URL, with retries, within about a minute, and the app's other destinations stay as they are. Adding a URL the app already has changes nothing. Returns the destination's signing secret once, for verifying the AnyHook-Signature header on the receiving server.

Inputs: url (required), appSlug (required).

anyhook_eventsList recent webhook eventsA
Read-onlyIdempotent
Inspect

List webhook events, most recent first: id, app, type, status, attempt, destination status code, latency, timestamp. Summaries only, no request headers or body; anyhook_inspect reads one event's payload by the id from here. Uses your AnyHook account when connected, otherwise the local in-memory store.

Inputs: limit, status, appSlug.

anyhook_inboxGet this app's email inbox addressA
Read-only
Inspect

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.

Inputs: app.

anyhook_inspectInspect a specific eventA
Read-onlyIdempotent
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 it reads one event at a time, for when the body is needed. Account or local store.

Inputs: id (required).

anyhook_mockMock a webhookA
Destructive
Inspect

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. This hosted server reaches public https URLs only; to reach localhost, run npx -y anyhook-mcp.

Inputs: event (required), provider (required), data, secret, +1 more.

anyhook_providersList the providers anyhook_mock can simulateA
Read-only
Inspect

List webhook providers AnyHook can mock, along with the event types available for each.

Inputs: no named parameters.

anyhook_replayReplay an eventA
Destructive
Inspect

Re-send a stored event to its destinations. Replays sit outside the monthly event quota but within a daily replay limit per plan and the monthly compute allowance (anyhook_usage), 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.

Inputs: id (required).

anyhook_replay_failedBulk-replay an app's failed eventsA
Destructive
Inspect

Re-send an app's failed events after the destination is fixed, oldest first: by default those received in the last 24 hours, at most 50 per call (since and limit change both; limit goes up to 100). Events held by an open circuit are included. An event replayed once is not selected again, so a second call continues with the rest. The result lists what was replayed, what was skipped and why, and more: true while failed events are still waiting. Replays count against the plan's daily replay limit.

Inputs: appSlug (required), limit, since.

anyhook_undeliveredList undelivered events for an appA
Read-only
Inspect

Events for the given app that have not reached a destination: failed, held (circuit_open, quota_exceeded), still retrying, or logged while anyhook-mcp listen was stopped. An app with no destination has none: its events are logged, not forwarded.

Inputs: appSlug (required), limit.

anyhook_usageShow plan limits and usageA
Read-onlyIdempotent
Inspect

What the plan allows and what this account has used of each: events this month (per delivery, large events count per 64 KB), overage, the compute allowance and what used it (retries, replays, waiting on slow destinations, code runs, builds, schedules), API calls today (each tool call that reads or changes the account counts one), code runs and package snapshots, with when each resets. It says how much is left when something answers with a limit, before bulk work such as replay_failed, or when the user asks what they are using.

Inputs: no named parameters.

anyhook_verifyVerify a webhook signatureA
Read-only
Inspect

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.

Inputs: body (required), secret (required), headers (required), provider (required), +1 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.