Nahook Mcp について
Nahook Mcpはnahook CLIのサブコマンドとして提供される、Nahook公式のMCPサーバーです。AIアシスタントからWebhookのエンドポイント、配信、イベントを確認・管理でき、ペイロード制限や書き込み時の承認ヒントを備えています。
主な機能
- 01エンドポイント、配信、試行を確認
- 02失敗またはデッドレター配信を再試行
- 03エンドポイントの作成、更新、一時停止、再開
- 04イベントの発火またはWebhookの送信
- 05信頼できない内容を隔離しペイロードを制限
- 06書き込みツールに承認ヒントを付与
活用シーン
- 01失敗したWebhook配信を調査
- 02失敗またはデッドレター配信を再試行
- 03購読エンドポイント向けにイベントを発火
- 04エンドポイントを確認して設定を調整
MCP 対応
MCPサーバーはnahook CLIのサブコマンドとして動作し、エンドポイント、環境、配信、試行の照会に加え、管理、再試行、Webhook送信のツールを提供します。書き込みツールには承認ヒントが付き、送信には別途ingestion keyが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
nahook-mcp
Nahook の公式 Model Context Protocol サーバーです。Claude Desktop、Cursor、Cline、その他あらゆる MCP 互換 AI アシスタントから、Webhook の配信、エンドポイント、イベントトリガーを操作できます。
MCP サーバーは
nahookCLI のサブコマンドとして提供されます。バイナリは 1 つ、認証情報ファイルは 1 つ、インストール先は 1 か所です。
できること
インストールして認証すると、AI アシスタントで次の操作ができます。
- 確認: エンドポイント、配信、試行ごとのログを調べて、失敗した Webhook をデバッグできます。
- 再試行: 失敗した配信やデッドレターになった配信を再試行できます。
- トリガー: イベントをトリガーし、購読しているすべてのエンドポイントに配信できます。
- 送信: 1 つのエンドポイントに Webhook を直接送信できます。
- 管理: エンドポイントの作成、更新、一時停止、再開ができます。設計上、削除はできません。
書き込み操作には MCP の destructiveHint/readOnlyHint アノテーションが付与されているため、MCP クライアントでは状態を変更する前に、呼び出しごとに人間の承認を求めるプロンプトが表示されます。
セキュリティ対策
Webhook のペイロードはサードパーティのデータであるため、サーバーはモデルのコンテキストに戻るすべてのデータを、潜在的なプロンプトインジェクション経路として扱います。
- 信頼できないコンテンツは囲みます。 モデルに渡される、送信元または受信側が作成したすべての値(Webhook ペイロード(
include_payloadを指定したget_delivery)、配信の冪等性キー、受信側のエラーメッセージ(list_attempts))は、明示的な<<<UNTRUSTED CONTENT ...>>>区切りで囲まれます。埋め込まれた区切りマーカーは無効化され、サーバーの指示により、モデルは囲まれたコンテンツを指示ではなく不活性なデータとして扱います。 - ペイロードには上限があります。 256 KB を超える本文は切り詰められます(
payload_truncatedで示されます)。これにより、悪意のある送信元がモデルのコンテキストに大量のデータを詰め込むことを防ぎます。上限は MCP クライアントの環境でNAHOOK_MCP_PAYLOAD_CAP=<bytes>を設定して調整できます。 - 設計上、削除ツールはありません。 ツールからデータを破棄することはできません。
update_endpointは破壊的操作としてマークされています。 ライブのエンドポイント設定を上書きする操作であり(URL の変更はプロンプトインジェクションが狙う基本操作です)、destructiveHintはtrueに設定され、クライアントに目立つ承認プロンプトが表示されます。- 書き込みツールは人間の承認を前提とします。 MCP 仕様では、アノテーションはアクセス制御ではなく参考情報です。セキュリティの境界となるのは、読み取り専用ではないすべてのツールに適用される、クライアントの呼び出しごとの承認プロンプトです。追加された書き込みツール(
create_endpoint、send_to_endpoint、trigger_event)には、仕様上の意味に従ってdestructiveHint: falseが付与されています。MCP クライアントでは人間の確認を有効にし、これらのツールを一律に許可しないでください。書き込みを確実に禁止するには、取り込みキーなしでサーバーを実行してください(送信が無効になります)。また、管理ツールには承認が必要なものとして扱ってください。 - シークレットがモデルに渡ることはありません。 エンドポイントの署名シークレットと認証トークンは、すべてのツール出力から除外されます。
whoamiが返すのはトークンの公開 ID のみです。 - 認証情報は分離されています。 送信(
trigger_event、send_to_endpoint)には別の取り込みキーが必要です。これを省略すると、サーバーは取り込み操作について管理専用/読み取り専用になります。
クライアント側の対策だけでプロンプトインジェクションを完全に防ぐことはできません。MCP クライアントのツール承認プロンプトと併用してください。
インストール
MCP サーバーは nahook CLI のサブコマンドです。CLI をインストールしてから、AI クライアントに追加してください。
1. CLI をインストールする
macOS / Linux(Homebrew):
brew install getnahook/tap/nahook
Linux / macOS(インストールスクリプト):
curl -fsSL https://cli.nahook.com/install.sh | sh
その他のインストール方法については、getnahook/nahook-cli を参照してください。
2. 一度ログインする
nahook login
ブラウザーが開き、デバイスグラント認証の手順が案内され、認証情報が ~/.nahook/config.toml に書き込まれます。
3. MCP サーバーを AI クライアントに接続する
Claude Desktop と Claude Code CLI:
claude mcp add nahook -- nahook mcp serve
Cursor — ~/.cursor/mcp.json を編集します:
{
"mcpServers": {
"nahook": {
"command": "nahook",
"args": ["mcp", "serve"]
}
}
}
Cline(VS Code) — Cline → 設定 → MCP サーバー → 追加:
{
"nahook": {
"command": "nahook",
"args": ["mcp", "serve"]
}
}
Zed — settings.json に追加します:
{
"assistant": {
"mcp_servers": {
"nahook": {
"command": "nahook",
"args": ["mcp", "serve"]
}
}
}
}
その他の MCP 互換クライアント(Continue、Windsurf、Goose、…)も同じ command + args 形式を使用します。
ツール
| ツール | 説明 |
|---|---|
whoami | ローカル設定の確認 — ワークスペース、リージョン、トークン ID、有効期限を確認します。 |
list_endpoints | 現在のワークスペースにあるすべてのエンドポイントを一覧表示します。 |
get_endpoint | ep_xxx で指定したエンドポイントを取得します。 |
create_endpoint | 新しいエンドポイントを作成します。デフォルトではワークスペースのデフォルト環境を使用します。production などのスラッグも指定できます。 |
update_endpoint | 部分更新 — 一時停止/再開、URL の変更、説明の更新を行います。 |
list_environments | ワークスペース内のすべての環境を一覧表示します。 |
list_deliveries | エンドポイントへの配信を新しい順にページ分割して取得します。 |
get_delivery | del_xxx で指定した配信を取得します。元の Webhook 本文も取得するには include_payload: true を渡します。デバッグに不可欠です。 |
list_attempts | 配信に対するすべての試行を一覧表示します(失敗のデバッグに役立ちます)。 |
retry_delivery | 失敗した、またはデッドレターになった配信を再キューイングします。 |
trigger_event | 種類を指定してイベントを発行します — バックエンドがすべてのサブスクライバーに配信します。 |
send_to_endpoint | 1 つのエンドポイントに Webhook を直接送信します。 |
認証モデル
MCP サーバーは、互いに独立した 2 種類の認証情報を使用します。
- CLI ログイントークン(
nhc_…)—nahook loginによって書き込まれます。エンドポイント/配信/環境に対する読み取りツールと管理操作に使用します。 - 取り込みキー(
nhk_…)— SDK で使用するものと同じキーです。trigger_eventとsend_to_endpointに使用します。MCP クライアントの環境でNAHOOK_INGESTION_KEY=nhk_...を設定するか、~/.nahook/config.tomlにingestion_key = "nhk_..."を追加してください。書き込みツールの呼び出し時に設定されていない場合、サーバーはエラーを明示して失敗します。
権限は、ワークスペースのロールに基づいてリクエストごとに評価されます。MCP トークンに付与される権限は、ダッシュボードでお持ちの権限と同じで、それ以上の権限はありません。
コードの場所
MCP サーバーの実装は、nahook CLI のソースツリーの一部です。このリポジトリは、README、MCP ディレクトリのエントリー、パッケージング用メタデータを提供するためのものです。保守が必要な別個のコードベースはありません。
バグ報告、ツールのリクエスト、コントリビューションをご希望の場合は、getnahook/nahook-cli にイシューを作成してください。
ライセンス
MIT — CLI と同じです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。