Server definition
- Hash
- sha256:9880cc542f8141ab167e6b5231f9345feabc5b46feaa2a4bc7254dbaece2c233
- What it is
- What a remote MCP server returned when asked what it offers: 10 tools
The blob, as servednamed by its sha256
{
"instructions": "Webhook Toolkit gives you public URLs that capture any HTTP request (webhooks) so you can test integrations with third-party services (Stripe, GitHub, Shopify, Slack, Twilio, PayPal…). Typical flow: create_webhook_url → give the URL to the service (or trigger the event) → wait_for_webhook → inspect headers/body → optionally explain_webhook_request. Anonymous URLs expire after 7 days; with an API key they are permanent.",
"tools": [
{
"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-party service while building or debugging an integration. Returns the URL to configure in the service and a live inspector link for the human.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"name": {
"description": "Label, e.g. 'stripe-test'",
"maxLength": 60,
"type": "string"
}
},
"type": "object"
},
"name": "create_webhook_url",
"outputSchema": null
},
{
"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 code that verifies the signature and handles this event. Included in paid plans; anonymous and free users get 3 trials.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"language": {
"description": "Handler language (mode=handler). Default node.",
"enum": [
"node",
"nextjs",
"python",
"php",
"go",
"ruby"
],
"type": "string"
},
"mode": {
"enum": [
"explain",
"handler"
],
"type": "string"
},
"request_id": {
"type": "string"
},
"token": {
"type": "string"
}
},
"required": [
"token",
"request_id"
],
"type": "object"
},
"name": "explain_webhook_request",
"outputSchema": null
},
{
"description": "Return one captured request in full (headers, raw body, detected provider/event).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"request_id": {
"type": "string"
},
"token": {
"type": "string"
}
},
"required": [
"token",
"request_id"
],
"type": "object"
},
"name": "get_webhook_request",
"outputSchema": null
},
{
"description": "List the most recent requests captured by a webhook URL, newest first (summaries; use get_webhook_request for one full request).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"description": "Default 10",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"token": {
"type": "string"
}
},
"required": [
"token"
],
"type": "object"
},
"name": "list_webhook_requests",
"outputSchema": null
},
{
"description": "List the webhook URLs of the account behind the API key (requires an API key).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "list_webhook_urls",
"outputSchema": null
},
{
"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 localhost use the CLI (`npx webhook-toolkit replay`) or the local MCP server (`npx webhook-toolkit mcp`).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"request_id": {
"type": "string"
},
"target_url": {
"format": "uri",
"type": "string"
},
"token": {
"type": "string"
}
},
"required": [
"token",
"request_id",
"target_url"
],
"type": "object"
},
"name": "replay_webhook_request",
"outputSchema": null
},
{
"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 service expects.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"body": {
"maxLength": 10000,
"type": "string"
},
"content_type": {
"maxLength": 120,
"type": "string"
},
"status": {
"maximum": 599,
"minimum": 100,
"type": "integer"
},
"token": {
"type": "string"
}
},
"required": [
"token"
],
"type": "object"
},
"name": "set_webhook_response",
"outputSchema": null
},
{
"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, github, shopify, slack, twilio, mailgun. Returns the headers, the exact body to send and a ready-to-run curl command.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"event_type": {
"description": "Sample event to use when no payload is given, e.g. checkout.session.completed",
"type": "string"
},
"payload": {
"description": "JSON payload (or form fields as JSON for Twilio). Default: a realistic sample event.",
"type": "string"
},
"provider": {
"enum": [
"stripe",
"github",
"shopify",
"slack",
"twilio",
"mailgun"
],
"type": "string"
},
"secret": {
"description": "The webhook signing secret configured in your handler (whsec_… for Stripe)",
"type": "string"
},
"target_url": {
"description": "Handler URL (required for Twilio, whose signature covers the URL)",
"type": "string"
}
},
"required": [
"provider",
"secret"
],
"type": "object"
},
"name": "sign_webhook_payload",
"outputSchema": null
},
{
"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 timestamp, wrong URL for Twilio). Providers: stripe, github, shopify, slack, twilio.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"provider": {
"enum": [
"stripe",
"github",
"shopify",
"slack",
"twilio"
],
"type": "string"
},
"raw_body": {
"description": "The raw request body exactly as received",
"type": "string"
},
"secret": {
"type": "string"
},
"signature": {
"description": "The signature header value (Stripe-Signature, X-Hub-Signature-256, X-Shopify-Hmac-Sha256, X-Slack-Signature, X-Twilio-Signature)",
"type": "string"
},
"timestamp": {
"description": "Slack only: X-Slack-Request-Timestamp",
"type": "string"
},
"url": {
"description": "Twilio only: the full URL Twilio called",
"type": "string"
}
},
"required": [
"provider",
"secret",
"raw_body",
"signature"
],
"type": "object"
},
"name": "verify_webhook_signature",
"outputSchema": null
},
{
"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. 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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"after": {
"description": "ISO timestamp: only requests strictly newer than this. Default: now.",
"type": "string"
},
"timeout_seconds": {
"description": "Default 30, max 50",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"token": {
"description": "Token of the webhook URL (the part after /r/)",
"type": "string"
}
},
"required": [
"token"
],
"type": "object"
},
"name": "wait_for_webhook",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:9880cc542f8141ab167e6b5231f9345feabc5b46feaa2a4bc7254dbaece2c233 | sha256sum