triggers.* webhook-to-agent flow — without leaving your editor or chat.
Server URL
https://mcp.webhook.co/mcp — a remote, streamable-HTTP MCP server. Not stdio.whk_bearer token — the simple path. Paste a personal API key, or sendAuthorization: Bearer whk_your_key_here. Works in any MCP client that supports a static token or header — desktop, headless, or CI. Mint a key, store it in an environment variable, and never hardcode it.- OAuth (the “connect” / “sign in” button). Clients with an interactive connector — Claude Desktop, Claude Code, Cursor’s cloud agent, VS Code, Zed — run a browser sign-in (authorization code + PKCE) against auth.webhook.co: you log in, approve a consent screen, and the client stores the tokens. No key to paste.
triggers.wait, the webhook-to-agent trigger.Supported clients
Jump to your client:- Claude Code
- Claude Desktop
- Codex CLI
- Cursor
- VS Code (Copilot)
- Windsurf
- Other clients (Cline, Goose, Zed, JetBrains, Warp, Continue) and the
mcp-remotebridge
whk_your_key_here with your own key, and prefer the environment-variable form (WEBHOOK_API_KEY) over a literal.
Claude Code
Claude Code speaks streamable HTTP natively — no bridge needed.Add the server
--header to use OAuth — you’ll authenticate on first use:Choose a scope (optional)
-s local (default, this machine only), -s project (shared via a checked-in .mcp.json), or -s user (all your projects):Sign in (OAuth only)
/mcp inside Claude Code and follow the auth prompt.Verify
/mcp in a session — webhook should report connected..mcp.json that reads the key from the environment:
WEBHOOK_API_KEY in your shell so the literal key never lands in the repo.
Claude Desktop
Claude Desktop connects from Anthropic’s cloud, so the server must be publicly reachable —https://mcp.webhook.co/mcp is. The Connectors UI uses OAuth; for a header-based token you edit the config file and use the mcp-remote bridge.
Open Connectors
Paste the server URL
https://mcp.webhook.co/mcp and click Add.Authenticate
- OAuth (recommended)
- whk_ token (config file)
Codex CLI
Codex CLI supports remote streamable-HTTP MCP servers via~/.codex/config.toml. Remote-HTTP support is recent and version-sensitive — update Codex if the url key isn’t recognized.
Edit ~/.codex/config.toml
WEBHOOK_API_KEY=whk_your_key_here in your shell.Verify
webhook should appear with its tools.Cursor
Cursor speaks streamable HTTP natively. Use~/.cursor/mcp.json for all projects, or a project-scoped .cursor/mcp.json.
Add the server
WEBHOOK_API_KEY in your environment. On Cursor desktop the bearer token is the supported path — it uses a private callback that OAuth can’t verify. Cursor’s web / cloud agent can instead use OAuth: omit headers and complete the sign-in Cursor offers on connect (it shows as a verified app). See how authorization works.Or use the deeplink
<base64-json> is the base64 encoding of {"url":"https://mcp.webhook.co/mcp"}.Verify
webhook should show a green dot and list its tools.VS Code (Copilot)
VS Code’s Copilot agent mode speaks streamable HTTP. The workspace config lives in.vscode/mcp.json, where the top-level key is servers (note: not mcpServers).
Add .vscode/mcp.json
Or add from the CLI
Verify
webhook. An install badge/deeplink uses the form https://vscode.dev/redirect/mcp/install?{url-encoded-json}.Windsurf
Windsurf’s Cascade speaks streamable HTTP. Its config uses theserverUrl key (not url).
Edit the config
WEBHOOK_API_KEY in your environment.Verify
webhook and its tools should appear.Other clients
Any client that supports remote streamable HTTP can connect tohttps://mcp.webhook.co/mcp with an Authorization: Bearer whk_your_key_here header. Key names differ:
- Cline — add a server with transport
streamableHttpand the URL plus anAuthorizationheader. - Goose — type
streamable_httpin~/.config/goose/config.yaml, URLhttps://mcp.webhook.co/mcp, with the bearer header under the server’s headers. - Zed — add under
context_serversin settings with the HTTP URL and header. - JetBrains AI Assistant — Settings → Tools → MCP, add an HTTP server pointing at the URL with the
Authorizationheader. - Warp — Settings → Agents → MCP, add the URL with the bearer header.
- Continue — transport
streamable-http, URLhttps://mcp.webhook.co/mcp, key underrequestOptions.headers.
The mcp-remote bridge
For any client that only speaks stdio, bridge to the remote server withmcp-remote:
Verify the connection
Once connected, confirm the tools loaded — you should see thetriggers.* and endpoints.* tools appear:
- Claude Code / Codex — run
/mcp(orclaude mcp list/codex mcp list);webhookreports connected. - Cursor / Windsurf — open the MCP panel; look for a green dot and the tool list.
- VS Code — MCP: List Servers → Start, then check the tools.
- Claude Desktop — the connector shows as active; the tools are offered in a new chat.
endpoints.* tools resolve, auth and transport are both working.
Troubleshooting
Tools don't show up after adding the server
Tools don't show up after adding the server
https://mcp.webhook.co/mcp. Restart the client (Claude Desktop and some editors only load MCP servers at startup). Then re-run the verify step for your client — /mcp, List Servers, or the MCP panel — and check for an error next to webhook.The client says "needs login" or auth failed
The client says "needs login" or auth failed
claude mcp login webhook, /mcp, or the client’s reconnect button). For token clients, verify the header is Authorization: Bearer whk_your_key_here and that WEBHOOK_API_KEY is actually exported in the environment the client sees. Mint a new key if in doubt.Reset the OAuth cache (mcp-remote)
Reset the OAuth cache (mcp-remote)
mcp-remote caches tokens under ~/.mcp-auth. If auth is stuck in a bad state, clear it and reconnect:Streamable HTTP vs SSE
Streamable HTTP vs SSE
https://mcp.webhook.co/mcp. If your client asks you to pick a remote transport, choose streamable HTTP (sometimes labeled “HTTP”), not the older SSE transport. Point it at the same /mcp URL.My client only speaks stdio
My client only speaks stdio
mcp-remote bridge — it presents the remote server to the client as a local stdio server. Remember the space-in-argument gotcha: pass the header value via env.A cloud client can't reach my endpoint
A cloud client can't reach my endpoint
https://mcp.webhook.co/mcp is public, so it works — but a localhost or private-network MCP server will not connect from a cloud client. Local-only setups need a local client (Claude Code, Cursor, VS Code) or a public tunnel.A cloud chat client won't connect at all
A cloud chat client won't connect at all