mcpField
H
HTTPX_MCP

HTTPX_MCP

github.com/zhefoxフレームワーク・SDK019 週間前に更新

HTTPX_MCP について

HTTPX MCPはhttpxライブラリを使い、AIクライアントからHTTPインターフェースをテストするツールです。一般的なリクエストメソッドやキャプチャしたリクエストの再送に対応し、応答の詳細を表示します。非公開ネットワークへのアクセスは既定で制限されます。

主な機能

  1. 017種類のHTTPメソッド
  2. 02JSON、フォーム、テキスト本文
  3. 03カスタムヘッダーとクエリパラメーター
  4. 04キャプチャしたリクエストの再送
  5. 05ステータス、ヘッダー、本文、所要時間の表示
  6. 06非公開ネットワークへの接続を既定でブロック

活用シーン

  1. 01REST APIエンドポイントのテスト
  2. 02デバッグ時のHTTP応答確認
  3. 03セキュリティテスト用のカスタムリクエスト送信
  4. 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 パラメーターでリクエストメソッドを切り替えます。

パラメーター:

パラメーター型必須デフォルト説明
urlstring✅-完全な URL
methodstring-GETHTTP メソッド:GET/POST/PUT/DELETE/PATCH/HEAD/OPTIONS
paramsstring--URL クエリパラメーター。JSON または key=value 形式
headersstring--リクエストヘッダー。JSON 形式
bodystring--リクエスト本文
content_typestring-application/jsonContent-Type
timeoutnumber-30タイムアウト時間(秒)
follow_redirectsboolean-trueリダイレクトを追跡するかどうか
verify_sslboolean-trueSSL を検証するかどうか
include_headersboolean-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_requeststring✅-生の HTTP リクエストテキスト
base_urlstring--ベース URL(リクエストに完全な URL が含まれていない場合)
verify_sslboolean-trueSSL を検証するかどうか

例:

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

ユースケース

  1. API テスト:REST API エンドポイントをすばやくテストします
  2. セキュリティテスト:セキュリティテスト用のカスタムペイロードを送信します
  3. インターフェースのデバッグ:リクエスト/レスポンスの詳細情報を確認します
  4. リクエストの再生:Burp でキャプチャした内容を直接使ってリクエストを再生します

ライセンス

MIT

謝辞

SSRF 対策の強化について、Syed Anas Mohiuddin 氏から非公開で報告を受けました。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。