hookshelf-mcp
hookshelf-mcp
Дайте вашему кодирующему агенту настоящую вебхук-точку. MCP-сервер, который позволяет Claude Code, Cursor и любому MCP-клиенту получать вебхуки, просматривать точные байты, которые пришли, отправлять корректно подписанные тестовые события для 7 провайдеров и воспроизводить любую доставку — на основе локального экземпляра hookshelf, так что полезные данные никогда не покидают вашу машину.
Проблема
Попросите агента «интегрировать вебхуки Stripe» — и он напишет обработчик вслепую. Он не может получить доставку, поэтому не видит, что Stripe на самом деле отправляет, не может проверить свою проверку подписи на реальных байтах и не может узнать, сработало ли его исправление. Обычный ответ — публичный туннель и клики по панели провайдера — это именно та часть, которую агент не может выполнить.
С этим сервером агент сам замыкает цикл:
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 storedНаписать обработчик → отправить подписанное событие → прочитать, что пришло → исправить → воспроизвести. Никакого стороннего сервиса, туннеля или панели.
Related MCP server: hookray-mcp
Инструменты
Инструмент | Что делает |
| Новая конечная точка с её входящим URL. Опционально провайдер+секрет для проверки подписи, опционально URL для пересылки. |
| Отправляет вебхук с действительной подписью для провайдера конечной точки: |
| Блокируется, пока не придёт новая доставка — «триггер, ожидание, проверка» без цикла опроса. |
| Одна доставка целиком: заголовки как получены, точное тело (UTF-8 или base64), результат проверки, попытки пересылки. |
| Как и следует из названий. |
| Ставит сохранённую доставку в очередь снова, байт в байт, указывая на исходную. |
Twilio — только для проверки: он подписывает публичный URL запроса, а не тело, поэтому только реальный провайдер может создать действительную подпись.
Настройка
Две части: hookshelf (хранит доставки) и этот сервер (даёт агенту руки).
# 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 в вашем проекте (или 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 и Claude Desktop принимают тот же блок command/args/env в своих настройках MCP. HOOKSHELF_URL по умолчанию — http://127.0.0.1:3000.
Пока не на npm — npx hookshelf-mcp заработает, когда будет опубликован; этот README сообщит об этом, когда это произойдёт, а не раньше.
Полезные заметки
Подписи генерируются из тех же спецификаций, которые webhook-kit проверяет, и каждая из них проходит сквозное тестирование через реальный верификатор webhook-kit — генерация и проверка могут разойтись только в том случае, если тесты сломаются.
Секреты хранятся только в памяти. hookshelf хранит секреты только для записи, поэтому
send_test_eventработает для конечных точек, созданных в текущем сеансе; для всего остального сервер говорит об этом, а не угадывает.Отклонённая доставка всё равно сохраняется. Это определяющее поведение hookshelf: вы не можете отладить запрос, который выбросили. Инструмент возвращает идентификатор доставки в любом случае, и агент может проверить, что именно не удалось.
Схемы с метками времени подписывают в Unix-секундах, а не в миллисекундах — метка времени в миллисекундах создаёт «действительную» подпись, которая не проходит проверку свежести, а это та ошибка, для выявления которой и существует этот пакет.
На hookshelf нет аутентификации: держите его привязанным к loopback (его compose-файл уже это делает).
Разработка
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 typecheckМодульные тесты запускают сервер через реального MCP-клиента по транспорту в памяти, против фейкового hookshelf, ответы которого скопированы из реальных обработчиков — а затем e2e-прогон проверяет копии на реальности. Это уже поймало одно расхождение: фейк дедуплицировал доставки на конечных точках только для захвата, а реальный hookshelf дедуплицирует только при пересылке (иначе нечего защищать ниже по потоку).
Лицензия
MIT — см. 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