Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
A webhook inbox for agents: one call returns a live URL. Mock, verify, inspect and replay.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
ANYHOOK_API_KEY, ANYHOOK_API_BASEValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://anyhook.net/mcpOpen Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"anyhook": {
"command": "npx",
"args": [
"-y",
"anyhook-mcp"
],
"env": {
"ANYHOOK_API_KEY": "your-value",
"ANYHOOK_API_BASE": "your-value"
}
}
}
}Run this in your terminal
claude mcp add --transport http anyhook https://anyhook.net/mcpclaude mcp add anyhook --env ANYHOOK_API_KEY=your-value --env ANYHOOK_API_BASE=your-value -- npx -y anyhook-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"anyhook": {
"url": "https://anyhook.net/mcp"
}
}
}Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"anyhook": {
"command": "npx",
"args": [
"-y",
"anyhook-mcp"
],
"env": {
"ANYHOOK_API_KEY": "your-value",
"ANYHOOK_API_BASE": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"anyhook": {
"type": "http",
"url": "https://anyhook.net/mcp"
}
}
}Paste into .vscode/mcp.json in your project
{
"servers": {
"anyhook": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"anyhook-mcp"
],
"env": {
"ANYHOOK_API_KEY": "your-value",
"ANYHOOK_API_BASE": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://anyhook.net/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
ANYHOOK_API_BASE envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
We have not read this server’s tool list yet; we check endpoints in rotation.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified against the domain anyhook.net (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Not checked yet; we check endpoints in rotation
Not checked yet; we check endpoints in rotation
Not checked yet; we read the tool list when we check the endpoint
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: ANYHOOK_API_KEY
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed –, and the latest version (0.5.0) reached the registry 2 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Spec Driven Development, Remote Desktop Commander, 오늘냥이 (Oneul Nyangi)
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Real cat photos, diaries, profiles, age and food reference calculators, and breeds.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
An MCP server that gives AI agents eyes on webhooks, inspect events, replay deliveries, mock signed payloads, create apps. Designed for the 45-second AI handler workflow.
Apache 2.0 · npm i -g anyhook-mcp
A public webhook URL that forwards to your machine, with no account:
npx -y anyhook-mcp listen 3000
Webhook URL https://in.anyhook.net/q-3fa9c1d2/listen
Forwards to http://localhost:3000/
This URL is temporary and lasts until Nov 11. To keep it: https://anyhook.net/claim/...
Paste the URL into Stripe, GitHub or any webhook sender. Ctrl-C to stop. While this is stopped, events are logged but not forwarded.
Connected. Waiting for events. 12:00:03 200 41 ms invoice.paid 12:00:19 500 12 ms invoice.paid AnyHook retries on its schedule
stripe.webhooks.constructEvent and friends work as they do in production.listen 3000/api/webhooks sets the path. With ANYHOOK_API_KEY set it uses that account, and --app picks the app. Needs Node 22 or newer.
It is for webhooks, not a general tunnel. The sender gets its answer from AnyHook, so your server's response goes to the event log rather than back to the sender. To expose a whole site, use ngrok or Cloudflare Tunnel.
Connect the hosted endpoint instead of running anything: add https://anyhook.net/mcp to Claude Code, claude.ai, Codex or VS Code and sign in through the browser, no key to copy. Steps for each app: https://anyhook.net/mcp.
No API key needed to start:
claude mcp add anyhook -- npx -y anyhook-mcp
Then ask your agent to run `anyhook_quickstart`, it creates a free relay endpoint + API key instantly (no signup), and this MCP session auto-connects. All account tools (events, replay, apps) work immediately. The response includes a claim_url to keep the endpoint permanently; unclaimed, it expires in 7 days. It is a new endpoint, not an account you already have.
Drop this MCP server into Claude Desktop / Cursor / Claude Code and your agent can:
anyhook_apps_list, see every app in your AnyHook account with its inbound URLanyhook_apps_create, spin up a new app from a promptanyhook_connect, give a Stripe key or GitHub token: the webhook is registered at the provider and signature-checked from the first event (the key is not stored)anyhook_events, list recent events, filter by app / statusanyhook_inspect, pull a single event's headers, body, signature statusanyhook_replay, re-send a stored event to its destinations (outside the monthly quota, within a daily replay limit and the compute allowance; an event held for quota counts as new)anyhook_undelivered, list events that never reached a destinationanyhook_usage, the plan's limits and what the account has used of each, with when they resetanyhook_replay_failed, bulk-replay an app's failed events, oldest first (the last 24 hours and 50 per call by default, up to 100), saying when more are waitinganyhook_mock, generate a signed Stripe / GitHub / Slack payload for local handler testinganyhook_verify, verify any incoming signature against your secretanyhook_providers, list every webhook provider AnyHook supportsThe inbound URL an app gives you accepts webhook POSTs and also answers provider setup handshakes automatically: Meta's GET carrying hub.mode=subscribe gets its hub.challenge echoed back, even before the app is configured, so the URL can be registered in the Meta App Dashboard first and wired up after.
Two modes:
| Mode | When | What works |
|---|---|---|
| remote | ANYHOOK_API_KEY is set | All tools above, live against your AnyHook account |
| local | No API key | Provider toolkit (mock / verify / providers) + an in-memory store you can simulate events into. Useful for trying it out before signing up. |
npm install -g anyhook-mcp
npx -y anyhook-mcp
Get an API key from https://anyhook.net/dashboard/settings. Keys start with ahk_live_.
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": { "anyhook": { "command": "npx", "args": ["-y", "anyhook-mcp"], "env": { "ANYHOOK_API_KEY": "ahk_live_xxxxxxxx" } } } }
Restart Claude Desktop. The tools appear under the hammer icon.
Open Settings → MCP → Add new MCP server. Or edit ~/.cursor/mcp.json:
{
"mcpServers": { "anyhook": { "command": "npx", "args": ["-y", "anyhook-mcp"], "env": { "ANYHOOK_API_KEY": "ahk_live_xxxxxxxx" } } } }
claude mcp add anyhook -e ANYHOOK_API_KEY=ahk_live_xxxxxxxx -- npx -y anyhook-mcp
Or add the same mcpServers entry to your project's .mcp.json.
The same server is hosted at https://anyhook.net/mcp (streamable HTTP, stateless). Claude Code, claude.ai, Codex and VS Code sign in through the browser (OAuth), no key to copy: https://anyhook.net/mcp has the steps for each. Any other client sends Authorization: Bearer ahk_live_... with a key from the dashboard:
{ "mcpServers": { "anyhook": { "url": "https://anyhook.net/mcp", "headers": { "Authorization": "Bearer ahk_live_..." } } } }
The endpoint has no anyhook_quickstart: that tool exists only in local mode.
Skip the env var:
{
"mcpServers": { "anyhook": { "command": "npx", "args": ["-y", "anyhook-mcp"] } } }
The agent gets anyhook_mock, anyhook_verify, anyhook_providers, anyhook_simulate, anyhook_events (against memory store), and anyhook_inspect (against memory store). Useful for "generate me a signed Stripe payment_intent.succeeded and POST it to localhost:3000" flows during local dev.
Triage a failing endpoint:
"Show me undelivered events for the
stripe-prodapp from the last hour, then replay them."
The agent calls anyhook_undelivered then anyhook_replay for each, surfacing the responses inline.
Create an app for a new integration:
"Make a new AnyHook app called
replicate-video-jobs, sourcegeneric, point it athttps://my-app.vercel.app/api/replicate-callback."
Calls anyhook_apps_create, returns the inbound URL you paste into Replicate.
Sanity-check a signature failure:
"Here's an inbound payload from Stripe that AnyHook is rejecting. Verify the signature manually with secret
whsec_xxx."
Calls anyhook_verify with the supplied headers + body + secret, returns valid: false plus the failure reason.
Mock a webhook for local testing:
"Generate a Stripe
payment_intent.succeededevent and POST it to http://localhost:3000/api/webhooks/stripe."
Calls anyhook_mock with targetUrl set; returns the request that was sent + your handler's response.
| Var | Required | Default | Purpose |
|---|---|---|---|
ANYHOOK_API_KEY | for remote mode | - | ahk_live_* from https://anyhook.net/dashboard/settings |
ANYHOOK_API_BASE | no | https://anyhook.net | Override for self-hosted AnyHook deployments |
AI agents have been blind to their own webhook infrastructure. They can write the integration code, but once an event misbehaves in production they can't see it, you tell them what happened. With this MCP server, Claude / Cursor can read the actual event log, replay deliveries, debug signature failures, and even spin up new apps. It closes the loop between writing webhook code and operating it.
Apache-2.0 © AnyHook