MCP Manager について
MCP Managerは、対応するLLMのエンドポイントとローカルMCPサーバーをつなぎ、HTTP API経由で自然言語のプロンプトを送れるようにします。複数のモデルとサーバー設定を、単一インスタンス内のワークスペースで管理できます。
主な機能
- 01GeminiとAzure OpenAIに対応
- 02ローカルMCPサーバーへの接続
- 03YAMLによるワークスペース設定
- 04APIキー認証
- 05OpenAI形式のHTTPプロンプトAPI
活用シーン
- 01設定の異なるワークスペースへのプロンプト送信
- 02ローカルMCPサーバー経由のAPI照会や操作
MCP 対応
対応するLLMをローカルMCPサーバーに接続し、プロンプトをサーバーのツールへ振り分けます。リモートMCPサーバーへの接続は今後の予定です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Manager
MCP Manager は、LLM と MCP サーバーをつなぐブリッジとして機能します。対応するチャット補完 API を通じて、自然言語のプロンプトを使ってリモートおよびローカルの API を操作できます。
ワークスペースごとに異なる設定を定義できるため、単一の MCP Manager インスタンスから、異なる LLM エンドポイントや MCP サーバー(異なるポート、アドレス、パスで稼働する可能性があります)に接続できます。
MCP サーバーとは?
MCP サーバーは現在、LLM と API の間に位置するミドルウェアです。LLM が、ユーザーのプロンプトに含まれるアクションを実行するために利用できるツールを確認し、ユーザーに回答を返すだけでなく、実際にアクションを実行するかどうかを判断できるようにします。MCP サーバーは、モデルがアクションを実行しようとする「意図」を、システムに対する変更や問い合わせなどの実際のアクションに変換します。
詳しく知りたい場合は、https://mcp.so にアクセスし、ページの下部にある FAQ セクションをご覧ください。
機能
- さまざまな LLM と連携します(現在、Gemini と Azure OpenAI に対応)
- LLM が MCP サーバーと対話できるようにします
- 単一の YAML ファイルで柔軟にワークスペースを設定できます
- API Key 認証に対応しています(OAuth 2.0 は今後対応予定)
- OpenAI 形式でプロンプトを送信するためのシンプルな HTTP API を公開します
インストール
Release セクションの Packages から、お使いのオペレーティングシステムに適したファイルをダウンロードするだけで、すぐに使い始められます。
設定
設定は YAML ファイル(デフォルトでは、実行時ディレクトリ内の config.yaml)で管理します。MCP_MANAGER_CONFIG 環境変数を使ってパスを上書きできます。
注釈付きの設定ファイルの例は、config.example.yaml にあります。
認証
現在は API Key 認証のみがサポートされており、モデル設定で構成します。OAuth 2.0 のサポートは今後対応予定です。
LLM の設定
設定方法は LLM プロバイダーによって異なります。
-
Gemini
- API Key が必要です
- API エンドポイントは Gemini のドキュメントで確認できます(ベース REST エンドポイントを使用してください)。API Key は MCP Manager で設定し、URL に含めないでください
-
Azure OpenAI
- デプロイ済みモデルが必要です
- リソースのエンドポイント
- API Version(利用可能なバージョンを参照)
- デプロイ済みモデル名
- API Key
使い方
- サーバーを起動します
mcp-manager
別の設定パスを指定して起動することもできます。
export MCP_MANAGER_CONFIG=/path/to/your/config.yaml
mcp-manager
- HTTP 呼び出しでプロンプトを送信します(デフォルトのポートを使用する場合)
/azure 用に設定したワークスペースとファイルシステム MCP サーバーを使う curl の例:
curl http://localhost:7000/azure -H "Content-Type: application/json" -d '{"messages": [{"role":"user","content":"Check if the file /tmp/abc exists"}]}'
出力は次のようになります。
{
"messages": [
{
"role": "user",
"content": "Check if the file /tmp/abc exists"
},
{
"role": "assistant",
"tool_calls": [
{
"name": "get_file_info",
"id": "cGAjCuzqBBnUx2J2dpjpDbZg",
"arguments": {
"path": "/tmp/abc"
}
}
]
},
{
"type": "FunctionCallOutput",
"call_id": "cGAjCuzqBBnUx2J2dpjpDbZg",
"output": "Error: ENOENT: no such file or directory, stat '/tmp/abc'"
},
{
"role": "assistant",
"content": "The file /tmp/abc does not exist."
}
],
"temperature": null,
"max_tokens": null,
"top_p": null,
"tools": null
}
ユーザー、モデル、MCP Manager、MCP サーバー間でやり取りされたすべてのメッセージの完全なリストが表示されます。
制限事項
-
対応 LLM
-
対応する MCP サーバー接続
- ローカル MCP サーバー
- (対応予定:リモート MCP サーバー)
貢献
貢献を歓迎します。CONTRIBUTING.mdをご覧ください。
主な開発はGitLabで行われています。Issueとマージリクエストはそちらに提出してください。GitHubにはミラーリポジトリがあり、GitHubで作成されたIssueは手動でGitLabに移行されます。
バグ報告や機能リクエストは、GitLab Issuesからお寄せください。
ライセンス
このプロジェクトはGNU GPLv3のライセンスの下で公開されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。