Are you the author? Sign in to claim
The official Model Context Protocol server for Nahook — trigger webhooks, inspect deliveries, and debug failures from Cl
The official Model Context Protocol server for Nahook — drive webhook deliveries, endpoints, and event triggers from Claude Desktop, Cursor, Cline, and any other MCP-compatible AI assistant.
The MCP server ships as a subcommand of the
nahookCLI. One binary, one credentials file, one install path.
Once installed and authenticated, your AI assistant can:
Write operations are tagged with the MCP destructiveHint/readOnlyHint annotations so MCP clients surface a per-call human-approval prompt before anything mutates state.
The MCP server is a subcommand of the nahook CLI. Install the CLI, then add it to your AI client.
macOS / Linux (Homebrew):
brew install getnahook/tap/nahook
Linux / macOS (install script):
curl -fsSL https://cli.nahook.com/install.sh | sh
See getnahook/nahook-cli for other install options.
nahook login
This opens your browser, walks you through device-grant authentication, and writes credentials to ~/.nahook/config.toml.
Claude Desktop & Claude Code CLI:
claude mcp add nahook -- nahook mcp serve
Cursor — edit ~/.cursor/mcp.json:
{
"mcpServers": {
"nahook": {
"command": "nahook",
"args": ["mcp", "serve"]
}
}
}
Cline (VS Code) — Cline → Settings → MCP Servers → add:
{
"nahook": {
"command": "nahook",
"args": ["mcp", "serve"]
}
}
Zed — add to settings.json:
{
"assistant": {
"mcp_servers": {
"nahook": {
"command": "nahook",
"args": ["mcp", "serve"]
}
}
}
}
Other MCP-compatible clients (Continue, Windsurf, Goose, …) follow the same command + args shape.
| Tool | What it does |
|---|---|
whoami | Local config sanity check — workspace, region, token id, expiry. |
list_endpoints | List every endpoint in the current workspace. |
get_endpoint | Fetch one endpoint by ep_xxx. |
create_endpoint | Create a new endpoint. Defaults to the workspace's default environment; also accepts slugs like production. |
update_endpoint | Partial patch — pause/resume, change URL, update description. |
list_environments | List every environment in the workspace. |
list_deliveries | Page through an endpoint's deliveries, newest-first. |
get_delivery | Fetch one delivery by del_xxx. Pass include_payload: true to also fetch the original webhook body — critical for debugging. |
list_attempts | List every attempt against a delivery (useful for debugging failures). |
retry_delivery | Re-enqueue a failed or dead-lettered delivery. |
trigger_event | Fire an event by type — the backend fans it out to every subscriber. |
send_to_endpoint | Send a webhook directly to one endpoint. |
The MCP server uses two separate credentials:
nhc_…) — written by nahook login. Powers read tools and management operations on endpoints / deliveries / environments.nhk_…) — the same key your SDKs use. Powers trigger_event and send_to_endpoint. Set it via NAHOOK_INGESTION_KEY=nhk_... in the MCP client's environment, or add ingestion_key = "nhk_..." to ~/.nahook/config.toml. The server fails loudly if a write tool is called without one configured.Permissions are evaluated per request against your workspace role — the MCP token has exactly the permissions you have in the dashboard, nothing more.
The MCP server implementation is part of the nahook CLI source tree. This repo exists as a discoverability surface — README, MCP directory entries, and packaging metadata. There is no separate codebase to maintain.
If you want to file a bug, request a tool, or contribute: please open the issue at getnahook/nahook-cli.
MIT — same as the CLI.
Run analytics queries on ClickHouse — explore schemas, execute SQL, fetch results
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
Google's universal MCP server supporting PostgreSQL, MySQL, MongoDB, Redis, and 10+ databases