LibreChat MCP Servers について
LibreChat MCP Servers は、LibreChat の Docker 環境で MCP サーバーを動かすための構成例をまとめたディレクトリです。Supergateway を使い、stdio 方式の MCP サーバーを SSE 経由で公開し、各サーバーを個別のコンテナで実行します。Docker Compose で LibreChat を運用する利用者に適しています。
主な機能
- 01Supergateway による stdio から SSE への変換
- 02MCP サーバーごとの個別コンテナ
- 03librechat_default ネットワークへの接続
- 04librechat.yaml での mcpServers 設定
活用シーン
- 01Docker 版 LibreChat に Brave Search を追加する
- 02新しい MCP サーバー用の Dockerfile と Compose 設定を作成する
MCP 対応
stdio 方式の MCP サーバーを SSE エンドポイントとして包み、LibreChat が librechat.yaml の mcpServers 設定からこれらへ接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
LibreChat MCP サーバー
このディレクトリには、Supergateway ブリッジを通じて LibreChat の機能を拡張する Model Context Protocol(MCP)サーバーの実装が含まれています。
これらは私が連携させようとしているプロジェクトです。
- あらゆる種類のツールをエージェントに提供するものです。Model Context Protocol Specification
- stdio MCP サーバーを SSE に変換し、各サーバーを個別のコンテナで実行できます。どのようにスケールするか見ていきます。Supergateway Documentation
- マルチ LLM エージェントおよび MCP クライアントです。LibreChat Documentation
ディレクトリ構成
mcp/
├── brave-search/ # Brave Search API integration
│ ├── Dockerfile
│ └── README.md
├── [future-server]/ # Template for future MCP servers
│ ├── Dockerfile
│ └── README.md
└── README.md # This file
新しい MCP サーバーの追加
mcp/の下にサーバー用の新しいディレクトリを作成します- 必要なファイルを追加します:
Dockerfile- サーバーのビルド設定README.md- サーバー固有のドキュメント
- docker-compose.override.yml を更新してサービスを追加します
- librechat.yaml を更新して MCP サーバーを設定します
共通設定
各 MCP サーバーは、次の要件を満たす必要があります:
- Supergateway をブリッジとして使用します(stdio から SSE への変換)
- 一貫したポート番号を使用します(8003 以降)
- librechat_default ネットワークに接続します
- 機密データには環境変数を使用します
ポートの割り当て
- 8003:Brave Search
- 8004-8099:今後の MCP サーバー用に予約
セキュリティのベストプラクティス
- API キーや機密データをコミットしないでください
- シークレットには環境変数を使用します
- 最小権限の原則に従います
- サービスを分離して維持します
- 依存関係を定期的に更新します
Supergateway を使用した LibreChat への MCP サーバーの追加
このガイドでは、Supergateway をブリッジとして使用し、任意の MCP サーバーを LibreChat に追加する手順を説明します。
概要
Supergateway を使用すると、stdio ベースの MCP サーバーを SSE(Server-Sent Events)経由で実行できるため、Docker 環境で MCP サーバーを LibreChat と連携するのに適しています。
前提条件
- LibreChat が稼働していること
- Docker と Docker Compose
- 連携する MCP サーバーのパッケージ
実装手順
1. サーバーディレクトリの作成
MCP サーバー用のディレクトリを作成します:
mkdir mcp-server-name
2. Dockerfile の作成
mcp-server-name/Dockerfile を作成します:
FROM node:18
WORKDIR /app
# Install both supergateway and your MCP server package
RUN npm install -g supergateway @organization/mcp-server-package
# The command runs supergateway as a bridge between your stdio MCP server and SSE
# --stdio: The command to run your MCP server
# --port: The port supergateway will listen on
CMD ["npx", "-y", "supergateway", "--stdio", "npx -y @organization/mcp-server-package", "--port", "8002"]
3. docker-compose.override.yml の更新
MCP サーバーのサービスを追加します:
services:
mcp-server-name:
build:
context: ./mcp-server-name
ports:
- "8002:8002" # Adjust port as needed
networks:
- librechat_default
environment:
- API_KEY=${YOUR_API_KEY} # If your server needs API keys
volumes:
- ./mcp-server-name:/app # If your server needs access to local files
4. librechat.yaml の更新
MCP サーバーの設定を追加します:
mcpServers:
server-name:
type: sse
url: "http://mcp-server-name:8002/sse"
アーキテクチャの概要
-
stdio から SSE へのブリッジ:
- MCP サーバーは stdio 経由で通信します
- Supergateway がブリッジとして機能し、stdio を SSE に変換します
- LibreChat は SSE エンドポイントに接続します
-
Docker ネットワーキング:
- すべてのサービスは
librechat_defaultネットワーク上で実行されます - サービス名をホスト名として使用し、サービス間で通信できます
- 必要なポートのみを公開します
- すべてのサービスは
-
設定の流れ:
- LibreChat は librechat.yaml から mcpServers の設定を読み込みます
- Supergateway の SSE エンドポイントに接続します
- Supergateway はリクエストを MCP サーバーに転送します
よくある設定
1. 基本的な MCP サーバー
mcpServers:
basic-server:
type: sse
url: "http://basic-server:8002/sse"
2. API キーを使用する MCP サーバー
# docker-compose.override.yml
services:
api-server:
environment:
- API_KEY=${API_KEY}
# librechat.yaml
mcpServers:
api-server:
type: sse
url: "http://api-server:8002/sse"
3. ファイルアクセスを使用する MCP サーバー
# docker-compose.override.yml
services:
file-server:
volumes:
- ./data:/app/data
# librechat.yaml
mcpServers:
file-server:
type: sse
url: "http://file-server:8002/sse"
トラブルシューティング
-
接続の問題:
- ネットワーク設定を確認します
- コンテナログを確認します:
docker compose logs mcp-server-name - ポートが競合していないことを確認します
-
サーバーが起動しない:
- Dockerfile でパッケージがインストールされていることを確認します
- 環境変数を確認します
- サーバーログを確認します
-
通信の問題:
- すべての設定でサービス名が一致していることを確認します
- コンテナ間のネットワーク接続を確認します
- SSE エンドポイントが正しいことを確認します
ベストプラクティス
-
セキュリティ:
- API キーや機密データをコミットしないでください
- シークレットには環境変数を使用してください
- コンテナの権限を制限してください
-
ネットワーク:
- 必要なポートのみを公開してください
- 可能な場合は Docker の内部ネットワークを使用してください
- 最小権限の原則に従ってください
-
設定:
- 設定をモジュール化してください
- 環境変数について説明してください
- 設定にバージョン管理を使用してください
-
モニタリング:
- 重要なイベントをログに記録してください
- リソース使用状況を監視してください
- ヘルスチェックを設定してください
例:完全なセットアップ
新しい MCP サーバーを追加する完全な例を紹介します。
- ディレクトリ構成:
librechat/
├── mcp-server/
│ └── Dockerfile
├── docker-compose.override.yml
└── librechat.yaml
- Dockerfile:
FROM node:18
WORKDIR /app
RUN npm install -g supergateway @org/mcp-server
CMD ["npx", "-y", "supergateway", "--stdio", "npx -y @org/mcp-server", "--port", "8002"]
- docker-compose.override.yml:
services:
mcp-server:
build:
context: ./mcp-server
ports:
- "8002:8002"
networks:
- librechat_default
environment:
- API_KEY=${MCP_API_KEY}
- librechat.yaml:
mcpServers:
mcp-server:
type: sse
url: "http://mcp-server:8002/sse"
参考資料
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。