Test Webhooks with Claude and ChatGPT via MCP
Connect Webhook Inspector as an MCP server so your AI assistant can create capture URLs, wait for a webhook and debug the payload with you.
Updated:
Webhook Inspector is also a remote MCP server. Once connected, your AI assistant can work with webhooks by itself: create a URL, give it to Stripe or GitHub, wait for the delivery, read the headers and body, change the response and try again. You no longer copy payloads from the browser into the chat.
The server address is the same for every client:
https://webhook.voronyuk.com/mcp
There is no signup. When you connect, a page opens where you click Allow, and the assistant gets access to the same session (the same URLs) as your browser.
Connect Claude (claude.ai and Claude Desktop)
- Open Settings → Connectors and choose Add custom connector.
- Name it
Webhook Inspectorand pastehttps://webhook.voronyuk.com/mcp. - Click Connect. On the Webhook Inspector page, check the session and click Allow.
In a chat, enable the connector and ask, for example: "Create a webhook URL called stripe and wait for the first request".
Connect Claude Code
claude mcp add --transport http webhook-inspector https://webhook.voronyuk.com/mcp
Then run /mcp in Claude Code, select webhook-inspector and choose Authenticate. The browser opens the consent page; after Allow, the tools are available in the session.
Connect ChatGPT
In ChatGPT, turn on developer mode (Settings → Apps → Advanced settings), create an app with the URL https://webhook.voronyuk.com/mcp and OAuth authentication, then approve access on the consent page. The search and fetch tools also let ChatGPT find captured requests in deep research.
Connect Cursor, VS Code and other clients
Most clients that support remote MCP servers with OAuth accept this configuration:
{
"mcpServers": {
"webhook-inspector": { "url": "https://webhook.voronyuk.com/mcp" }
}
}
For scripts and clients without OAuth, send your session token instead (the part after /r/ in the session link):
Authorization: Bearer <session token>
Available tools
| Tool | What it does |
|---|---|
list_urls |
Lists your URLs with request counts and configured responses |
create_url |
Creates a capture URL, e.g. https://webhook.voronyuk.com/<hash>/stripe |
wait_for_request |
Waits up to 40 seconds for the next request and returns it with headers and body |
list_requests |
Lists captured requests with search and method filters |
get_request |
Returns one request with all headers and the body |
set_response |
Sets the status, headers, body and delay the URL answers with |
clear_requests |
Deletes the captured requests of a URL |
delete_url |
Deletes a URL and its requests |
search, fetch |
Search across all URLs and read a request as a document (for ChatGPT) |
A typical session
- "Create a webhook URL for GitHub" → the assistant calls
create_urland gives you the URL. - You paste it into Settings → Webhooks of the repository; GitHub sends
ping. - "Wait for the webhook and check the signature with my secret" →
wait_for_requestreturns the delivery, and the assistant recomputesX-Hub-Signature-256from the raw body. - "Make the URL return 500 so I can see GitHub retry" →
set_response.
Everything the assistant does appears live in the web tool, because it is the same session.
Security
- Access is granted per app on the consent page and can be revoked at any time in the tool under Connected apps.
- Captured requests are sent by third parties. The server marks them as untrusted data, but review what the assistant does with request contents, especially if a URL is public.
- Tokens expire: access tokens after an hour, refresh tokens after 30 days of inactivity. Requests are deleted after 72 hours; see the privacy policy.
FAQ
Do I need an account to use the MCP server?
No. The consent page connects the assistant to your current browser session. If you have none yet, a new session is created for you.
Can Claude and the browser share the same URLs?
Yes. The assistant works in the session you approved, so URLs it creates appear in the web tool and new requests show up in both places.
How long can wait_for_request wait?
Up to 40 seconds per call. If nothing arrives, the tool returns timed_out and the assistant simply calls it again with the same after_id, so no request is missed.
Can the assistant forward webhooks to my localhost?
Not through MCP: the server cannot reach your computer. Use the CLI agent or browser relay for localhost; the assistant can still read every request and its forwarding result.