{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_5rcmybcm2hkm","handle":"webhook-toolkit","url":"https://wellknown.network/agents/webhook-toolkit","links":{"self":"https://wellknown.network/agents/webhook-toolkit/record.json","html":"https://wellknown.network/agents/webhook-toolkit","markdown":"https://wellknown.network/agents/webhook-toolkit/record.md","api":"https://wellknown.network/api/v1/agents/webhook-toolkit","status":"https://wellknown.network/api/v1/agents/webhook-toolkit/status","claim":"https://wellknown.network/agents/webhook-toolkit/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/webhook-toolkit/claim.json","badge":"https://wellknown.network/agents/webhook-toolkit/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/webhook-toolkit/history","tools":"https://wellknown.network/api/v1/agents/webhook-toolkit/tools"},"ard":{"identifier":"urn:air:webhook-toolkit.com:server:webhook-toolkit","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Webhook Toolkit","summary":"Webhook URLs for AI agents: receive, wait for, replay, sign and verify webhooks (Stripe, GitHub…).","description":"Webhook URLs for AI agents: receive, wait for, replay, sign and verify webhooks (Stripe, GitHub…).","publisher":{"name":"THE-KIPDEV","url":null},"homepage":"https://webhook-toolkit.com","repository":"https://github.com/THE-KIPDEV/webhook-toolkit","version":"0.1.1","license":"MIT","protocols":["mcp"],"tags":["webhook","webhooks","webhook-tester","webhook-testing","webhook-relay","webhook-forwarding","smee","ngrok","localhost","tunnel","stripe-webhook","github-webhook","shopify-webhook","slack","twilio","svix","signature","hmac","mcp","mcp-server","model-context-protocol","cli","testing"],"pricing":null,"endpoints":[{"url":"https://webhook-toolkit.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"npm:webhook-toolkit","type":"package_npm","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-18T13:53:54.439532Z","npmKeywords":["webhook","webhooks","webhook-tester","webhook-testing","webhook-relay","webhook-forwarding","smee","ngrok","localhost","tunnel","stripe-webhook","github-webhook","shopify-webhook","slack","twilio","svix","signature","hmac","mcp","mcp-server","model-context-protocol","cli","testing"],"publishedAt":"2026-09-18T13:53:54.439532Z","registryName":"io.github.THE-KIPDEV/webhook-toolkit"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","license":"npm","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"dev.version-control","name":"Version Control","confidence":1,"provenance":"derived"},{"slug":"commerce.payments","name":"Payments","confidence":1,"provenance":"derived"},{"slug":"communication.notifications","name":"Notifications","confidence":1,"provenance":"declared"},{"slug":"code.testing","name":"Testing","confidence":1,"provenance":"declared"},{"slug":"communication.sms-voice","name":"SMS & Voice","confidence":1,"provenance":"declared"},{"slug":"communication.chat","name":"Team Chat","confidence":1,"provenance":"declared"},{"slug":"commerce.ecommerce","name":"E-commerce Operations","confidence":0.656,"provenance":"derived"}],"categories":["code","commerce","communication","dev"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 4h ago.","lastOkAt":"2026-10-09T21:25:50.332Z","lastProbedAt":"2026-10-09T21:25:50.332Z","statusComputedAt":"2026-10-09T21:27:53.419Z","reliability30d":{"probes":78,"successRate":1,"p50Ms":32,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":78,"ok":78,"authBoundaryOk":0,"serviceOk":78,"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:25:50.332Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":22,"error":null,"detail":{"tools":[{"name":"create_webhook_url","description":"Create a public HTTPS URL that captures every request sent to it (any method, any sub-path). Use it when you need an endpoint to receive a webhook from a third-"},{"name":"list_webhook_urls","description":"List the webhook URLs of the account behind the API key (requires an API key)."},{"name":"wait_for_webhook","description":"Block until the next request reaches a webhook URL (or the timeout elapses), then return it in full: method, path, headers, body, detected provider and event. U"},{"name":"list_webhook_requests","description":"List the most recent requests captured by a webhook URL, newest first (summaries; use get_webhook_request for one full request)."},{"name":"get_webhook_request","description":"Return one captured request in full (headers, raw body, detected provider/event)."},{"name":"set_webhook_response","description":"Choose what the webhook URL answers to callers (status code, body, content type) — e.g. return 500 to test the sender's retries, or a specific JSON/XML body the"},{"name":"replay_webhook_request","description":"Re-send a captured request (same method, headers and raw body) to a PUBLIC URL and return the target's response. Localhost and private IPs are refused here: for"},{"name":"sign_webhook_payload","description":"Build a webhook body with a VALID signature header for a provider, to test a handler's signature verification without triggering a real event. Providers: stripe"},{"name":"verify_webhook_signature","description":"Check whether a webhook signature is valid for a raw body and a secret, and diagnose why it fails (wrong secret, whitespace, re-serialized JSON body, expired ti"},{"name":"explain_webhook_request","description":"AI analysis of a captured request. mode=explain: who sent it, which event, key fields, how to verify the signature, pitfalls. mode=handler: complete receiving c"}],"toolCount":10,"toolsHash":"7d0bf6951df51b39144a22a3a7dca8208ef904f7fb702a5fc2be77fa64ea7c9f","serverName":"webhook-toolkit","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T14:32:08.609Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":99,"error":null,"detail":{"tools":[{"name":"create_webhook_url","description":"Create a public HTTPS URL that captures every request sent to it (any method, any sub-path). Use it when you need an endpoint to receive a webhook from a third-"},{"name":"list_webhook_urls","description":"List the webhook URLs of the account behind the API key (requires an API key)."},{"name":"wait_for_webhook","description":"Block until the next request reaches a webhook URL (or the timeout elapses), then return it in full: method, path, headers, body, detected provider and event. U"},{"name":"list_webhook_requests","description":"List the most recent requests captured by a webhook URL, newest first (summaries; use get_webhook_request for one full request)."},{"name":"get_webhook_request","description":"Return one captured request in full (headers, raw body, detected provider/event)."},{"name":"set_webhook_response","description":"Choose what the webhook URL answers to callers (status code, body, content type) — e.g. return 500 to test the sender's retries, or a specific JSON/XML body the"},{"name":"replay_webhook_request","description":"Re-send a captured request (same method, headers and raw body) to a PUBLIC URL and return the target's response. Localhost and private IPs are refused here: for"},{"name":"sign_webhook_payload","description":"Build a webhook body with a VALID signature header for a provider, to test a handler's signature verification without triggering a real event. Providers: stripe"},{"name":"verify_webhook_signature","description":"Check whether a webhook signature is valid for a raw body and a secret, and diagnose why it fails (wrong secret, whitespace, re-serialized JSON body, expired ti"},{"name":"explain_webhook_request","description":"AI analysis of a captured request. mode=explain: who sent it, which event, key fields, how to verify the signature, pitfalls. mode=handler: complete receiving c"}],"toolCount":10,"toolsHash":"7d0bf6951df51b39144a22a3a7dca8208ef904f7fb702a5fc2be77fa64ea7c9f","serverName":"webhook-toolkit","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T08:27:57.312Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":6103,"error":null,"detail":{"tools":[{"name":"create_webhook_url","description":"Create a public HTTPS URL that captures every request sent to it (any method, any sub-path). Use it when you need an endpoint to receive a webhook from a third-"},{"name":"list_webhook_urls","description":"List the webhook URLs of the account behind the API key (requires an API key)."},{"name":"wait_for_webhook","description":"Block until the next request reaches a webhook URL (or the timeout elapses), then return it in full: method, path, headers, body, detected provider and event. U"},{"name":"list_webhook_requests","description":"List the most recent requests captured by a webhook URL, newest first (summaries; use get_webhook_request for one full request)."},{"name":"get_webhook_request","description":"Return one captured request in full (headers, raw body, detected provider/event)."},{"name":"set_webhook_response","description":"Choose what the webhook URL answers to callers (status code, body, content type) — e.g. return 500 to test the sender's retries, or a specific JSON/XML body the"},{"name":"replay_webhook_request","description":"Re-send a captured request (same method, headers and raw body) to a PUBLIC URL and return the target's response. Localhost and private IPs are refused here: for"},{"name":"sign_webhook_payload","description":"Build a webhook body with a VALID signature header for a provider, to test a handler's signature verification without triggering a real event. Providers: stripe"},{"name":"verify_webhook_signature","description":"Check whether a webhook signature is valid for a raw body and a secret, and diagnose why it fails (wrong secret, whitespace, re-serialized JSON body, expired ti"},{"name":"explain_webhook_request","description":"AI analysis of a captured request. mode=explain: who sent it, which event, key fields, how to verify the signature, pitfalls. mode=handler: complete receiving c"}],"toolCount":10,"toolsHash":"7d0bf6951df51b39144a22a3a7dca8208ef904f7fb702a5fc2be77fa64ea7c9f","serverName":"webhook-toolkit","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T01:25:42.319Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":16,"error":null,"detail":{"tools":[{"name":"create_webhook_url","description":"Create a public HTTPS URL that captures every request sent to it (any method, any sub-path). Use it when you need an endpoint to receive a webhook from a third-"},{"name":"list_webhook_urls","description":"List the webhook URLs of the account behind the API key (requires an API key)."},{"name":"wait_for_webhook","description":"Block until the next request reaches a webhook URL (or the timeout elapses), then return it in full: method, path, headers, body, detected provider and event. U"},{"name":"list_webhook_requests","description":"List the most recent requests captured by a webhook URL, newest first (summaries; use get_webhook_request for one full request)."},{"name":"get_webhook_request","description":"Return one captured request in full (headers, raw body, detected provider/event)."},{"name":"set_webhook_response","description":"Choose what the webhook URL answers to callers (status code, body, content type) — e.g. return 500 to test the sender's retries, or a specific JSON/XML body the"},{"name":"replay_webhook_request","description":"Re-send a captured request (same method, headers and raw body) to a PUBLIC URL and return the target's response. Localhost and private IPs are refused here: for"},{"name":"sign_webhook_payload","description":"Build a webhook body with a VALID signature header for a provider, to test a handler's signature verification without triggering a real event. Providers: stripe"},{"name":"verify_webhook_signature","description":"Check whether a webhook signature is valid for a raw body and a secret, and diagnose why it fails (wrong secret, whitespace, re-serialized JSON body, expired ti"},{"name":"explain_webhook_request","description":"AI analysis of a captured request. mode=explain: who sent it, which event, key fields, how to verify the signature, pitfalls. mode=handler: complete receiving c"}],"toolCount":10,"toolsHash":"7d0bf6951df51b39144a22a3a7dca8208ef904f7fb702a5fc2be77fa64ea7c9f","serverName":"webhook-toolkit","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T19:24:06.521Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":26,"error":null,"detail":{"tools":[{"name":"create_webhook_url","description":"Create a public HTTPS URL that captures every request sent to it (any method, any sub-path). Use it when you need an endpoint to receive a webhook from a third-"},{"name":"list_webhook_urls","description":"List the webhook URLs of the account behind the API key (requires an API key)."},{"name":"wait_for_webhook","description":"Block until the next request reaches a webhook URL (or the timeout elapses), then return it in full: method, path, headers, body, detected provider and event. U"},{"name":"list_webhook_requests","description":"List the most recent requests captured by a webhook URL, newest first (summaries; use get_webhook_request for one full request)."},{"name":"get_webhook_request","description":"Return one captured request in full (headers, raw body, detected provider/event)."},{"name":"set_webhook_response","description":"Choose what the webhook URL answers to callers (status code, body, content type) — e.g. return 500 to test the sender's retries, or a specific JSON/XML body the"},{"name":"replay_webhook_request","description":"Re-send a captured request (same method, headers and raw body) to a PUBLIC URL and return the target's response. Localhost and private IPs are refused here: for"},{"name":"sign_webhook_payload","description":"Build a webhook body with a VALID signature header for a provider, to test a handler's signature verification without triggering a real event. Providers: stripe"},{"name":"verify_webhook_signature","description":"Check whether a webhook signature is valid for a raw body and a secret, and diagnose why it fails (wrong secret, whitespace, re-serialized JSON body, expired ti"},{"name":"explain_webhook_request","description":"AI analysis of a captured request. mode=explain: who sent it, which event, key fields, how to verify the signature, pitfalls. mode=handler: complete receiving c"}],"toolCount":10,"toolsHash":"7d0bf6951df51b39144a22a3a7dca8208ef904f7fb702a5fc2be77fa64ea7c9f","serverName":"webhook-toolkit","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T13:23:01.805Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":37,"error":null,"detail":{"tools":[{"name":"create_webhook_url","description":"Create a public HTTPS URL that captures every request sent to it (any method, any sub-path). Use it when you need an endpoint to receive a webhook from a third-"},{"name":"list_webhook_urls","description":"List the webhook URLs of the account behind the API key (requires an API key)."},{"name":"wait_for_webhook","description":"Block until the next request reaches a webhook URL (or the timeout elapses), then return it in full: method, path, headers, body, detected provider and event. U"},{"name":"list_webhook_requests","description":"List the most recent requests captured by a webhook URL, newest first (summaries; use get_webhook_request for one full request)."},{"name":"get_webhook_request","description":"Return one captured request in full (headers, raw body, detected provider/event)."},{"name":"set_webhook_response","description":"Choose what the webhook URL answers to callers (status code, body, content type) — e.g. return 500 to test the sender's retries, or a specific JSON/XML body the"},{"name":"replay_webhook_request","description":"Re-send a captured request (same method, headers and raw body) to a PUBLIC URL and return the target's response. Localhost and private IPs are refused here: for"},{"name":"sign_webhook_payload","description":"Build a webhook body with a VALID signature header for a provider, to test a handler's signature verification without triggering a real event. Providers: stripe"},{"name":"verify_webhook_signature","description":"Check whether a webhook signature is valid for a raw body and a secret, and diagnose why it fails (wrong secret, whitespace, re-serialized JSON body, expired ti"},{"name":"explain_webhook_request","description":"AI analysis of a captured request. mode=explain: who sent it, which event, key fields, how to verify the signature, pitfalls. mode=handler: complete receiving c"}],"toolCount":10,"toolsHash":"7d0bf6951df51b39144a22a3a7dca8208ef904f7fb702a5fc2be77fa64ea7c9f","serverName":"webhook-toolkit","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T07:26:32.051Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":17,"error":null,"detail":{"tools":[{"name":"create_webhook_url","description":"Create a public HTTPS URL that captures every request sent to it (any method, any sub-path). Use it when you need an endpoint to receive a webhook from a third-"},{"name":"list_webhook_urls","description":"List the webhook URLs of the account behind the API key (requires an API key)."},{"name":"wait_for_webhook","description":"Block until the next request reaches a webhook URL (or the timeout elapses), then return it in full: method, path, headers, body, detected provider and event. U"},{"name":"list_webhook_requests","description":"List the most recent requests captured by a webhook URL, newest first (summaries; use get_webhook_request for one full request)."},{"name":"get_webhook_request","description":"Return one captured request in full (headers, raw body, detected provider/event)."},{"name":"set_webhook_response","description":"Choose what the webhook URL answers to callers (status code, body, content type) — e.g. return 500 to test the sender's retries, or a specific JSON/XML body the"},{"name":"replay_webhook_request","description":"Re-send a captured request (same method, headers and raw body) to a PUBLIC URL and return the target's response. Localhost and private IPs are refused here: for"},{"name":"sign_webhook_payload","description":"Build a webhook body with a VALID signature header for a provider, to test a handler's signature verification without triggering a real event. Providers: stripe"},{"name":"verify_webhook_signature","description":"Check whether a webhook signature is valid for a raw body and a secret, and diagnose why it fails (wrong secret, whitespace, re-serialized JSON body, expired ti"},{"name":"explain_webhook_request","description":"AI analysis of a captured request. mode=explain: who sent it, which event, key fields, how to verify the signature, pitfalls. mode=handler: complete receiving c"}],"toolCount":10,"toolsHash":"7d0bf6951df51b39144a22a3a7dca8208ef904f7fb702a5fc2be77fa64ea7c9f","serverName":"webhook-toolkit","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T01:22:29.567Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":22,"error":null,"detail":{"tools":[{"name":"create_webhook_url","description":"Create a public HTTPS URL that captures every request sent to it (any method, any sub-path). Use it when you need an endpoint to receive a webhook from a third-"},{"name":"list_webhook_urls","description":"List the webhook URLs of the account behind the API key (requires an API key)."},{"name":"wait_for_webhook","description":"Block until the next request reaches a webhook URL (or the timeout elapses), then return it in full: method, path, headers, body, detected provider and event. U"},{"name":"list_webhook_requests","description":"List the most recent requests captured by a webhook URL, newest first (summaries; use get_webhook_request for one full request)."},{"name":"get_webhook_request","description":"Return one captured request in full (headers, raw body, detected provider/event)."},{"name":"set_webhook_response","description":"Choose what the webhook URL answers to callers (status code, body, content type) — e.g. return 500 to test the sender's retries, or a specific JSON/XML body the"},{"name":"replay_webhook_request","description":"Re-send a captured request (same method, headers and raw body) to a PUBLIC URL and return the target's response. Localhost and private IPs are refused here: for"},{"name":"sign_webhook_payload","description":"Build a webhook body with a VALID signature header for a provider, to test a handler's signature verification without triggering a real event. Providers: stripe"},{"name":"verify_webhook_signature","description":"Check whether a webhook signature is valid for a raw body and a secret, and diagnose why it fails (wrong secret, whitespace, re-serialized JSON body, expired ti"},{"name":"explain_webhook_request","description":"AI analysis of a captured request. mode=explain: who sent it, which event, key fields, how to verify the signature, pitfalls. mode=handler: complete receiving c"}],"toolCount":10,"toolsHash":"7d0bf6951df51b39144a22a3a7dca8208ef904f7fb702a5fc2be77fa64ea7c9f","serverName":"webhook-toolkit","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T19:25:43.593Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":23,"error":null,"detail":{"tools":[{"name":"create_webhook_url","description":"Create a public HTTPS URL that captures every request sent to it (any method, any sub-path). Use it when you need an endpoint to receive a webhook from a third-"},{"name":"list_webhook_urls","description":"List the webhook URLs of the account behind the API key (requires an API key)."},{"name":"wait_for_webhook","description":"Block until the next request reaches a webhook URL (or the timeout elapses), then return it in full: method, path, headers, body, detected provider and event. U"},{"name":"list_webhook_requests","description":"List the most recent requests captured by a webhook URL, newest first (summaries; use get_webhook_request for one full request)."},{"name":"get_webhook_request","description":"Return one captured request in full (headers, raw body, detected provider/event)."},{"name":"set_webhook_response","description":"Choose what the webhook URL answers to callers (status code, body, content type) — e.g. return 500 to test the sender's retries, or a specific JSON/XML body the"},{"name":"replay_webhook_request","description":"Re-send a captured request (same method, headers and raw body) to a PUBLIC URL and return the target's response. Localhost and private IPs are refused here: for"},{"name":"sign_webhook_payload","description":"Build a webhook body with a VALID signature header for a provider, to test a handler's signature verification without triggering a real event. Providers: stripe"},{"name":"verify_webhook_signature","description":"Check whether a webhook signature is valid for a raw body and a secret, and diagnose why it fails (wrong secret, whitespace, re-serialized JSON body, expired ti"},{"name":"explain_webhook_request","description":"AI analysis of a captured request. mode=explain: who sent it, which event, key fields, how to verify the signature, pitfalls. mode=handler: complete receiving c"}],"toolCount":10,"toolsHash":"7d0bf6951df51b39144a22a3a7dca8208ef904f7fb702a5fc2be77fa64ea7c9f","serverName":"webhook-toolkit","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T13:27:45.055Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":24,"error":null,"detail":{"tools":[{"name":"create_webhook_url","description":"Create a public HTTPS URL that captures every request sent to it (any method, any sub-path). Use it when you need an endpoint to receive a webhook from a third-"},{"name":"list_webhook_urls","description":"List the webhook URLs of the account behind the API key (requires an API key)."},{"name":"wait_for_webhook","description":"Block until the next request reaches a webhook URL (or the timeout elapses), then return it in full: method, path, headers, body, detected provider and event. U"},{"name":"list_webhook_requests","description":"List the most recent requests captured by a webhook URL, newest first (summaries; use get_webhook_request for one full request)."},{"name":"get_webhook_request","description":"Return one captured request in full (headers, raw body, detected provider/event)."},{"name":"set_webhook_response","description":"Choose what the webhook URL answers to callers (status code, body, content type) — e.g. return 500 to test the sender's retries, or a specific JSON/XML body the"},{"name":"replay_webhook_request","description":"Re-send a captured request (same method, headers and raw body) to a PUBLIC URL and return the target's response. Localhost and private IPs are refused here: for"},{"name":"sign_webhook_payload","description":"Build a webhook body with a VALID signature header for a provider, to test a handler's signature verification without triggering a real event. Providers: stripe"},{"name":"verify_webhook_signature","description":"Check whether a webhook signature is valid for a raw body and a secret, and diagnose why it fails (wrong secret, whitespace, re-serialized JSON body, expired ti"},{"name":"explain_webhook_request","description":"AI analysis of a captured request. mode=explain: who sent it, which event, key fields, how to verify the signature, pitfalls. mode=handler: complete receiving c"}],"toolCount":10,"toolsHash":"7d0bf6951df51b39144a22a3a7dca8208ef904f7fb702a5fc2be77fa64ea7c9f","serverName":"webhook-toolkit","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"create_webhook_url","description":"Create a public HTTPS URL that captures every request sent to it (any method, any sub-path). Use it when you need an endpoint to receive a webhook from a third-"},{"name":"list_webhook_urls","description":"List the webhook URLs of the account behind the API key (requires an API key)."},{"name":"wait_for_webhook","description":"Block until the next request reaches a webhook URL (or the timeout elapses), then return it in full: method, path, headers, body, detected provider and event. U"},{"name":"list_webhook_requests","description":"List the most recent requests captured by a webhook URL, newest first (summaries; use get_webhook_request for one full request)."},{"name":"get_webhook_request","description":"Return one captured request in full (headers, raw body, detected provider/event)."},{"name":"set_webhook_response","description":"Choose what the webhook URL answers to callers (status code, body, content type) — e.g. return 500 to test the sender's retries, or a specific JSON/XML body the"},{"name":"replay_webhook_request","description":"Re-send a captured request (same method, headers and raw body) to a PUBLIC URL and return the target's response. Localhost and private IPs are refused here: for"},{"name":"sign_webhook_payload","description":"Build a webhook body with a VALID signature header for a provider, to test a handler's signature verification without triggering a real event. Providers: stripe"},{"name":"verify_webhook_signature","description":"Check whether a webhook signature is valid for a raw body and a secret, and diagnose why it fails (wrong secret, whitespace, re-serialized JSON body, expired ti"},{"name":"explain_webhook_request","description":"AI analysis of a captured request. mode=explain: who sent it, which event, key fields, how to verify the signature, pitfalls. mode=handler: complete receiving c"}],"package":{"name":"webhook-toolkit","registry":"npm","observedAt":"2026-10-09T23:22:22.336Z","publishedAt":"2026-09-18T13:53:42.864Z","latestVersion":"0.1.1","weeklyDownloads":45},"toolSurface":{"id":"ts_cxhwwwajj46k","endpointId":"ep_6r6m76dyjj7s","hash":"7d0bf6951df51b39144a22a3a7dca8208ef904f7fb702a5fc2be77fa64ea7c9f","toolCount":10,"serverName":"webhook-toolkit","serverVersion":"1.0.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-09-18T21:27:53.128Z","lastSeenAt":"2026-10-09T21:25:50.320Z","observations":78,"toolNames":["create_webhook_url","list_webhook_urls","wait_for_webhook","list_webhook_requests","get_webhook_request","set_webhook_response","replay_webhook_request","sign_webhook_payload","verify_webhook_signature","explain_webhook_request"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_6r6m76dyjj7s","url":"https://webhook-toolkit.com/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-09T21:25:50.324Z","auth":{"observedAt":"2026-10-09T21:25:50.342Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-09T21:25:50.378Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"webhook-toolkit.com","issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validFrom":"2026-10-08T08:11:51.000Z","validTo":"2027-01-06T08:11:50.000Z","daysToExpiry":88,"sanCount":1,"fingerprint256":"B9:76:98:12:C4:5A:F0:A4:8C:2E:C4:E8:9C:A1:DA:B5:DB:A4:54:52:83:5A:50:69:36:46:5F:95:5B:86:E6:8C"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"npm","key":"webhook-toolkit","url":"https://www.npmjs.com/package/webhook-toolkit","firstSeenAt":"2026-09-26T12:20:00.606Z","fetchedAt":"2026-10-09T23:21:57.882Z","normalizedAt":"2026-10-09T23:21:57.882Z"},{"source":"mcp_registry","key":"io.github.THE-KIPDEV/webhook-toolkit","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.THE-KIPDEV%2Fwebhook-toolkit","firstSeenAt":"2026-09-18T21:21:04.562Z","fetchedAt":"2026-10-07T03:18:54.045Z","normalizedAt":"2026-10-07T03:18:54.045Z"}]},"firstSeenAt":"2026-09-18T21:21:04.562Z","updatedAt":"2026-10-09T23:22:22.336Z"}