/ ディレクトリ / プレイグラウンド / MCP-Bridge
● コミュニティ SecretiveShell ⚡ 即起動

MCP-Bridge

作者 SecretiveShell · SecretiveShell/MCP-Bridge

OpenAI互換クライアント — LibreChat、Open WebUI、カスタムアプリなど — からMCPツールを利用できます。ネイティブMCPサポートは不要。プロトコルを変換するミドルウェアです。

MCP-BridgeはOpenAI互換クライアントと推論バックエンドの間に位置します。MCPサーバーのツールをOpenAIのfunction-callingツールとして公開し、呼び出しをディスパッチして結果を返すことでループを完結させます。お気に入りのチャットUIがMCPに対応していないがOpenAI互換である場合に便利です。

なぜ使うのか

主な機能

ライブデモ

実際の動作

bridge.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "bridge": {
      "command": "uvx",
      "args": [
        "MCP-Bridge"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "bridge": {
      "command": "uvx",
      "args": [
        "MCP-Bridge"
      ],
      "_inferred": true
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "bridge": {
      "command": "uvx",
      "args": [
        "MCP-Bridge"
      ],
      "_inferred": true
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "bridge": {
      "command": "uvx",
      "args": [
        "MCP-Bridge"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "bridge",
      "command": "uvx",
      "args": [
        "MCP-Bridge"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "bridge": {
      "command": {
        "path": "uvx",
        "args": [
          "MCP-Bridge"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add bridge -- uvx MCP-Bridge

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: MCP-Bridge

LibreChat等のOpenAI互換チャットUIにMCPツールを追加する

👤 OSSチャットフロントエンドをセルフホストしているユーザー ⏱ ~30 min intermediate

使うタイミング: LibreChat、Big-AGI、または/v1/chat/completionsを呼び出してツール利用をしたいカスタムアプリを運用しているが、MCPに対応していない場合。

前提条件
  • OpenAI互換の推論バックエンド — OpenAI、Anthropic(プロキシ経由)、vLLM、Ollamaなど
  • 公開したいMCPサーバーが1つ以上あること — filesystem、fetch、postgres — お手持ちのものなら何でも
フロー
  1. config.jsonを作成する
    Write me an MCP-Bridge config.json that proxies OpenAI and exposes filesystem MCP (rooted at /data) and fetch MCP.✓ コピーしました
    → inference_serverとmcp_serversセクションを含む有効な設定ファイル
  2. Dockerで起動する
    Give me the docker run command to start MCP-Bridge using this config on port 8000.✓ コピーしました
    → ボリュームマウント付きの動作するdockerコマンド
  3. チャットUIをブリッジに向ける
    Show me what API base URL to set in LibreChat to use the bridge instead of OpenAI directly.✓ コピーしました
    → http://localhost:8000/v1を指す設定

結果: LibreChatの会話からfilesystemおよびfetchツールを透過的に呼び出せるようになります。

注意点
  • すべてのOpenAI互換クライアントがツール呼び出しに対応しているわけではない — 接続前にUIがレスポンスのfunctionsに対応しているか確認してください。ドキュメントで「tool calling」サポートを確認しましょう
  • ストリーミングレスポンスは未実装 — クライアント側でストリーミングを無効にし、非ストリーミングエンドポイントを使用してください
組み合わせ: filesystem · fetch

自作のPython/JSエージェントフレームワークにMCPツールアクセスを付与する

👤 OpenAI SDKでカスタムエージェントを構築している開発者 ⏱ ~25 min intermediate

使うタイミング: 素のOpenAI SDK(またはLangChainのOpenAIクライアント)で開発しており、エージェントを書き直すことなくMCPエコシステムを組み込みたい場合。

フロー
  1. MCP-Bridgeをローカルで起動する
    Run MCP-Bridge with upstream set to OpenAI and these MCP servers: [list].✓ コピーしました
    → ブリッジが:8000でリッスン中
  2. OpenAIクライアントのbase_urlをブリッジに向ける
    Show me Python SDK init: client = OpenAI(base_url='http://localhost:8000/v1', api_key=...). Then call chat completions.✓ コピーしました
    → 変更なしで動作するコードスニペット

結果: 既存のエージェントコードを変更することなくツールアクセスが可能になります。

注意点
  • ブリッジが単一障害点になる — 本番環境ではsupervisord/systemdで実行し、ヘルスチェックエンドポイントを利用してください

組み合わせ

他のMCPと組み合わせて10倍の力を

bridge + filesystem + fetch

実用的なツール利用が可能な低コストのセルフホスト型ChatGPT代替環境

filesystem(~/Notesをルートに設定)とfetchをMCP-Bridge経由で公開し、LibreChatでファイルの閲覧と要約を行う。✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
POST /v1/chat/completions OpenAI-compatible messages + tools omitted (auto-injected) メインエントリポイント — OpenAIのドロップイン置き換え 1 LLM call + N tool calls
GET /tools 利用可能なツールを確認する free
SSE /bridge 外部MCPクライアントをSSE経由でブリッジに接続する free

コストと制限

運用コスト

APIクォータ
パススルー — アップストリームの推論プロバイダーの料金がそのまま適用されます
呼び出しあたりのトークン
ブリッジはリクエストごとにツール定義として約100〜500トークンを追加します
金額
無料(MITライセンス)。LLMの利用料金とホスティング費用のみ自己負担です。
ヒント
必要なMCPサーバーのみ接続してください — 接続するツールが増えるほどシステムプロンプトが肥大化します。

セキュリティ

権限、シークレット、影響範囲

認証情報の保管: アップストリームのAPIキーとMCPサーバーの認証情報はconfig.jsonに保存されます。ファイルのパーミッションを適切に制限してください
データ送信先: リクエストは設定されたアップストリーム(例: OpenAI)および接続中のMCPサーバーに送信されます
絶対に付与しない: Expose the bridge to the internet without enabling bearer auth

トラブルシューティング

よくあるエラーと対処法

クライアントが「tool_use not supported」と表示する

アップストリームのモデルまたはクライアントUIがfunction callingに対応していません。対応モデル(gpt-4o、Claude、Llama 3.1以降)を使用してください。

MCPサーバーへの接続が拒否される(connection refused)

config.jsonのcommandが実際に実行可能か確認してください。ブリッジはサブプロセスとして実行します。手動でテスト: npx -y the-mcp

認証有効時にブリッジから401エラーが返される

Authorization: Bearer <key>ヘッダーを設定してください。キーはconfigのsecurity.auth.keysに記載されている必要があります。

代替案

MCP-Bridge 他との比較

代替案代わりに使う場面トレードオフ
Open WebUI native MCPOpen WebUI 0.6.31以降を使用している場合組み込み機能のためブリッジ不要。ただしOpen WebUI専用
LiteLLM with custom callbacksマルチプロバイダールーティングとツールインジェクションが必要な場合より複雑。LiteLLMもネイティブではMCPに対応していない
mcpoMCPツールをLLM以外のクライアント向けにもOpenAPIとして公開したい場合異なるアプローチ — chat-completionsファーストではなくOpenAPIファースト

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る