FluidMCP CLI について
FluidMCP CLIは、複数のMCPサーバーをまとめて設定・実行したい開発者向けのコマンドラインツールです。単一の設定ファイルからFastAPIゲートウェイを起動し、パッケージのインストールや検証、セキュリティ設定を行えます。
主な機能
- 01単一設定による複数サーバーの編成
- 02FastAPI統合ゲートウェイとHTTPエンドポイント
- 03npm、Python、カスタムパッケージ対応
- 04設定と環境変数の検証
- 05Bearer token認証
- 06S3 URLからの設定実行
活用シーン
- 01設定ファイルから複数のMCPサーバーを起動
- 02統合ゲートウェイ経由でクライアントにツールを公開
- 03バージョン指定のMCPパッケージを導入・検証
- 04S3の設定からサーバーを実行
MCP 対応
複数のMCPサーバーをインストール、設定、実行し、FastAPI統合ゲートウェイ経由で共通のエンドポイントとツールアクセスを提供します。SSEストリーミングにも対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🌀 FluidMCP CLI
単一の設定ファイルで複数の MCP サーバーをオーケストレーション
⚡ クイックスタート - 複数の MCP サーバーを実行する
FluidMCP の主な強みは、単一の設定ファイルから複数の MCP サーバーを、統一された FastAPI エンドポイントを通じて実行できることです。
1. 設定ファイルを作成する
MCP サーバーを指定した config.json ファイルを作成します。
{
"mcpServers": {
"google-maps": {
"command": "npx",
"args": ["-y", "@google-maps/mcp-server"],
"env": {
"GOOGLE_MAPS_API_KEY": "your-api-key"
}
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/files"],
"env": {}
}
}
}
2. すべてのサーバーを起動する
fluidmcp run config.json --file --start-server
これにより、次の処理が行われます。
- 設定に記載されたすべての MCP サーバーをインストールして設定します
- 統一された FastAPI ゲートウェイを通じて起動します
http://localhost:8099で利用できるようにしますhttp://localhost:8099/docsで API ドキュメントを自動的に提供します
🚀 機能
-
📁 マルチサーバーオーケストレーション
- 単一の JSON 設定ファイルで複数の MCP サーバーを定義できます
- 1 つのコマンドで、すべてのサーバーを起動できます:
fluidmcp run --file <config.json> - すべての MCP ツールを提供する統一 FastAPI ゲートウェイ
-
📦 パッケージ管理
fluidmcp install author/package@versionで MCP パッケージをインストールできます- 依存関係の解決と環境設定を自動的に行います
- npm、Python、カスタム MCP サーバーに対応しています
-
🚀 FastAPI ゲートウェイ
- すべての MCP ツールに対応した統一 HTTP エンドポイント
- Server-Sent Events(SSE)ストリーミングに対応
/docsで Swagger ドキュメントを提供
-
🔐 セキュリティと認証
- ベアラートークン認証
- 暗号化通信によるセキュアモード
- API キーの環境変数を暗号化
📥 インストール
pip install fluidmcp
🔧 別の使用パターン
個別のパッケージをインストールする
fluidmcp install author/package@version
インストール済みパッケージを一覧表示する
fluidmcp list
個別のパッケージを実行する
fluidmcp run author/package@version --start-server
🔐 高度な使い方
認証付きセキュアモード
ベアラートークン認証を使用して実行します。
fluidmcp run config.json --file --secure --token your_token --start-server
認証後
☁️ S3 URL から実行する
S3 から設定を直接実行します。
fluidmcp run "https://bucket.s3.amazonaws.com/config.json" --s3
一般的なオプション:
--start-server– FastAPI サーバーを起動します--master– S3 管理の設定を使用します--file– ローカルの config.json から実行します--s3– S3 URL から実行します--secure– セキュアトークンモードを有効にします--token <token>– カスタムベアラートークン--verbose– 詳細なログ出力を有効にします(DEBUG レベル)
インストール済みのすべてのパッケージを実行する
fluidmcp run all --start-server
📂 実行モード
🧠 マスターモード(S3 による一元管理)
fluidmcp install author/package@version --master
fluidmcp run all --master
🧩 環境変数
# S3 Credentials (used in --master mode)
export S3_BUCKET_NAME="..."
export S3_ACCESS_KEY="..."
export S3_SECRET_KEY="..."
export S3_REGION="..."
# Registry access
export MCP_FETCH_URL="https://registry.fluidmcp.com/fetch-mcp-package"
export MCP_TOKEN="..."
環境を編集する
fluidmcp edit-env <author/package@version>
バージョンを表示する
fluidmcp --version
FluidMCP のバージョン、Python のバージョン、インストール先のパスを表示します。
設定を検証する
# Validate a local configuration file
fluidmcp validate config.json --file
# Validate an installed package
fluidmcp validate author/package@version
validate コマンドでは、次の項目を確認します。
- 設定ファイルの構造と解決状況
- システム PATH 内でのコマンドの利用可否
- 必須の環境変数(
required: trueと指定されたもの) - オプションの環境変数とトークン
- インストール済みパッケージの metadata.json の有無
注: 環境変数の検索では大文字と小文字を区別しません。たとえば、設定で github_token が指定されている場合、バリデーターは環境内の github_token と GITHUB_TOKEN の両方を確認します。
このコマンドでは、エラー(致命的な問題)と警告(致命的ではない問題)を区別します。
エラー(終了コード 1):
- PATH 内にコマンドがない
- 必須の環境変数がない
- 設定の解決に失敗する
警告(終了コード 0):
- オプションの環境変数がない
- 必須として明示されていない TOKEN 変数がない
出力例:
成功:
✔ Configuration is valid with no issues found.
警告のみの場合:
⚠️ Configuration is valid with warnings:
- Optional env var 'DEBUG_MODE' is not set (server: test-server)
- Token env var 'GITHUB_TOKEN' is not set (server: github-server)
✔ No fatal errors found. You may proceed, but consider addressing the warnings above.
エラーがある場合:
❌ Configuration validation failed with errors:
- Command 'nonexistent-command' not found in PATH (server: test-server)
- Missing required env var 'API_KEY' (server: test-server)
⚠️ Warnings:
- Optional env var 'DEBUG_MODE' is not set (server: test-server)
📁 ディレクトリ構成
.fmcp-packages/
└── Author/
└── Package/
└── Version/
├── metadata.json
└── [tool files]
📑 metadata.json の例
{
"mcpServers": {
"maps": {
"command": "npx",
"args": ["-y", "@package/server"],
"env": {
"API_KEY": "xxx"
}
}
}
}
🧪 MCP サーバーを試す
fluidmcp install Google_Maps/[email protected]
fluidmcp run all
次のように呼び出します。
import requests, json
url = "http://localhost:8099/google-maps/mcp"
payload = {
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "maps_search_places",
"arguments": {
"query": "coffee shops in San Francisco"
}
}
}
response = requests.post(url, json=payload)
print(json.dumps(response.json(), indent=2))
📡 SSE によるストリーミング
curl -N -X POST http://localhost:8099/package/sse \
-H "Content-Type: application/json" \
-d @payload.json
sse/startsse/streamsse/messagesse/tools_call
LLM、ウェブスクレイピング、またはデータをストリーミングする AI ワークフローに役立ちます。
📸 デモ
個別パッケージのインストール
個別パッケージの実行
パッケージの環境を編集
🤝 コントリビューション
FluidMCP はコラボレーションを歓迎しています。コミュニティからのコントリビューションをお待ちしています!
- コントリビューションガイド:開発環境のセットアップとガイドラインについては、CONTRIBUTING.md をご覧ください
- 問題を報告:GitHub で Issue を作成してください
- PR を提出:プルリクエストを提出する際は、コントリビューションガイドラインに従ってください
📌 ライセンス
GNU General Public License v3.0
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。