Servidor MCP

AnyHook

net.anyhook/anyhook

Qué hace este MCP

Provides webhook inboxes for receiving, inspecting, verifying, mocking, replaying, and routing webhook events.

anyhook_apps_create
Create a new AnyHook app
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": [...]}).
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'source'], 'properties': {'name': {'type': 'string', 'description': 'Human-readable app name.'}, 'source': {'type': 'string', 'description': 'Provider name (stripe, github, shopify, ...). Used for signature auto-detection.'}, 'api_key': {'type': 'string', 'description': 'API key (ahk_live_...) from anyhook_quickstart. Only needed over HTTP when no Authorization header is set; ignored over stdio.'}, 'destinations': {'type': 'array', 'items': {'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'description': 'Destination URLs that should receive forwarded events.'}}, 'additionalProperties': False}
anyhook_apps_list
List your AnyHook apps
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.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'api_key': {'type': 'string', 'description': 'API key (ahk_live_...) from anyhook_quickstart. Only needed over HTTP when no Authorization header is set; ignored over stdio.'}}, 'additionalProperties': False}
anyhook_connect
Connect Stripe or GitHub with one key
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.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['provider_key'], 'properties': {'target': {'type': 'string', 'description': 'GitHub only: "owner/repo", or an organization name for an org-wide hook. Optional when the token administers exactly one repository.'}, 'api_key': {'type': 'string', 'description': 'API key (ahk_live_...) from anyhook_quickstart. Only needed over HTTP when no Authorization header is set; ignored over stdio.'}, 'appSlug': {'type': 'string', 'description': 'Connect this existing app. Omit to create a new app for the provider.'}, 'provider_key': {'type': 'string', 'description': 'A Stripe secret or restricted key (sk_… / rk_…) or a GitHub token (github_pat_… / ghp_…). The provider is read from the key. Used once to register the webhook at the provider; AnyHook does not store it. Least privilege: a Stripe restricted key with Webhook Endpoints = Write, or a fine-grained GitHub token with Webhooks = Read and write.'}}, 'additionalProperties': False}
anyhook_events
List recent webhook 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.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1}, 'source': {'type': 'string', 'description': 'Filter by provider source (local mode).'}, 'status': {'type': 'string', 'description': 'Filter by status. Account mode: queued|success|retrying|failed. Local mode: received|forwarded|failed|retrying.'}, 'api_key': {'type': 'string', 'description': 'API key (ahk_live_...) from anyhook_quickstart. Only needed over HTTP when no Authorization header is set; ignored over stdio.'}, 'appSlug': {'type': 'string', 'description': 'Filter to a specific app slug (account mode).'}}, 'additionalProperties': False}
anyhook_inbox
Get this app's email inbox address
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.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'app': {'type': 'string', 'description': 'App slug (from anyhook_apps_list). Defaults to your first app.'}, 'api_key': {'type': 'string', 'description': 'API key (ahk_live_...) from anyhook_quickstart. Only needed over HTTP when no Authorization header is set; ignored over stdio.'}}, 'additionalProperties': False}
anyhook_inspect
Inspect a specific event
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.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Event ID returned by anyhook_events.'}, 'api_key': {'type': 'string', 'description': 'API key (ahk_live_...) from anyhook_quickstart. Only needed over HTTP when no Authorization header is set; ignored over stdio.'}}, 'additionalProperties': False}
anyhook_mock
Mock a webhook
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.
Destructivo Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['provider', 'event'], 'properties': {'data': {'type': 'object', 'description': 'Optional fields to deep-merge into the fixture.', 'additionalProperties': {}}, 'event': {'type': 'string', 'description': "Event name (e.g. 'payment_intent.succeeded' for Stripe)."}, 'secret': {'type': 'string', 'description': 'Signing secret. Falls back to a deterministic default per provider.'}, 'provider': {'enum': ['stripe', 'github', 'slack'], 'type': 'string', 'description': 'Webhook provider to simulate.'}, 'targetUrl': {'type': 'string', 'format': 'uri', 'description': 'If set, POST the generated request to this URL and return the response.'}}, 'additionalProperties': False}
anyhook_providers
List supported providers and event types
List webhook providers AnyHook can mock, along with the event types available for each.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
anyhook_replay
Replay an event
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.
Destructivo Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Event ID to replay. Replay does not consume event quota.'}, 'api_key': {'type': 'string', 'description': 'API key (ahk_live_...) from anyhook_quickstart. Only needed over HTTP when no Authorization header is set; ignored over stdio.'}}, 'additionalProperties': False}
anyhook_replay_failed
Bulk-replay all failed events for an app
Re-send every failed event for the given app slug. Useful after fixing a downstream bug to recover queued work.
Destructivo Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['appSlug'], 'properties': {'api_key': {'type': 'string', 'description': 'API key (ahk_live_...) from anyhook_quickstart. Only needed over HTTP when no Authorization header is set; ignored over stdio.'}, 'appSlug': {'type': 'string', 'description': 'Bulk-replay every failed event for this app.'}}, 'additionalProperties': False}
anyhook_undelivered
List undelivered events for an app
Show events for the given app that have not successfully reached any destination (failed or still retrying).
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['appSlug'], 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1}, 'api_key': {'type': 'string', 'description': 'API key (ahk_live_...) from anyhook_quickstart. Only needed over HTTP when no Authorization header is set; ignored over stdio.'}, 'appSlug': {'type': 'string'}}, 'additionalProperties': False}
anyhook_verify
Verify a webhook signature
Verify a webhook signature against a secret. Supports 20 providers including stripe, github, shopify, slack, line, discord, linear, vercel, paddle, hubspot, and paypal.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['provider', 'headers', 'body', 'secret'], 'properties': {'body': {'type': 'string', 'description': 'Raw request body.'}, 'secret': {'type': 'string', 'description': 'Signing secret to verify against.'}, 'headers': {'type': 'object', 'description': 'Request headers as a flat object.', 'additionalProperties': {'type': 'string'}}, 'provider': {'type': 'string', 'description': "Provider name (e.g. 'stripe', 'github', 'slack', 'generic')."}, 'requestUrl': {'type': 'string', 'format': 'uri', 'description': 'Original request URL (required for Twilio/HubSpot). Defaults to a placeholder.'}}, 'additionalProperties': False}
Modificado
anyhook_replay
1 de October de 2026 a las 02:51
Añadido
anyhook_connect
1 de October de 2026 a las 02:51
Modificado
anyhook_inspect
19 de September de 2026 a las 02:48
Modificado
anyhook_events
19 de September de 2026 a las 02:48
Modificado
anyhook_replay_failed
19 de September de 2026 a las 02:48
Modificado
anyhook_undelivered
19 de September de 2026 a las 02:48
Modificado
anyhook_replay
19 de September de 2026 a las 02:48
Modificado
anyhook_apps_create
19 de September de 2026 a las 02:48
Modificado
anyhook_inbox
19 de September de 2026 a las 02:48
Modificado
anyhook_apps_list
19 de September de 2026 a las 02:48
Modificado
anyhook_providers
19 de September de 2026 a las 02:48
Modificado
anyhook_verify
19 de September de 2026 a las 02:48
Modificado
anyhook_mock
19 de September de 2026 a las 02:48
Añadido
anyhook_inspect
17 de September de 2026 a las 12:54
Añadido
anyhook_events
17 de September de 2026 a las 12:54
Añadido
anyhook_replay_failed
17 de September de 2026 a las 12:54
Añadido
anyhook_undelivered
17 de September de 2026 a las 12:54
Añadido
anyhook_replay
17 de September de 2026 a las 12:54
Añadido
anyhook_apps_create
17 de September de 2026 a las 12:54
Añadido
anyhook_inbox
17 de September de 2026 a las 12:54
Añadido
anyhook_apps_list
17 de September de 2026 a las 12:54
Añadido
anyhook_providers
17 de September de 2026 a las 12:54
Añadido
anyhook_verify
17 de September de 2026 a las 12:54
Añadido
anyhook_mock
17 de September de 2026 a las 12:54