Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
http-mcp-bridge — リモートMCPサーバーのセキュリティテスト用HTTPプロキシブリッジ。標準的なHTTPツールでJSON-RPCメッセージを送信し、セッションを管理できます。 | Kitploit
ツール/GitHubGitHub/nccgroup/http-mcp-bridge
ウェブプロキシと傍受ウェブセキュリティペネトレーションテストAPIセキュリティ
GitHubnccgroup/http-mcp-bridge

http-mcp-bridge

リモートMCPサーバーのセキュリティテスト用HTTPプロキシブリッジ。標準的なHTTPツールでJSON-RPCメッセージを送信し、セッションを管理できます。

リポジトリを見る
1713ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

HTTP MCP Bridge

このプロジェクトは、mcp Pythonライブラリ(GitHub)を使用して、HTTP/1.1リクエストとリモートMCPサーバー間のブリッジとして機能するHTTPサーバーを実装しています。

この取り組みの主な目的は、リモート転送メカニズム(HTTP+SSEまたはStreamable HTTP)を使用して、HTTPセキュリティツールでリモートMCPサーバーをテストできるようにすることです。

重要な注意事項!

同じidを持つJSON-RPC-V2メッセージを並行スレッドで送信すると、応答がマージされる可能性があることが確認されています。アセスメントでこのツールを使用する際は、その点に注意してください。この問題を修正するまでの間は、シングルスレッドでテストするようにしてください。

インストール

開始するには、リポジトリをクローンし、必要な依存関係をインストールします:

root@kitploit:~
git clone <repository-url>
cd http-mcp-bridge
pip install -r requirements.txt

ブリッジの実行

HTTPサーバーを実行するには、次のコマンドを実行します:

root@kitploit:~
python3 main.py --remote-url="http://127.0.0.1:8787/mcp"

HTTPサーバーはデフォルトのインターフェースとポート(http://127.0.0.1:8000)で待ち受けし、MCP接続は指定されたリモートURLに対して確立されます。指定されたURLには、サポートされている転送メカニズムを実装したリモートMCPサーバーが存在している必要があります。以前はHTTPサーバーがStreamable HTTPまたはHTTP+SSEの適切な転送メカニズムを自動検出していましたが、一部の本番環境で問題が発生したため、現在は無効になっています。デフォルトではStreamable HTTP転送メカニズムが使用されていました。HTTP+SSEの使用を強制するフラグを作成する予定ですが、それまでの間はコードを編集してその転送メカニズムを有効にすることができます。

その後、サーバーにHTTPリクエストを送信できます。サーバーはそれらをSSE/Streamable HTTPクライアントに中継します。

リモートMCPサーバー(テスト目的)

  • Cloudflare - リモートMCPサーバーを構築する

使用方法

python SDKに実装されているメカニズムは、対応する転送メカニズムを使用してエンドポイントと通信するための読み取りチャネルと書き込みチャネルを確立します。このHTTP to MCP Bridgeは、HTTPリクエストを書き込みチャネルに転送し、読み取りチャネルで応答を待機します(該当する場合)。応答を受信すると、その応答はHTTPリクエストの応答として転送されます。

HTTPリクエストはtimeoutパラメータをサポートしており、ブリッジがエラーメッセージを返す前に読み取りチャネルで応答を待機する最大秒数を制限します。timeoutがゼロの場合、HTTP to MCP Bridgeはまったく待機しません。

ブリッジセッションIDの取得

HTTP to MCP BridgeはMCPサーバーとの複数セッションをサポートしているため、最初のステップはセッションIDを取得することです。このセッションIDは以降のリクエストで使用されます。

リクエスト:

root@kitploit:~
GET /mcp/messages HTTP/1.1
Host: 127.0.0.1:8000
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
User-Agent: python-httpx/0.28.1
Content-Type: application/json
Cache-Control: no-store
Content-Length: 0

レスポンス:

root@kitploit:~
HTTP/1.1 400 Bad Request
date: Fri, 02 May 2025 15:40:32 GMT
server: uvicorn
content-length: 87
content-type: application/json
root@kitploit:~
{"detail":"Invalid session id. Try /mcp/messages/7fc2cce5-3b0b-4d63-9df6-e703c1df091c"}

このセッションIDは、MCPクライアントとサーバー間で確立されるセッションIDとは異なり、独立しています。後者はmcpライブラリによって内部で処理されます。

Ping

MCPサービスが存在し、選択した転送メカニズムが正しいことを確認するために呼び出せるpingメソッドがあります。

リクエスト:

root@kitploit:~
POST /mcp/messages/7fc2cce5-3b0b-4d63-9df6-e703c1df091c HTTP/1.1
Host: 127.0.0.1:8000
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
User-Agent: python-httpx/0.28.1
Content-Type: application/json
Cache-Control: no-store
Authorization: Bearer [REDACTED]
Content-Length: 40
root@kitploit:~
{"method":"ping","jsonrpc":"2.0","id":2}

レスポンス:

root@kitploit:~
[{"jsonrpc":"2.0","id":2,"result":{}}]

初期化ハンドシェイク

MCP通信の最初のステップは初期化ハンドシェイクで、両方のピアが利用可能な機能を共有します。

リクエスト:

root@kitploit:~
POST /mcp/messages/7fc2cce5-3b0b-4d63-9df6-e703c1df091c HTTP/1.1
Host: 127.0.0.1:8000
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
User-Agent: python-httpx/0.28.1
Content-Type: application/json
Cache-Control: no-store
Authorization: Bearer [REDACTED]
Content-Length: 213
root@kitploit:~
{"method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {"sampling": {}, "roots": {"listChanged": true}}, "clientInfo": {"name": "mcp", "version": "0.1.0"}}, "jsonrpc": "2.0", "id": 0}

レスポンス:

root@kitploit:~
[{"jsonrpc":"2.0","id":0,"result":{"protocolVersion":"2024-11-05","capabilities":{"tools":{}},"serverInfo":{"name":"Demo","version":"1.0.0"}}}]

ハンドシェイクACK通知

ハンドシェイクはこのメッセージを使用して閉じる必要があります。このメッセージには応答がないため、この時点ではtimeout=0を使用できます。タイムアウトエラーメッセージを受け取りますが、これは想定どおりです。

リクエスト:

root@kitploit:~
POST /mcp/messages/7fc2cce5-3b0b-4d63-9df6-e703c1df091c?timeout=0 HTTP/1.1
Host: 127.0.0.1:8000
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
User-Agent: python-httpx/0.28.1
Content-Type: application/json
Cache-Control: no-store
Authorization: Bearer [REDACTED]
Content-Length: 54
root@kitploit:~
{"method":"notifications/initialized","jsonrpc":"2.0"}

レスポンス:

root@kitploit:~
{"message":"Timeout waiting for messages"}

ツール一覧

ハンドシェイクが完了すると、tools/list(ツールの一覧表示)などの利用可能なメソッドを呼び出すことができます。

リクエスト:

root@kitploit:~
POST /mcp/messages/7fc2cce5-3b0b-4d63-9df6-e703c1df091c HTTP/1.1
Host: 127.0.0.1:8000
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
User-Agent: python-httpx/0.28.1
Content-Type: application/json
Cache-Control: no-store
Content-Length: 46
root@kitploit:~
{"method":"tools/list","jsonrpc":"2.0","id":1}

レスポンス:

root@kitploit:~
[{"jsonrpc":"2.0","id":1,"result":{"tools":[{"name":"add","inputSchema":{"type":"object","properties":{"a":{"type":"number"},"b":{"type":"number"}},"required":["a","b"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}]}}]

ツール呼び出し

最後に、ツールを呼び出したり、他の機能を利用したりできます。

リクエスト:

root@kitploit:~
POST /mcp/messages/7fc2cce5-3b0b-4d63-9df6-e703c1df091c HTTP/1.1
Host: 127.0.0.1:8000
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
User-Agent: python-httpx/0.28.1
Content-Type: application/json
Cache-Control: no-store
Content-Length: 100
root@kitploit:~
{"method":"tools/call","params":{"name":"add","arguments":{"a":1, "b":2 }},"jsonrpc":"2.0","id":2}

レスポンス:

root@kitploit:~
[{"jsonrpc":"2.0","id":2,"result":{"content":[{"type":"text","text":"3"}]}}]

コントリビューション

コントリビューションを歓迎します!機能強化やバグ修正については、issueを開くか、プルリクエストを送信してください。

ライセンス

このプロジェクトはMITライセンスの下でライセンスされています。詳細については、LICENSEファイルを参照してください。

ツールをダウンロード