MCP HTTP Proxy
MCP HTTP プロキシ
stdio ベースのあらゆる MCP サーバー(@browsermcp/mcp など)を HTTP/SSE トランスポート経由でインターネットに公開します。ネットワーク越しに MCP ツールにアクセスする必要があるリモートエージェントに最適です。
特徴
🌐 標準 MCP SSE トランスポート - MCP HTTP トランスポート仕様に準拠
🔐 API キー認証 - Bearer トークンによる安全なアクセス
🚀 多様な公開オプション - Tailscale、ngrok、Cloudflare Tunnel
🔄 セッション管理 - 複数の同時セッションをサポート
📦 あらゆる MCP サーバーで動作 - デフォルトで
@browsermcp/mcpに対応
Related MCP server: MCP SSE Proxy
クイックスタート
1. 依存関係のインストール
npm install2. 設定(オプション)
cp .env.example .env
# Edit .env to set your API key安全な API キーを生成します:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"3. ビルドと実行
npm run build
npm start開発時の実行:
npm run devAPI エンドポイント(標準 MCP SSE トランスポート)
エンドポイント | メソッド | 説明 |
| GET | SSE 接続の確立(エンドポイント URL を返します) |
| POST | JSON-RPC メッセージの送信 |
| GET | ヘルスチェック(認証不要) |
| GET | アクティブなセッションの一覧表示(認証が必要) |
インターネットへの公開
オプション 1: Tailscale(プライベートアクセスに推奨)
Tailscale を使用すると、パブリックインターネットに公開することなく、安全なプライベートアクセスが可能になります。
# Install Tailscale if not already installed
# Then serve via Tailscale
tailscale serve --bg --http 3000または、Tailscale IP を直接使用します:
tailscale status # Find your Tailscale IPMCP サーバーは以下で利用可能になります:
https://your-machine.tailnet-name.ts.net(serve 経由)http://your-tailscale-ip:3000(直接 IP)
エージェントからの使用方法:
{
"mcpServers": {
"browser-remote": {
"url": "http://your-tailscale-ip:3000/sse",
"headers": {
"Authorization": "Bearer your-api-key"
}
}
}
}オプション 2: ngrok(パブリック URL)
# Install ngrok if not already installed
ngrok http 3000ngrok は https://abc123.ngrok.io のようなパブリック URL を提供します。
オプション 3: Cloudflare Tunnel
# Install cloudflared if not already installed
cloudflared tunnel --url http://localhost:3000SSE トランスポートの仕組み
クライアントが
/sseに GET リクエスト - サーバーがセッションを作成し、メッセージ URL を含むendpointイベントを送信しますクライアントが
/message?sessionId=xxxに POST リクエスト - サーバーが JSON-RPC を MCP プロセスに転送しますサーバーがレスポンスをストリーミング - MCP のレスポンスが SSE
messageイベントとして送信されます
使用例
ヘルスチェックのテスト
curl http://localhost:3000/healthレスポンス:
{
"status": "healthy",
"sessions": 0,
"uptime": 10.5,
"transport": "sse",
"endpoints": {
"sse": "/sse (GET - establishes SSE connection)",
"message": "/message?sessionId=xxx (POST - send JSON-RPC messages)"
}
}SSE 経由での接続(JavaScript)
const eventSource = new EventSource('http://localhost:3000/sse', {
headers: { 'Authorization': 'Bearer your-api-key' }
});
eventSource.addEventListener('endpoint', (e) => {
console.log('Message endpoint:', e.data);
// e.data = "/message?sessionId=xxx"
});
eventSource.addEventListener('message', (e) => {
console.log('MCP response:', JSON.parse(e.data));
});MCP リクエストの送信
curl -X POST "http://localhost:3000/message?sessionId=your-session-id" \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'設定
環境変数 | 説明 | デフォルト |
| サーバーポート |
|
| バインドするホスト |
|
| 認証用 API キー | (なし) |
| MCP サーバーを実行するコマンド |
|
| 引数の JSON 配列 |
|
異なる MCP サーバーの使用
このプロキシは、stdio ベースのあらゆる MCP サーバーで使用できます:
# Example: Use a custom MCP server
MCP_COMMAND=node
MCP_ARGS=["/path/to/your/mcp-server/dist/index.js"]
# Example: Use Python MCP server
MCP_COMMAND=python
MCP_ARGS=["-m", "your_mcp_server"]セキュリティ上の注意
インターネットに公開する場合は必ず API キー認証を使用してください
HTTPS を使用してください(Tailscale、ngrok、Cloudflare はすべて対応しています)
プライベートアクセスには Tailscale を推奨します
API キーは定期的にローテーションしてください
/sessionsエンドポイント経由でセッションを監視してください
トラブルシューティング
MCP サーバーが起動しない
コンソールログでエラーを確認してください。MCP サーバーの stderr はプロキシのコンソールに転送されます。
接続拒否 (Connection Refused)
サーバーが実行中であることを確認してください:
curl http://localhost:3000/healthTailscale の接続状態を確認してください:
tailscale status
認証失敗
.env内の API キーがリクエストヘッダーと一致しているか確認してくださいAuthorization ヘッダーに "Bearer " プレフィックスが含まれていることを確認してください
SSE が動作しない
ベース URL ではなく
/sseエンドポイントに接続していることを確認してくださいGET リクエストにも Authorization ヘッダーが送信されていることを確認してください
ライセンス
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Remote MCP server exposing SMI Aware tools, resources, and skills over Streamable HTTP.
Remote MCP server exposing your Node Command fleet (files, shell, processes, browser) to AI hosts.
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Streamable HTTP MCP server exposing planner flows, tasks, and squads.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables interaction with remote MCP servers using SSE transport instead of STDIO for enhanced communication capabilities.1200,973 PyPI2,786PythonMIT
- FlicenseNot gradedqualityNot gradedmaintenanceBridges STDIO-based MCP clients with SSE-based MCP servers, allowing applications like Claude Desktop to connect to remote MCP servers that use SSE transport.9-
- FlicenseNot gradedqualityDmaintenanceExposes a local MCP server via ngrok with SSE and Streamable HTTP transports for use in Kiro Web.-
- FlicenseNot gradedqualityDmaintenanceA standalone MCP server that exposes API endpoints as tools for AI assistants, using SSE transport.-