MCPサーバー

Webhook Toolkit

io.github.THE-KIPDEV/webhook-toolkit

このMCPでできること

Creates webhook endpoints, captures and replays requests, configures responses, and signs or verifies webhook payloads.

create_webhook_url
Create a webhook URL
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-party service while building or debugging an integration. Returns the URL to configure in the service and a live inspector link for the human.
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'name': {'type': 'string', 'maxLength': 60, 'description': "Label, e.g. 'stripe-test'"}}}
explain_webhook_request
Explain a webhook / write its handler (AI)
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 code that verifies the signature and handles this event. Included in paid plans; anonymous and free users get 3 trials.
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['token', 'request_id'], 'properties': {'mode': {'enum': ['explain', 'handler'], 'type': 'string'}, 'token': {'type': 'string'}, 'language': {'enum': ['node', 'nextjs', 'python', 'php', 'go', 'ruby'], 'type': 'string', 'description': 'Handler language (mode=handler). Default node.'}, 'request_id': {'type': 'string'}}}
get_webhook_request
Get a captured request
Return one captured request in full (headers, raw body, detected provider/event).
読み取り専用
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['token', 'request_id'], 'properties': {'token': {'type': 'string'}, 'request_id': {'type': 'string'}}}
list_webhook_requests
List captured requests
List the most recent requests captured by a webhook URL, newest first (summaries; use get_webhook_request for one full request).
読み取り専用
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['token'], 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Default 10'}, 'token': {'type': 'string'}}}
list_webhook_urls
List my webhook URLs
List the webhook URLs of the account behind the API key (requires an API key).
読み取り専用
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
replay_webhook_request
Replay a captured request
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 localhost use the CLI (`npx webhook-toolkit replay`) or the local MCP server (`npx webhook-toolkit mcp`).
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['token', 'request_id', 'target_url'], 'properties': {'token': {'type': 'string'}, 'request_id': {'type': 'string'}, 'target_url': {'type': 'string', 'format': 'uri'}}}
set_webhook_response
Set the HTTP response
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 service expects.
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['token'], 'properties': {'body': {'type': 'string', 'maxLength': 10000}, 'token': {'type': 'string'}, 'status': {'type': 'integer', 'maximum': 599, 'minimum': 100}, 'content_type': {'type': 'string', 'maxLength': 120}}}
sign_webhook_payload
Sign a test webhook payload
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, github, shopify, slack, twilio, mailgun. Returns the headers, the exact body to send and a ready-to-run curl command.
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['provider', 'secret'], 'properties': {'secret': {'type': 'string', 'description': 'The webhook signing secret configured in your handler (whsec_… for Stripe)'}, 'payload': {'type': 'string', 'description': 'JSON payload (or form fields as JSON for Twilio). Default: a realistic sample event.'}, 'provider': {'enum': ['stripe', 'github', 'shopify', 'slack', 'twilio', 'mailgun'], 'type': 'string'}, 'event_type': {'type': 'string', 'description': 'Sample event to use when no payload is given, e.g. checkout.session.completed'}, 'target_url': {'type': 'string', 'description': 'Handler URL (required for Twilio, whose signature covers the URL)'}}}
verify_webhook_signature
Verify a webhook signature
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 timestamp, wrong URL for Twilio). Providers: stripe, github, shopify, slack, twilio.
読み取り専用
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['provider', 'secret', 'raw_body', 'signature'], 'properties': {'url': {'type': 'string', 'description': 'Twilio only: the full URL Twilio called'}, 'secret': {'type': 'string'}, 'provider': {'enum': ['stripe', 'github', 'shopify', 'slack', 'twilio'], 'type': 'string'}, 'raw_body': {'type': 'string', 'description': 'The raw request body exactly as received'}, 'signature': {'type': 'string', 'description': 'The signature header value (Stripe-Signature, X-Hub-Signature-256, X-Shopify-Hmac-Sha256, X-Slack-Signature, X-Twilio-Signature)'}, 'timestamp': {'type': 'string', 'description': 'Slack only: X-Slack-Request-Timestamp'}}}
wait_for_webhook
Wait for a webhook
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. Use right after triggering an action that should send a webhook. Call again with `after` set to the last request's createdAt to wait for the following one.
読み取り専用
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['token'], 'properties': {'after': {'type': 'string', 'description': 'ISO timestamp: only requests strictly newer than this. Default: now.'}, 'token': {'type': 'string', 'description': 'Token of the webhook URL (the part after /r/)'}, 'timeout_seconds': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Default 30, max 50'}}}
追加
explain_webhook_request
2026年9月19日2:40
追加
verify_webhook_signature
2026年9月19日2:40
追加
sign_webhook_payload
2026年9月19日2:40
追加
replay_webhook_request
2026年9月19日2:40
追加
set_webhook_response
2026年9月19日2:40
追加
get_webhook_request
2026年9月19日2:40
追加
list_webhook_requests
2026年9月19日2:40
追加
wait_for_webhook
2026年9月19日2:40
追加
list_webhook_urls
2026年9月19日2:40
追加
create_webhook_url
2026年9月19日2:40