Webhook.site MCP Server について
Webhook.site MCP Serverは、MCPクライアントをwebhook.siteに接続し、HTTPリクエスト、メール、DNSコールバックを捕捉して確認できるようにします。リアルタイム待機、カスタム応答、イベントのエクスポート、許可を得たセキュリティテストにも対応します。
主な機能
- 01HTTP、メール、DNSの受信先を作成
- 02コールバックイベントの捕捉、検索、確認
- 03リクエストやメールの到着を待機
- 04テストリクエストの送信と動的応答の設定
- 05捕捉データをJSONまたはCSVでエクスポート
- 06許可を得たテスト向けのSSRF、XSS、カナリアペイロード生成
活用シーン
- 01Webhook配信とAPIコールバックをテスト
- 02認証メールやパスワードリセットメールを確認
- 03許可を得たセキュリティテストでDNSまたはHTTPコールバックを監視
- 04捕捉したリクエストデータを分析、エクスポート
MCP 対応
MCPサーバーはwebhook.siteの受信先やアカウント機能をツールとしてMCPクライアントに公開します。設定とAPIキーの権限に応じて、受信先の作成、イベントの確認、コールバックの待機、アカウント機能の管理ができます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Webhook.site MCP サーバー
webhook.site 用の Model Context Protocol(MCP)サーバーです。HTTP リクエスト、メール、DNS ルックアップをすぐにキャプチャできます。Webhook のテスト、API コールバックのデバッグ、セキュリティテスト、バグバウンティハンティングに最適です。
セキュリティ支援ツール(SSRF、XSS、カナリアトークン)は、許可されたテストのみに使用してください。対象は、ご自身が所有するシステム、またはテストする明示的な許可を得たシステムです。
目次
クイックスタート
インストール
# Using uvx (recommended - no install needed)
uvx webhook-mcp-server==3.0.0
# Or install via pip
pip install webhook-mcp-server==3.0.0
3.0.0 以降を使用してください。2.1.3 は MCP 2.0 では起動しません。3.0 では一部のツール名が変更されています(2.x からのアップグレードを参照)。
VS Code / GitHub Copilot
.vscode/mcp.json に追加します。
{
"servers": {
"webhook-mcp-server": {
"type": "stdio",
"command": "uvx",
"args": ["webhook-mcp-server==3.0.0"]
}
}
}
Cursor
プロジェクトの .cursor/mcp.json またはユーザー MCP 設定に追加します。
{
"mcpServers": {
"webhook-mcp-server": {
"command": "uvx",
"args": ["webhook-mcp-server==3.0.0"]
}
}
}
Claude Desktop
claude_desktop_config.json に追加します。
{
"mcpServers": {
"webhook-mcp-server": {
"command": "uvx",
"args": ["webhook-mcp-server==3.0.0"]
}
}
}
設定
すべての設定はサーバープロセスの環境変数です。MCP クライアント設定の env ブロックに記述してください。
| 変数 | 用途 |
|---|---|
WEBHOOK_SITE_API_KEY | webhook.site の API キーです。新しい URL を永続化し(ご利用プランの上限内)、list_webhooks、カスタムアクション、スケジュール、グローバル変数、グループ、キュープロファイル、テンプレート、データベース、ユーザー、CSV エクスポートを利用できるようにします |
WEBHOOK_SITE_DEFAULT_EXPIRY | 呼び出しで expiry が指定されていない場合に、新しい URL が期限切れになるまでの秒数です。未設定の場合、有料アカウントでは永続(匿名 URL は 7 日間)になります |
WEBHOOK_MCP_RATE_LIMIT_MAX_WAIT | webhook.site が Retry-After を付けて 429 を返した場合、この秒数(デフォルトは 15 秒)まで待機して一度だけ再試行します。それより長い待機時間の場合は、待機時間を示すエラーが報告されます |
FOLLOW_EMAIL_LINK_ALLOW_HOSTS | follow_email_link はパブリックインターネット上のホストへのリンクのみを開き、確認したアドレスに接続します(DNS リバインディングは発生しません)。ご自身のマシンやイントラネット上で登録フローをテストするには、許可する対象を列挙します:localhost,127.0.0.1,*.corp.example,10.0.0.0/8 |
HTTPS_PROXY / HTTP_PROXY / NO_PROXY | follow_email_link で使用されます。接続はプロキシが行うため、接続先は固定されず、リクエストの前にチェックされます |
SSL_CERT_FILE / SSL_CERT_DIR | 企業の TLS インターセプト用に、follow_email_link で使用するカスタム CA バンドルを指定します |
確認リンクへのリクエストが完了した後、許可されていない場所(ローカルの開発サーバーやイントラネットのダッシュボードなど)へリダイレクトされた場合、このツールは失敗として扱わず、そのリダイレクト先のステータスを、拒否された接続先とともに blocked_redirect に報告します。トークンを消費したリクエスト自体はすでに実行されており、サイトが確認済みとして扱ったかどうかは問いません。
できること
Webhook のキャプチャ
"Create a webhook and show me the URL"
"What requests have been sent to my webhook?"
"Wait for a request to come in"
セキュリティ/バグバウンティ:
"Generate an SSRF payload to test for blind vulnerabilities"
"Create XSS callback payloads to detect blind XSS attacks"
"Make me a canary token to detect if someone accesses a URL"
メールの自動化:
"Create a temp email and wait for a password reset link"
"Monitor this webhook for emails and extract all links from them"
"Give me 3 temporary emails at once" (batch creation)
API テスト:
"Create a webhook that returns a 404 error with a custom message"
"Make a webhook with CORS enabled that waits 5 seconds before responding"
"Send 10 different test requests to a webhook and show me all the captured data"
"Hold the next request and answer it with a 402 and this JSON body"
"Create a webhook and wait for any HTTP request to arrive"
"Monitor for DNS lookups to detect if a server is making DNS queries"
"Search all requests for ones containing 'password' in the body"
データ分析:
"Export all captured webhook requests to JSON format"
"Show me statistics on requests received in the last hour"
"Filter and show only POST requests with specific headers"
アカウントを使って自動化:
"Add a Custom Action that forwards every request to my staging API"
"Schedule a health check of https://example.com every 5 minutes and alert on a bad status"
"Write a WebhookScript that answers with the request's JSON field 'id'"
Canary Tokens
"Create a canary URL to track document access"
"Generate a DNS canary for the config file"
"Set up an email tracker pixel"
ツールリファレンス
匿名の7日間URLでは、アカウントなしですべての機能を利用できます。WEBHOOK_SITE_API_KEYを設定すると、URLが永続化され、アカウント用ツールでプランの機能を利用できるようになります。すべてのwebhook_tokenでは、UUID、エイリアス、貼り付けたhttps://webhook.site/... URL、または受信トレイのアドレスを使用できます。各ツールの全パラメーターについては、docs/TOOLS.mdを参照してください。
サーバーから生成された31個のツールです(scripts/gen_tool_docs.py)。
診断
| ツール | 説明 |
|---|---|
server_status | このサーバーの設定を確認します:API キー、アカウントへの接続状況、プラン、リアルタイムソケット、環境設定。 |
Webhook
| ツール | 説明 |
|---|---|
create_webhook | Webサイトへの登録に使える使い捨て受信トレイを作成します:HTTP URL、一時メール、DNS。 |
configure_webhook | カスタム設定でWebhookを作成するか、既存のWebhookを更新します(webhook_tokenを指定)。 |
get_webhook_info | Webhookの設定、有効期限、リクエスト数、すべてのアドレスを表示します。 |
get_webhook_email | 登録、認証、マジックリンク、またはパスワードリセットに使う一時受信トレイを返します。 |
list_webhooks | アカウント内のWebhook(URL/受信トレイ)を一覧表示します。WEBHOOK_SITE_API_KEYが必要です。 |
delete_webhook | Webhookと、キャプチャしたすべてのリクエスト/メールを完全に削除します。 |
リクエスト
| ツール | 説明 |
|---|---|
send_requests | テスト用に、1つのJSON本文(data)または複数の本文(payloads)をWebhook URLに送信します。 |
get_webhook_requests | Webhookのキャプチャ済みHTTP、メール、またはDNSイベントを1ページずつ一覧表示します。 |
search_requests | メソッド、本文テキスト、ヘッダー、タイプ、または日付でキャプチャ済みイベントを検索します。 |
get_request | キャプチャ済みイベントを1件返します。デフォルトでは最新のイベント、またはrequest_idで指定したイベントを返します。 |
update_request | キャプチャ済みリクエストにメモを追加するか、その動的レスポンスを設定します。 |
download_request_file | file_idを指定して、アップロードされたファイルまたはメールの添付ファイル(base64)をダウンロードします。 |
delete_request | リクエストIDを指定して、キャプチャ済みHTTP、メール、またはDNSイベントを1件削除します。 |
delete_all_requests | Webhookのキャプチャ済みイベントを、必要に応じて日付または検索クエリで絞り込んで削除します。 |
export_webhook_data | HTMLと省略されていない本文を含む、キャプチャ済みイベントの完全なデータをJSONまたはCSVでエクスポートします。 |
リアルタイム
| ツール | 説明 |
|---|---|
wait_for_request | 新しいHTTP(またはDNS)コールバックがWebhookに届くまで待機します(1~120秒)。 |
wait_for_email | 登録、認証、マジックリンク、またはパスワードリセットのメールが届くまで待機します(1~120秒)。 |
respond_to_next_request | Webhookに届く次のリクエストを保留し、独自のステータス、ヘッダー、本文で応答します。 |
follow_email_link | キャプチャ済みの登録メールに含まれる認証/マジックリンク/リセットURLを開きます。 |
アカウント機能(API キー)
| ツール | 内容 |
|---|---|
manage_custom_actions | 各リクエストの受信時、またはトークンにメールが届くたびに webhook.site が実行する Custom Actions を管理します。 |
manage_schedules | Schedules を管理します。webhook.site は一定間隔で request_url を呼び出します(API キーが必要です)。 |
manage_global_variables | すべての URL で共有され、Custom Actions や Schedules で $name$ として使用できる Global Variables を管理します。 |
manage_groups | アカウントの webhook を整理する Groups を管理します(API キーが必要です)。 |
manage_queues | キューに入った Custom Actions を調整する Queue Profiles を管理します(API キーが必要です)。 |
manage_templates | 再利用可能な Custom Actions のセットと定義済み変数を含む Templates を管理します(API キーが必要です)。 |
manage_databases | webhook.site Databases を管理し、SQL を実行します(API キーが必要です)。 |
manage_users | Enterprise アカウントのチームユーザーを管理します(管理者 API キーが必要です)。 |
セキュリティテスト
| ツール | 内容 |
|---|---|
generate_oob_payloads | この webhook に ping を送信する、許可されたアウトオブバンドペイロードを作成します。SSRF URL、XSS コールバック、またはカナリアトークンを生成できます。 |
check_for_callbacks | 過去 N 分間に SSRF、XSS、またはカナリアのコールバックが届いたか確認します。 |
extract_links_from_request | キャプチャしたメールまたは HTTP 本文から、確認、リセット、マジックリンクなどの URL を抽出します。 |
2.x からのアップグレード
| 2.x のツール | 3.0 の代替 |
|---|---|
create_webhook_with_config, update_webhook | configure_webhook(更新する場合は webhook_token を渡します) |
get_webhook_url, get_webhook_dns | get_webhook_info のフィールド |
get_latest_request | get_request |
send_to_webhook, send_multiple_requests | send_requests(data または payloads) |
generate_ssrf_payload, generate_xss_callback, generate_canary_token | generate_oob_payloads(kind=ssrf|xss|canary、canary_type) |
例
ウェブサイトに登録する
create_webhook—email({token}@emailhook.site)を取得します- そのアドレスをサイトで使用します(登録、確認、マジックリンク、またはパスワードのリセット)
wait_for_email— メッセージ、確認/ログイン/リセット URL、および OTP を受信しますfollow_email_linkで確認リンクを開くか、サイトでverification_codesを入力します
すでにトークンをお持ちの場合、get_webhook_email は同じ受信トレイを返します。
Webhook を作成する
// Response from create_webhook
{
"token": "abc123-def456-...",
"url": "https://webhook.site/abc123-def456-...",
"email": "[email protected]",
"dns": "abc123-def456-....dnshook.site"
}
パスワードリセットメールを待つ
// Response from wait_for_email
{
"email_received": true,
"subject": "Password Reset Request",
"from": "[email protected]",
"auth_links": ["https://example.com/reset?token=xyz789"],
"verification_codes": ["847291"]
}
ページングせずに新しいイベントをポーリングする
// get_webhook_requests(webhook_token, since=<next_since from the previous call>)
{
"requests": [ ... only what arrived after the cursor ... ],
"next_since": 1788472548944304
}
SSRF テスト用ペイロード
// Response from generate_oob_payloads(kind="ssrf")
{
"payloads": {
"http": "https://webhook.site/token?id=ssrf-test",
"dns": "ssrf-test.token.dnshook.site",
"ip_decimal": "http://2130706433/token",
"ip_hex": "http://0x7f000001/token"
}
}
各 Webhook トークンで利用できるもの
| エンドポイント | 形式 | 用途 |
|---|---|---|
| HTTP URL | https://webhook.site/{token} | HTTP/HTTPS リクエストをキャプチャします(任意のサブパスも対象) |
| サブドメイン | https://{token}.webhook.site | 代替の URL 形式 |
| ステータスの指定 | https://webhook.site/{token}/{status} | 指定したステータスで応答します。再試行ロジックのテストに使用します |
| メール | {token}@emailhook.site | 受信メールをキャプチャします |
| DNS | {token}.dnshook.site | DNS ルックアップをキャプチャします(すべてのサブドメイン) |
ドキュメント
| ページ | 内容 |
|---|---|
| docs/TOOLS.md | サーバーから生成された、パラメーターとヒントを含む全ツールの一覧 |
| docs/webhook-site-notes.md | webhook.site の実際の動作をライブ環境で検証した内容。公式ドキュメントの誤りも含みます |
| docs/testing.md | 4 つのテストレイヤー、記録、検証スクリプト、モデル評価、アカウントの安全性 |
| docs/releasing.md | バージョンの更新、タグ付け、公開ワークフロー |
| CHANGELOG.md | バージョン履歴 |
開発
git clone https://github.com/zebbern/webhook-mcp-server.git
cd webhook-mcp-server
pip install -e ".[dev]"
pytest -m "not live and not live_auth" # offline suite incl. replay of recorded live exchanges
python server.py # run the server on stdio
オフラインテストスイートでは、実際に記録された webhook.site のやり取りを再生します。ライブツールチェックと live / live_auth ティアでは、実際の API にアクセスします。詳細はdocs/testing.mdをご覧ください。
構成:server.py(エントリーポイントとライフスパン)、handlers/tools.py(ツールの登録)、services/(API 領域ごとのモジュール)、utils/(HTTP クライアント、リアルタイムソケット、URL の安全性、参照)、scripts/(ライブチェック、ジェネレーター、検証ツール)、evals/(モデルを組み込んだプロンプト)。
要件
- Python 3.10+
mcp >= 2.0.0httpx >= 0.26.0、httpcore >= 1.0.0、anyio >= 4.0.0python-socketio[asyncio_client] >= 5.11.0(リアルタイムの待機に使用。これがない場合、ツールはポーリングにフォールバックします)
コントリビューション
バグ報告や PR を歓迎します。PR には変更を 1 つだけ含め、実際の API に照らして期待値を確認したテストを追加し(docs/testing.mdを参照)、ツールに変更を加えた後は python scripts/gen_tool_docs.py を実行してください。
クレジット
このプロジェクトは webhook.site とは提携しておらず、webhook.site による承認も受けていません。
リンク
- 📦 PyPI パッケージ
- 🐙 GitHub リポジトリ
- 🌐 webhook.site - この MCP がラップするサービス
- 📖 Model Context Protocol - MCP の仕様
MCP コミュニティのために ❤️ を込めて作成
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。