{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_q8qzn5v75dj7","handle":"anyhook","url":"https://wellknown.network/agents/anyhook","links":{"self":"https://wellknown.network/agents/anyhook/record.json","html":"https://wellknown.network/agents/anyhook","markdown":"https://wellknown.network/agents/anyhook/record.md","api":"https://wellknown.network/api/v1/agents/anyhook","status":"https://wellknown.network/api/v1/agents/anyhook/status","claim":"https://wellknown.network/agents/anyhook/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/anyhook/claim.json","badge":"https://wellknown.network/agents/anyhook/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/anyhook/history","tools":"https://wellknown.network/api/v1/agents/anyhook/tools"},"ard":{"identifier":"urn:air:anyhook.net:server:anyhook","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"AnyHook","summary":"A webhook inbox for agents: one call returns a live URL. Mock, verify, inspect and replay.","description":"A webhook inbox for agents: one call returns a live URL. Mock, verify, inspect and replay.","publisher":{"name":"net.anyhook","url":null},"homepage":"https://anyhook.net","repository":"https://github.com/gba3124/anyhook-mcp","version":"0.2.4","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://anyhook.net/mcp","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"npm:anyhook-mcp","type":"package_npm","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-25T07:25:00.932116Z","publishedAt":"2026-09-25T07:25:00.932116Z","registryName":"net.anyhook/anyhook"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"productivity.email","name":"Email","confidence":1,"provenance":"derived"},{"slug":"communication.chat","name":"Team Chat","confidence":0.992,"provenance":"derived"},{"slug":"communication.notifications","name":"Notifications","confidence":0.911,"provenance":"derived"},{"slug":"productivity.crm","name":"CRM & Sales","confidence":0.51,"provenance":"derived"},{"slug":"commerce.ecommerce","name":"E-commerce Operations","confidence":0.51,"provenance":"derived"}],"categories":["commerce","communication","productivity"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 5h ago.","lastOkAt":"2026-10-09T21:27:05.617Z","lastProbedAt":"2026-10-09T21:27:05.617Z","statusComputedAt":"2026-10-09T21:28:07.964Z","reliability30d":{"probes":58,"successRate":1,"p50Ms":215,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":58,"ok":58,"authBoundaryOk":0,"serviceOk":58,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-09T21:27:05.617Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":180,"error":null,"detail":{"tools":[{"name":"anyhook_mock","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 return"},{"name":"anyhook_verify","description":"Verify a webhook signature against a secret. Supports 20 providers including stripe, github, shopify, slack, line, discord, linear, vercel, paddle, hubspot, and"},{"name":"anyhook_providers","description":"List webhook providers AnyHook can mock, along with the event types available for each."},{"name":"anyhook_apps_list","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 a"},{"name":"anyhook_inbox","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"},{"name":"anyhook_apps_create","description":"Create a new app with a name, provider source, and (optionally) destinations. Returns the inbound URL. The app is active immediately. Created WITHOUT destinatio"},{"name":"anyhook_connect","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 "},{"name":"anyhook_replay","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 wa"},{"name":"anyhook_undelivered","description":"Show events for the given app that have not successfully reached any destination (failed or still retrying)."},{"name":"anyhook_replay_failed","description":"Re-send every failed event for the given app slug. Useful after fixing a downstream bug to recover queued work."},{"name":"anyhook_events","description":"List webhook events, most recent first: id, app, type, status, attempt, destination status code, latency, timestamp. Summaries only, no request headers or body "},{"name":"anyhook_inspect","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 of"}],"toolCount":12,"toolsHash":"a44acfc2f40e73d1f44d473231c3826ba3d857549fd4c838699d97c8f1cc7a63","serverName":"anyhook","capabilities":["tools"],"serverVersion":"0.2.4","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T15:32:00.154Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":1455,"error":null,"detail":{"tools":[{"name":"anyhook_mock","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 return"},{"name":"anyhook_verify","description":"Verify a webhook signature against a secret. Supports 20 providers including stripe, github, shopify, slack, line, discord, linear, vercel, paddle, hubspot, and"},{"name":"anyhook_providers","description":"List webhook providers AnyHook can mock, along with the event types available for each."},{"name":"anyhook_apps_list","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 a"},{"name":"anyhook_inbox","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"},{"name":"anyhook_apps_create","description":"Create a new app with a name, provider source, and (optionally) destinations. Returns the inbound URL. The app is active immediately. Created WITHOUT destinatio"},{"name":"anyhook_connect","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 "},{"name":"anyhook_replay","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 wa"},{"name":"anyhook_undelivered","description":"Show events for the given app that have not successfully reached any destination (failed or still retrying)."},{"name":"anyhook_replay_failed","description":"Re-send every failed event for the given app slug. Useful after fixing a downstream bug to recover queued work."},{"name":"anyhook_events","description":"List webhook events, most recent first: id, app, type, status, attempt, destination status code, latency, timestamp. Summaries only, no request headers or body "},{"name":"anyhook_inspect","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 of"}],"toolCount":12,"toolsHash":"a44acfc2f40e73d1f44d473231c3826ba3d857549fd4c838699d97c8f1cc7a63","serverName":"anyhook","capabilities":["tools"],"serverVersion":"0.2.4","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T08:26:53.790Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":308,"error":null,"detail":{"tools":[{"name":"anyhook_mock","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 return"},{"name":"anyhook_verify","description":"Verify a webhook signature against a secret. Supports 20 providers including stripe, github, shopify, slack, line, discord, linear, vercel, paddle, hubspot, and"},{"name":"anyhook_providers","description":"List webhook providers AnyHook can mock, along with the event types available for each."},{"name":"anyhook_apps_list","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 a"},{"name":"anyhook_inbox","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"},{"name":"anyhook_apps_create","description":"Create a new app with a name, provider source, and (optionally) destinations. Returns the inbound URL. The app is active immediately. Created WITHOUT destinatio"},{"name":"anyhook_connect","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 "},{"name":"anyhook_replay","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 wa"},{"name":"anyhook_undelivered","description":"Show events for the given app that have not successfully reached any destination (failed or still retrying)."},{"name":"anyhook_replay_failed","description":"Re-send every failed event for the given app slug. Useful after fixing a downstream bug to recover queued work."},{"name":"anyhook_events","description":"List webhook events, most recent first: id, app, type, status, attempt, destination status code, latency, timestamp. Summaries only, no request headers or body "},{"name":"anyhook_inspect","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 of"}],"toolCount":12,"toolsHash":"a44acfc2f40e73d1f44d473231c3826ba3d857549fd4c838699d97c8f1cc7a63","serverName":"anyhook","capabilities":["tools"],"serverVersion":"0.2.4","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T01:26:11.372Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":153,"error":null,"detail":{"tools":[{"name":"anyhook_mock","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 return"},{"name":"anyhook_verify","description":"Verify a webhook signature against a secret. Supports 20 providers including stripe, github, shopify, slack, line, discord, linear, vercel, paddle, hubspot, and"},{"name":"anyhook_providers","description":"List webhook providers AnyHook can mock, along with the event types available for each."},{"name":"anyhook_apps_list","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 a"},{"name":"anyhook_inbox","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"},{"name":"anyhook_apps_create","description":"Create a new app with a name, provider source, and (optionally) destinations. Returns the inbound URL. The app is active immediately. Created WITHOUT destinatio"},{"name":"anyhook_connect","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 "},{"name":"anyhook_replay","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 wa"},{"name":"anyhook_undelivered","description":"Show events for the given app that have not successfully reached any destination (failed or still retrying)."},{"name":"anyhook_replay_failed","description":"Re-send every failed event for the given app slug. Useful after fixing a downstream bug to recover queued work."},{"name":"anyhook_events","description":"List webhook events, most recent first: id, app, type, status, attempt, destination status code, latency, timestamp. Summaries only, no request headers or body "},{"name":"anyhook_inspect","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 of"}],"toolCount":12,"toolsHash":"a44acfc2f40e73d1f44d473231c3826ba3d857549fd4c838699d97c8f1cc7a63","serverName":"anyhook","capabilities":["tools"],"serverVersion":"0.2.4","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T19:23:45.259Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":235,"error":null,"detail":{"tools":[{"name":"anyhook_mock","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 return"},{"name":"anyhook_verify","description":"Verify a webhook signature against a secret. Supports 20 providers including stripe, github, shopify, slack, line, discord, linear, vercel, paddle, hubspot, and"},{"name":"anyhook_providers","description":"List webhook providers AnyHook can mock, along with the event types available for each."},{"name":"anyhook_apps_list","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 a"},{"name":"anyhook_inbox","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"},{"name":"anyhook_apps_create","description":"Create a new app with a name, provider source, and (optionally) destinations. Returns the inbound URL. The app is active immediately. Created WITHOUT destinatio"},{"name":"anyhook_connect","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 "},{"name":"anyhook_replay","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 wa"},{"name":"anyhook_undelivered","description":"Show events for the given app that have not successfully reached any destination (failed or still retrying)."},{"name":"anyhook_replay_failed","description":"Re-send every failed event for the given app slug. Useful after fixing a downstream bug to recover queued work."},{"name":"anyhook_events","description":"List webhook events, most recent first: id, app, type, status, attempt, destination status code, latency, timestamp. Summaries only, no request headers or body "},{"name":"anyhook_inspect","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 of"}],"toolCount":12,"toolsHash":"a44acfc2f40e73d1f44d473231c3826ba3d857549fd4c838699d97c8f1cc7a63","serverName":"anyhook","capabilities":["tools"],"serverVersion":"0.2.4","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T13:22:08.939Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":176,"error":null,"detail":{"tools":[{"name":"anyhook_mock","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 return"},{"name":"anyhook_verify","description":"Verify a webhook signature against a secret. Supports 20 providers including stripe, github, shopify, slack, line, discord, linear, vercel, paddle, hubspot, and"},{"name":"anyhook_providers","description":"List webhook providers AnyHook can mock, along with the event types available for each."},{"name":"anyhook_apps_list","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 a"},{"name":"anyhook_inbox","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"},{"name":"anyhook_apps_create","description":"Create a new app with a name, provider source, and (optionally) destinations. Returns the inbound URL. The app is active immediately. Created WITHOUT destinatio"},{"name":"anyhook_connect","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 "},{"name":"anyhook_replay","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 wa"},{"name":"anyhook_undelivered","description":"Show events for the given app that have not successfully reached any destination (failed or still retrying)."},{"name":"anyhook_replay_failed","description":"Re-send every failed event for the given app slug. Useful after fixing a downstream bug to recover queued work."},{"name":"anyhook_events","description":"List webhook events, most recent first: id, app, type, status, attempt, destination status code, latency, timestamp. Summaries only, no request headers or body "},{"name":"anyhook_inspect","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 of"}],"toolCount":12,"toolsHash":"a44acfc2f40e73d1f44d473231c3826ba3d857549fd4c838699d97c8f1cc7a63","serverName":"anyhook","capabilities":["tools"],"serverVersion":"0.2.4","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T06:23:42.770Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":169,"error":null,"detail":{"tools":[{"name":"anyhook_mock","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 return"},{"name":"anyhook_verify","description":"Verify a webhook signature against a secret. Supports 20 providers including stripe, github, shopify, slack, line, discord, linear, vercel, paddle, hubspot, and"},{"name":"anyhook_providers","description":"List webhook providers AnyHook can mock, along with the event types available for each."},{"name":"anyhook_apps_list","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 a"},{"name":"anyhook_inbox","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"},{"name":"anyhook_apps_create","description":"Create a new app with a name, provider source, and (optionally) destinations. Returns the inbound URL. The app is active immediately. Created WITHOUT destinatio"},{"name":"anyhook_connect","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 "},{"name":"anyhook_replay","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 wa"},{"name":"anyhook_undelivered","description":"Show events for the given app that have not successfully reached any destination (failed or still retrying)."},{"name":"anyhook_replay_failed","description":"Re-send every failed event for the given app slug. Useful after fixing a downstream bug to recover queued work."},{"name":"anyhook_events","description":"List webhook events, most recent first: id, app, type, status, attempt, destination status code, latency, timestamp. Summaries only, no request headers or body "},{"name":"anyhook_inspect","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 of"}],"toolCount":12,"toolsHash":"a44acfc2f40e73d1f44d473231c3826ba3d857549fd4c838699d97c8f1cc7a63","serverName":"anyhook","capabilities":["tools"],"serverVersion":"0.2.4","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T00:25:46.219Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":175,"error":null,"detail":{"tools":[{"name":"anyhook_mock","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 return"},{"name":"anyhook_verify","description":"Verify a webhook signature against a secret. Supports 20 providers including stripe, github, shopify, slack, line, discord, linear, vercel, paddle, hubspot, and"},{"name":"anyhook_providers","description":"List webhook providers AnyHook can mock, along with the event types available for each."},{"name":"anyhook_apps_list","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 a"},{"name":"anyhook_inbox","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"},{"name":"anyhook_apps_create","description":"Create a new app with a name, provider source, and (optionally) destinations. Returns the inbound URL. The app is active immediately. Created WITHOUT destinatio"},{"name":"anyhook_connect","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 "},{"name":"anyhook_replay","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 wa"},{"name":"anyhook_undelivered","description":"Show events for the given app that have not successfully reached any destination (failed or still retrying)."},{"name":"anyhook_replay_failed","description":"Re-send every failed event for the given app slug. Useful after fixing a downstream bug to recover queued work."},{"name":"anyhook_events","description":"List webhook events, most recent first: id, app, type, status, attempt, destination status code, latency, timestamp. Summaries only, no request headers or body "},{"name":"anyhook_inspect","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 of"}],"toolCount":12,"toolsHash":"a44acfc2f40e73d1f44d473231c3826ba3d857549fd4c838699d97c8f1cc7a63","serverName":"anyhook","capabilities":["tools"],"serverVersion":"0.2.4","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T17:29:54.275Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":211,"error":null,"detail":{"tools":[{"name":"anyhook_mock","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 return"},{"name":"anyhook_verify","description":"Verify a webhook signature against a secret. Supports 20 providers including stripe, github, shopify, slack, line, discord, linear, vercel, paddle, hubspot, and"},{"name":"anyhook_providers","description":"List webhook providers AnyHook can mock, along with the event types available for each."},{"name":"anyhook_apps_list","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 a"},{"name":"anyhook_inbox","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"},{"name":"anyhook_apps_create","description":"Create a new app with a name, provider source, and (optionally) destinations. Returns the inbound URL. The app is active immediately. Created WITHOUT destinatio"},{"name":"anyhook_connect","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 "},{"name":"anyhook_replay","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 wa"},{"name":"anyhook_undelivered","description":"Show events for the given app that have not successfully reached any destination (failed or still retrying)."},{"name":"anyhook_replay_failed","description":"Re-send every failed event for the given app slug. Useful after fixing a downstream bug to recover queued work."},{"name":"anyhook_events","description":"List webhook events, most recent first: id, app, type, status, attempt, destination status code, latency, timestamp. Summaries only, no request headers or body "},{"name":"anyhook_inspect","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 of"}],"toolCount":12,"toolsHash":"a44acfc2f40e73d1f44d473231c3826ba3d857549fd4c838699d97c8f1cc7a63","serverName":"anyhook","capabilities":["tools"],"serverVersion":"0.2.4","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T10:49:54.747Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":233,"error":null,"detail":{"tools":[{"name":"anyhook_mock","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 return"},{"name":"anyhook_verify","description":"Verify a webhook signature against a secret. Supports 20 providers including stripe, github, shopify, slack, line, discord, linear, vercel, paddle, hubspot, and"},{"name":"anyhook_providers","description":"List webhook providers AnyHook can mock, along with the event types available for each."},{"name":"anyhook_apps_list","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 a"},{"name":"anyhook_inbox","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"},{"name":"anyhook_apps_create","description":"Create a new app with a name, provider source, and (optionally) destinations. Returns the inbound URL. The app is active immediately. Created WITHOUT destinatio"},{"name":"anyhook_connect","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 "},{"name":"anyhook_replay","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 wa"},{"name":"anyhook_undelivered","description":"Show events for the given app that have not successfully reached any destination (failed or still retrying)."},{"name":"anyhook_replay_failed","description":"Re-send every failed event for the given app slug. Useful after fixing a downstream bug to recover queued work."},{"name":"anyhook_events","description":"List webhook events, most recent first: id, app, type, status, attempt, destination status code, latency, timestamp. Summaries only, no request headers or body "},{"name":"anyhook_inspect","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 of"}],"toolCount":12,"toolsHash":"a44acfc2f40e73d1f44d473231c3826ba3d857549fd4c838699d97c8f1cc7a63","serverName":"anyhook","capabilities":["tools"],"serverVersion":"0.2.4","protocolVersion":"2025-06-18"}}],"tools":[{"name":"anyhook_mock","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 return"},{"name":"anyhook_verify","description":"Verify a webhook signature against a secret. Supports 20 providers including stripe, github, shopify, slack, line, discord, linear, vercel, paddle, hubspot, and"},{"name":"anyhook_providers","description":"List webhook providers AnyHook can mock, along with the event types available for each."},{"name":"anyhook_apps_list","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 a"},{"name":"anyhook_inbox","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"},{"name":"anyhook_apps_create","description":"Create a new app with a name, provider source, and (optionally) destinations. Returns the inbound URL. The app is active immediately. Created WITHOUT destinatio"},{"name":"anyhook_connect","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 "},{"name":"anyhook_replay","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 wa"},{"name":"anyhook_undelivered","description":"Show events for the given app that have not successfully reached any destination (failed or still retrying)."},{"name":"anyhook_replay_failed","description":"Re-send every failed event for the given app slug. Useful after fixing a downstream bug to recover queued work."},{"name":"anyhook_events","description":"List webhook events, most recent first: id, app, type, status, attempt, destination status code, latency, timestamp. Summaries only, no request headers or body "},{"name":"anyhook_inspect","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 of"}],"package":null,"toolSurface":{"id":"ts_wzpfbk2hgpbd","endpointId":"ep_h4rsbuje4ras","hash":"a44acfc2f40e73d1f44d473231c3826ba3d857549fd4c838699d97c8f1cc7a63","toolCount":12,"serverName":"anyhook","serverVersion":"0.2.4","protocolVersion":"2025-06-18","firstSeenAt":"2026-09-29T04:25:24.479Z","lastSeenAt":"2026-10-09T21:27:05.603Z","observations":41,"toolNames":["anyhook_mock","anyhook_verify","anyhook_providers","anyhook_apps_list","anyhook_inbox","anyhook_apps_create","anyhook_connect","anyhook_replay","anyhook_undelivered","anyhook_replay_failed","anyhook_events","anyhook_inspect"],"distinctSurfaces":3},"endpointFacts":[{"id":"ep_h4rsbuje4ras","url":"https://anyhook.net/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-09T08:26:53.797Z","auth":{"observedAt":"2026-10-09T08:26:54.287Z","authRequired":false,"scheme":null,"resourceMetadata":{"url":"https://anyhook.net/.well-known/oauth-protected-resource/mcp","resource":"https://anyhook.net","authorizationServers":["https://clerk.anyhook.net"],"scopesSupported":["profile","email"]},"authorizationServer":{"url":"https://clerk.anyhook.net/.well-known/oauth-authorization-server","issuer":"https://clerk.anyhook.net","grantTypesSupported":["authorization_code","refresh_token","urn:ietf:params:oauth:grant-type:device_code"],"codeChallengeMethodsSupported":["S256"],"tokenEndpointAuthMethodsSupported":["client_secret_basic","none","client_secret_post"],"dynamicClientRegistration":true,"dpopSigningAlgValuesSupported":[],"clientIdMetadataDocumentSupported":null},"conformance":{"dpop":false,"rfc8414":true,"rfc9728":true,"pkceS256":true,"clientIdMetadataDocument":false,"dynamicClientRegistration":true}},"tls":{"observedAt":"2026-10-09T08:26:54.312Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"anyhook.net","issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validFrom":"2026-08-13T08:49:45.000Z","validTo":"2026-11-11T08:49:44.000Z","daysToExpiry":32,"sanCount":1,"fingerprint256":"66:F7:B2:0D:0C:6C:DD:CA:FA:10:5D:45:01:2D:C1:C3:E1:B5:55:D4:51:ED:DA:D2:A7:06:19:88:05:AE:85:36"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"net.anyhook/anyhook","url":"https://registry.modelcontextprotocol.io/v0/servers/net.anyhook%2Fanyhook","firstSeenAt":"2026-09-07T08:19:20.556Z","fetchedAt":"2026-10-08T18:22:10.243Z","normalizedAt":"2026-10-08T18:22:10.243Z"}]},"firstSeenAt":"2026-09-07T08:19:20.556Z","updatedAt":"2026-10-09T21:29:03.336Z"}