hookshelf-mcp
hookshelf-mcp
Dale a tu agente de codificación un endpoint de webhook real. Un servidor MCP que permite a Claude Code, Cursor y a cualquier cliente MCP recibir webhooks, inspeccionar los bytes exactos que llegan, enviar eventos de prueba correctamente firmados para 7 proveedores y reproducir cualquier entrega — respaldado por una instancia local de hookshelf, de modo que los payloads nunca salen de tu máquina.
El problema
Pídele a un agente que «integra los webhooks de Stripe» y escribirá el manejador a ciegas. No puede recibir una entrega, así que no puede ver lo que Stripe envía realmente, no puede comprobar su verificación de firmas contra bytes reales ni descubrir si su corrección ha funcionado. La respuesta habitual — un túnel público y clics en el panel del proveedor — es exactamente lo que un agente no puede hacer.
Con este servidor, el agente cierra el bucle por sí mismo:
agent: create_endpoint(name: "stripe-dev", provider: "stripe", secret: "whsec_...")
→ http://127.0.0.1:3000/in/f4080sjvz3v6tfd5
agent: send_test_event(endpoint_id: "f4080...") # signed like the real thing
→ { received: true, delivery: "a698af65..." }
agent: get_delivery(delivery_id: "a698af65...")
→ headers as received, exact body, verification: "ok"
agent: send_test_event(endpoint_id: "f4080...", tamper: true)
→ { error: "invalid_signature", delivery: "eb7c9d8e..." } # failure path, also storedEscribir el manejador → enviar el evento firmado → leer lo que llegó → corrigir → reproducir. Sin servicios de terceros, sin túnel, sin panel.
Related MCP server: hookray-mcp
Herramientas
Herramienta | Para qué sirve |
| Crea un endpoint nuevo con su URL entrante. Opcionalmente, provider+secret para verificar la firma y una URL de reenvío. |
| Envía un webhook con una firma válida para el proveedor del endpoint: |
| Se bloquea hasta que llega una nueva entrega: «lanza, espera, inspecciona», sin bucle de sondeo. |
| Una entrega completa: cabeceras tal como se recibieron, cuerpo exacto (UTF-8 o base64), resultado de la verificación e intentos de reenvío. |
| Hacen exactamente lo que indican sus nombres. |
| Vuelve a poner en cola una entrega guardada, byte por byte, apuntando de nuevo al original. |
Twilio es solo de verificación: firma la URL pública de la petición en lugar del cuerpo, por lo que únicamente el proveedor real puede generar una firma válida.
Configuración
Dos piezas: hookshelf (guarda las entregas) y este servidor (que hace las veces de manos del agente).
# 1. hookshelf
git clone https://github.com/vinkurov/hookshelf.git && cd hookshelf
docker compose up -d # dashboard on http://127.0.0.1:3000
# 2. this server
git clone https://github.com/vinkurov/hookshelf-mcp.git && cd hookshelf-mcp
npm install && npm run buildClaude Code — .mcp.json en tu proyecto (o claude mcp add):
{
"mcpServers": {
"hookshelf": {
"command": "node",
"args": ["/path/to/hookshelf-mcp/dist/main.js"],
"env": { "HOOKSHELF_URL": "http://127.0.0.1:3000" }
}
}
}Cursor y Claude Desktop aceptan el mismo bloque command/args/env en sus ajustes de MCP. HOOKSHELF_URL usa por defecto http://127.0.0.1:3000.
Todavía no está en npm: npx hookshelf-mcp funcionará cuando se publique; este README lo dirá cuando ocurra, y no antes.
Notas que conviene saber
Las firmas se generan a partir de las mismas especificaciones con las que verifica webhook-kit, y todas se prueban de ida y vuelta con el verificador real de webhook-kit; la generación y la verificación solo pueden divorciar si se rompen las pruebas.
Los secretos solo viven en memoria. hookshelf guarda los secretos en modo de solo escritura, así que
send_test_eventfunciona para endpoints creados en la sesión actual; en cualquier otro caso, el servidor lo dice en lugar de suponer.Una entrega rechazada se guarda igualmente. Ese es el comportamiento que define a hookshelf: no puedes dep urar una petición que has tirado. La herramienta devuelve el id de la entrega de todos modos, y el agente puede inspeccionar exactamente lo que falló.
Los esquemas con marca temporal firma con segundos Unix, no milisegundos: una marca temporal en milisegundos produce una firma «válida» que falla la comprobación de frescura, que es el tipo de fallo que este paquete existe para cazar.
Sin autenticación en hookshelf: mantenlo vinculado al loopback (su archivo compose ya lo hace).
Desarrollo
npm test # 37 tests: every signature round-trips through webhook-kit's verifier
npm run test:e2e # 11 checks against a real hookshelf instance
npm run lint && npm run typecheckEn las pruebas unitarias se conduce el servidor a través de un cliente MCP real sobre un transporte en memoria, contra un hookshelf falso cuyas respuestas se han copiado de los manejadores reales; la ejecución e2e comprueba después esas copias contra la realidad. Ya ha detectado una migración: el falso deduplicaba el entregue en endpoints de solo captura, mientras que el hookshelf real solo deduplica cuando hay reenvío (no habría nada aguas abajo que proteger en caso contrario).
Licencia
MIT — ver LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables generating webhook endpoints for testing, inspecting and comparing HTTP request payloads, replaying requests from history, and forwarding requests to localhost.2MIT
- AlicenseAqualityDmaintenanceEnables AI agents to create disposable webhook URLs, capture incoming HTTP requests, inspect headers and bodies, and replay them against local or remote endpoints, streamlining the webhook handler development loop.513MIT
- FlicenseNot gradedqualityAmaintenanceWebhook management and debugging. Validate signatures, log events, replay, and analyze webhook traffic.

RequestBin MCP Serverofficial
AlicenseAqualityDmaintenanceEnables AI coding agents to create webhook bins, inspect and replay HTTP requests, and stand up mock API endpoints directly from the editor.1313MIT
Related MCP Connectors
A webhook inbox for agents: one call returns a live URL. Mock, verify, inspect and replay.
Fire-and-forget webhooks for agents with guaranteed, retried delivery and status polling. x402
Agent-first hosting: create apps, commit code, deploy, get HTTPS URLs. OAuth sign-in, no tokens.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/vinkurov/hookshelf-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server