HTTPX_MCP について
HTTPX MCPはhttpxライブラリを使い、AIクライアントからHTTPインターフェースをテストするツールです。一般的なリクエストメソッドやキャプチャしたリクエストの再送に対応し、応答の詳細を表示します。非公開ネットワークへのアクセスは既定で制限されます。
主な機能
- 017種類のHTTPメソッド
- 02JSON、フォーム、テキスト本文
- 03カスタムヘッダーとクエリパラメーター
- 04キャプチャしたリクエストの再送
- 05ステータス、ヘッダー、本文、所要時間の表示
- 06非公開ネットワークへの接続を既定でブロック
活用シーン
- 01REST APIエンドポイントのテスト
- 02デバッグ時のHTTP応答確認
- 03セキュリティテスト用のカスタムリクエスト送信
- 04Burp Suiteで取得したリクエストの再送
MCP 対応
`http_request`と`http_raw`のMCPツールを公開し、HTTPリクエストの送信と生リクエストテキストの再送を行います。非公開ネットワーク宛てのリクエストは既定でブロックされます。
詳細
HTTPX MCP
AI 向けに設計された、httpx ライブラリを基盤とする HTTP インターフェーステスト用 MCP ツールです。
特長
- 🚀 すべての HTTP メソッドに対応:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS
- 📝 複数のリクエスト形式:JSON、フォームデータ、プレーンテキスト
- 🔧 カスタムヘッダー:任意の HTTP ヘッダーに対応
- 📋 生リクエストの解析:Burp Suite でキャプチャしたリクエストを直接貼り付けられます
- ⏱️ レスポンスの詳細情報:ステータスコード、レスポンスヘッダー、レスポンス本文、所要時間の統計情報
- 🔒 SSL の制御:SSL 証明書の検証は任意です
インストール
cd httpx-mcp
pip install -e .
または
pip install httpx-mcp
MCP の設定
MCP 設定ファイルに追加します。
{
"mcpServers": {
"httpx-mcp": {
"command": "python",
"args": ["-m", "httpx_mcp.server"],
"cwd": "c:/Users/ZHEFOX/Desktop/mcptools/httpx-mcp"
}
}
}
または、インストール後に直接使用します。
{
"mcpServers": {
"httpx-mcp": {
"command": "httpx-mcp"
}
}
}
セキュリティ
httpx-mcp は、MCP サーバーが実行されているマシンから外部への HTTP リクエストを送信できます。LLM の出力やプロンプトインジェクションの影響を受けてツール呼び出しが行われる場合の SSRF リスクを軽減するため、デフォルトではパブリックネットワーク以外のアドレスへのリクエストをブロックします。これには、localhost/ループバック、プライベート RFC1918 範囲、クラウドのメタデータエンドポイントなどのリンクローカルアドレス、IPv6 のユニークローカルアドレス、その他のグローバルにルーティングできない宛先が含まれます。リダイレクト先は、リダイレクトされたリクエストごとに検証されます。
内部ネットワークへのアクセスが意図的に必要な、信頼できる隔離済みのセキュリティテスト環境では、MCP サーバーの環境で HTTPX_MCP_ALLOW_PRIVATE_NETWORK=true を設定してください。
{
"mcpServers": {
"httpx-mcp": {
"command": "httpx-mcp",
"env": {
"HTTPX_MCP_ALLOW_PRIVATE_NETWORK": "true"
}
}
}
}
このツールが、MCP サーバープロセスからアクセスできるあらゆる HTTP(S) エンドポイントに到達できるようになることを理解したうえで、このオプションを有効にしてください。
利用可能なツール
1. http_request - 一般的な HTTP リクエスト
任意の HTTP リクエストを送信します。method パラメーターでリクエストメソッドを切り替えます。
パラメーター:
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
url | string | ✅ | - | 完全な URL |
method | string | - | GET | HTTP メソッド:GET/POST/PUT/DELETE/PATCH/HEAD/OPTIONS |
params | string | - | - | URL クエリパラメーター。JSON または key=value 形式 |
headers | string | - | - | リクエストヘッダー。JSON 形式 |
body | string | - | - | リクエスト本文 |
content_type | string | - | application/json | Content-Type |
timeout | number | - | 30 | タイムアウト時間(秒) |
follow_redirects | boolean | - | true | リダイレクトを追跡するかどうか |
verify_ssl | boolean | - | true | SSL を検証するかどうか |
include_headers | boolean | - | true | レスポンスにヘッダーを含めるかどうか |
例:
# GET request
method="GET", url="https://httpbin.org/get"
# GET with query parameters
method="GET", url="https://httpbin.org/get", params='{"page": "1", "size": "10"}'
# POST JSON
method="POST", url="https://httpbin.org/post", body='{"name": "test", "value": 123}'
# PUT update
method="PUT", url="https://httpbin.org/put", body='{"id": 1, "name": "updated"}'
# DELETE
method="DELETE", url="https://httpbin.org/delete"
# With authentication header
method="GET", url="https://api.example.com/users", headers='{"Authorization": "Bearer token123"}'
# POST form
method="POST", url="https://httpbin.org/post", body="username=admin&password=123", content_type="application/x-www-form-urlencoded"
# Disable SSL verification
method="GET", url="https://self-signed.example.com", verify_ssl=false
2. http_raw - 生 HTTP リクエスト
Burp Suite などのツールでキャプチャした生の HTTP リクエストを直接解析します。
パラメーター:
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
raw_request | string | ✅ | - | 生の HTTP リクエストテキスト |
base_url | string | - | - | ベース URL(リクエストに完全な URL が含まれていない場合) |
verify_ssl | boolean | - | true | SSL を検証するかどうか |
例:
raw_request="""
POST /api/login HTTP/1.1
Host: example.com
Content-Type: application/json
Cookie: session=abc123
{"username":"admin","password":"123456"}
"""
base_url="https://example.com"
レスポンス形式
このツールは、整形されたレスポンス情報を返します。
HTTP/1.1 200 OK
=== Response Headers ===
content-type: application/json
date: Mon, 01 Jan 2024 00:00:00 GMT
...
=== Response Body ===
{
"result": "success",
"data": {...}
}
=== Request Info ===
Time: 0.234s
Size: 1024 bytes
ユースケース
- API テスト:REST API エンドポイントをすばやくテストします
- セキュリティテスト:セキュリティテスト用のカスタムペイロードを送信します
- インターフェースのデバッグ:リクエスト/レスポンスの詳細情報を確認します
- リクエストの再生:Burp でキャプチャした内容を直接使ってリクエストを再生します
ライセンス
MIT
謝辞
SSRF 対策の強化について、Syed Anas Mohiuddin 氏から非公開で報告を受けました。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。