Claude MCP Approval Server について
Claude MCP Approval Serverは、Claude Codeの利用者向けに、機密性の高いツール操作の実行前にWhatsAppで承認を求めます。FastMCPとTwilioを使用し、リクエストを記録して5分後に期限切れにします。
主な機能
- 01WhatsAppでツール操作の承認を依頼
- 02承認・拒否のクイック返信ボタン
- 03リクエストは5分後に期限切れ
- 04設定した電話番号からの返信のみ受付
- 05SQLiteで承認履歴を記録
活用シーン
- 01Claude Codeのコマンドを遠隔で確認
- 02機密性の高いツール操作の前に同意を取得
MCP 対応
このMCPサーバーは、ツール操作の実行前にClaudeが呼び出すpermissions__approveツールを提供します。承認リクエストをWhatsAppに送り、返信に応じて処理の続行可否を決めます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Claude MCP Approval Server

機密性の高い可能性があるコマンドを実行する前に、WhatsApp 経由で承認プロンプトを送信する Model Context Protocol(MCP)サーバーです。FastMCP と Twilio を使用して構築されています。
機能
- 🔐 権限プロンプト:ツールの実行をインターセプトし、WhatsApp 経由で承認を要求します
- 📱 WhatsApp 連携:Twilio を使用して、クイック返信ボタン付きの承認リクエストを送信します
- ⚡ FastMCP:Claude と簡単に連携できるよう、FastMCP 上に構築されています
- 🎯 スマートな書式設定:コマンドと理由を読みやすく整形します
- ⏱️ 自動有効期限:セキュリティのため、リクエストは 5 分後に有効期限が切れます
- 💾 データベースによる追跡:承認リクエストを追跡する SQLite データベース
セットアップ手順
1. 依存関係をインストールする
uv install
2. Twilio アカウントをセットアップする
- Twilio にサインアップする:https://www.twilio.com
- WhatsApp メッセージを試す:https://console.twilio.com/us1/develop/sms/try-it-out/whatsapp-learn にアクセスし、セットアップガイドに従って次の操作を行います:
- Twilio の番号にメッセージを送信して WhatsApp Sandbox に参加する
- お使いのデバイスからメッセージの送受信をテストする
- Sandbox の WhatsApp 番号を控える(例:
whatsapp:+14155238886)
3. Twilio の認証情報を取得する
- Twilio Console のダッシュボードからアカウント SIDを取得する
- https://console.twilio.com/us1/account/keys-credentials/api-keys で認証トークンを生成する
- 「Create API Key」をクリックする
- SIDとシークレット(これが認証トークンです)を控える
4. 環境を設定する
cp .env.example .env
認証情報を .env に記入します:
TWILIO_ACCOUNT_SID=your_account_sid_here
TWILIO_AUTH_TOKEN=your_auth_token_here
TWILIO_WHATSAPP_FROM=whatsapp:+14155238886 # Your sandbox number
APPROVAL_PHONE=+1234567890 # YOUR phone number (without whatsapp: prefix)
SERVER_PORT=8000 # Optional: Server port (defaults to 8000)
重要:+1234567890 を、WhatsApp Sandbox への参加に使用した実際の電話番号に置き換えてください。承認リクエストはこの番号に送信されます。
5. WhatsApp テンプレートを作成する
python setup_template.py
これにより Twilio テンプレートが自動的に作成され、テンプレート SID で .env ファイルが更新されます。
6. サーバーを公開する
ngrok または Tailscale を使用して、ローカルサーバーを公開します:
オプション A:ngrok
ngrok http 8000 # Replace 8000 with your SERVER_PORT if different
オプション B:Tailscale
tailscale funnel --bg 8000 # Replace 8000 with your SERVER_PORT if different
公開 URL を控えてください(例:https://abc123.ngrok.io または https://hostname.tail12345.ts.net)
7. Twilio Webhook を設定する
- Try WhatsApp ページに戻ります:https://console.twilio.com/us1/develop/sms/try-it-out/whatsapp-learn
- Sandbox Settings をクリックします
- 両方の Webhook URL を次のように設定します:
https://your-public-url/twilio-webhook- When a message comes in:
https://your-public-url/twilio-webhook - Status callback URL:
https://your-public-url/twilio-webhook
- When a message comes in:
8. 承認サーバーを起動する
重要:Claude を実行する前にサーバーを起動してください!
uv run approval_server.py
サーバーには次の内容が表示されます:
- ✅ Twilio が設定済み
- 🌐 サーバーエンドポイントの一覧
- Webhook URL の準備完了
9. 権限プロンプト付きで Claude を実行する
claude --mcp-config mcp-servers.json \
--mcp-debug \
--permission-prompt-tool mcp__approval-server__permissions__approve \
--verbose \
--debug \
--output-format stream-json \
-p "your prompt here"
10. どこからでも承認/拒否できます!🎉
Claude がコマンドを実行しようとすると、✅ Approve ボタンと ❌ Deny ボタンが付いた WhatsApp メッセージが届きます。世界中どこからでもタップして応答できます!
重要な注意事項
⚠️ ネットワークアクセス:-p(プロンプト)モードではネットワークにアクセスできません
⚠️ 対話モード:非対話モード(-p なし)では --permission-prompt-tool は使用されません
MCP の設定
MCP の設定は mcp-servers.json にあります。
別のポートを使用する場合は、8000 を SERVER_PORT に置き換えてください。
動作の仕組み
- ツールのインターセプト:Claude がツールを実行しようとすると、まず
permissions__approve関数が呼び出されます - WhatsApp 通知:書式設定されたコマンドの詳細を含む承認リクエストが WhatsApp に送信されます
- ユーザーの応答:クイック返信ボタンを使って承認または拒否できます
- 実行:応答に応じて、Claude は続行するか処理を停止します
メッセージ形式
Bash コマンド:
🔔 Approval Request
Execute command: `ls -la /etc`
*Reason:* List system configuration files
*Request ID:* abc123
⏱️ Expires in 5 minutes
その他のツール:
🔔 Approval Request
*Tool:* WebFetch
• url: https://example.com
• prompt: Extract title
*Request ID:* abc123
⏱️ Expires in 5 minutes
テンプレートのカスタマイズ
WhatsApp のメッセージ形式やボタンを変更するには、次の手順に従います。
template_config.jsonを編集しますpython setup_template.pyを実行して、新しいテンプレートを作成します- スクリプトによって、新しい SID が
.envファイルに反映されます
セキュリティと機能
- ⏱️ 自動有効期限:リクエストは 5 分後に期限切れになります
- 🔒 電話番号の確認:設定した電話番号からの応答のみ受け付けます
- 📊 監査証跡:データベースに追跡用のリクエスト履歴が保存されます
- 🔐 E2E 暗号化:WhatsApp のメッセージはエンドツーエンドで暗号化されます
- 🌍 どこからでもアクセス可能:WhatsApp を使って、どこからでも承認または拒否できます
クレジット
権限確認プロンプトツールを使用して MCP サーバーを利用する実用的な例を提供してくれた https://github.com/mmarcen/test_permission-prompt-tool に感謝します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。