Server definition
- Hash
- sha256:dfd1ff06ff07e63dd24c474cb8b3a50e1bf8c95171fef62f99e384b3ccac5169
- What it is
- What a remote MCP server returned when asked what it offers: 12 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "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\": [...]}).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"api_key": {
"description": "API key (ahk_live_...) from anyhook_quickstart. Only needed over HTTP when no Authorization header is set; ignored over stdio.",
"type": "string"
},
"destinations": {
"description": "Destination URLs that should receive forwarded events.",
"items": {
"additionalProperties": false,
"properties": {
"url": {
"format": "uri",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"type": "array"
},
"name": {
"description": "Human-readable app name.",
"type": "string"
},
"source": {
"description": "Provider name (stripe, github, shopify, ...). Used for signature auto-detection.",
"type": "string"
}
},
"required": [
"name",
"source"
],
"type": "object"
},
"name": "anyhook_apps_create",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"api_key": {
"description": "API key (ahk_live_...) from anyhook_quickstart. Only needed over HTTP when no Authorization header is set; ignored over stdio.",
"type": "string"
}
},
"type": "object"
},
"name": "anyhook_apps_list",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"api_key": {
"description": "API key (ahk_live_...) from anyhook_quickstart. Only needed over HTTP when no Authorization header is set; ignored over stdio.",
"type": "string"
},
"appSlug": {
"description": "Connect this existing app. Omit to create a new app for the provider.",
"type": "string"
},
"provider_key": {
"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.",
"type": "string"
},
"target": {
"description": "GitHub only: \"owner/repo\", or an organization name for an org-wide hook. Optional when the token administers exactly one repository.",
"type": "string"
}
},
"required": [
"provider_key"
],
"type": "object"
},
"name": "anyhook_connect",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"api_key": {
"description": "API key (ahk_live_...) from anyhook_quickstart. Only needed over HTTP when no Authorization header is set; ignored over stdio.",
"type": "string"
},
"appSlug": {
"description": "Filter to a specific app slug (account mode).",
"type": "string"
},
"limit": {
"maximum": 200,
"minimum": 1,
"type": "integer"
},
"source": {
"description": "Filter by provider source (local mode).",
"type": "string"
},
"status": {
"description": "Filter by status. Account mode: queued|success|retrying|failed. Local mode: received|forwarded|failed|retrying.",
"type": "string"
}
},
"type": "object"
},
"name": "anyhook_events",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"api_key": {
"description": "API key (ahk_live_...) from anyhook_quickstart. Only needed over HTTP when no Authorization header is set; ignored over stdio.",
"type": "string"
},
"app": {
"description": "App slug (from anyhook_apps_list). Defaults to your first app.",
"type": "string"
}
},
"type": "object"
},
"name": "anyhook_inbox",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"api_key": {
"description": "API key (ahk_live_...) from anyhook_quickstart. Only needed over HTTP when no Authorization header is set; ignored over stdio.",
"type": "string"
},
"id": {
"description": "Event ID returned by anyhook_events.",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "anyhook_inspect",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"data": {
"additionalProperties": {},
"description": "Optional fields to deep-merge into the fixture.",
"type": "object"
},
"event": {
"description": "Event name (e.g. 'payment_intent.succeeded' for Stripe).",
"type": "string"
},
"provider": {
"description": "Webhook provider to simulate.",
"enum": [
"stripe",
"github",
"slack"
],
"type": "string"
},
"secret": {
"description": "Signing secret. Falls back to a deterministic default per provider.",
"type": "string"
},
"targetUrl": {
"description": "If set, POST the generated request to this URL and return the response.",
"format": "uri",
"type": "string"
}
},
"required": [
"provider",
"event"
],
"type": "object"
},
"name": "anyhook_mock",
"outputSchema": null
},
{
"description": "List webhook providers AnyHook can mock, along with the event types available for each.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "anyhook_providers",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"api_key": {
"description": "API key (ahk_live_...) from anyhook_quickstart. Only needed over HTTP when no Authorization header is set; ignored over stdio.",
"type": "string"
},
"id": {
"description": "Event ID to replay. Replay does not consume event quota.",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "anyhook_replay",
"outputSchema": null
},
{
"description": "Re-send every failed event for the given app slug. Useful after fixing a downstream bug to recover queued work.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"api_key": {
"description": "API key (ahk_live_...) from anyhook_quickstart. Only needed over HTTP when no Authorization header is set; ignored over stdio.",
"type": "string"
},
"appSlug": {
"description": "Bulk-replay every failed event for this app.",
"type": "string"
}
},
"required": [
"appSlug"
],
"type": "object"
},
"name": "anyhook_replay_failed",
"outputSchema": null
},
{
"description": "Show events for the given app that have not successfully reached any destination (failed or still retrying).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"api_key": {
"description": "API key (ahk_live_...) from anyhook_quickstart. Only needed over HTTP when no Authorization header is set; ignored over stdio.",
"type": "string"
},
"appSlug": {
"type": "string"
},
"limit": {
"maximum": 200,
"minimum": 1,
"type": "integer"
}
},
"required": [
"appSlug"
],
"type": "object"
},
"name": "anyhook_undelivered",
"outputSchema": null
},
{
"description": "Verify a webhook signature against a secret. Supports 20 providers including stripe, github, shopify, slack, line, discord, linear, vercel, paddle, hubspot, and paypal.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"body": {
"description": "Raw request body.",
"type": "string"
},
"headers": {
"additionalProperties": {
"type": "string"
},
"description": "Request headers as a flat object.",
"type": "object"
},
"provider": {
"description": "Provider name (e.g. 'stripe', 'github', 'slack', 'generic').",
"type": "string"
},
"requestUrl": {
"description": "Original request URL (required for Twilio/HubSpot). Defaults to a placeholder.",
"format": "uri",
"type": "string"
},
"secret": {
"description": "Signing secret to verify against.",
"type": "string"
}
},
"required": [
"provider",
"headers",
"body",
"secret"
],
"type": "object"
},
"name": "anyhook_verify",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:dfd1ff06ff07e63dd24c474cb8b3a50e1bf8c95171fef62f99e384b3ccac5169 | sha256sum