MCP Host CLI について
MCP Host CLIは、OpenAI互換のLLM APIにリクエストを送るFastAPIチャットサーバーです。MCPサーバー設定に対応し、ローカル利用向けにセッション、チャット、ツール承認のエンドポイントを提供します。
主な機能
- 01FastAPIチャットエンドポイント
- 02LLMプロバイダーとモデルの設定
- 03環境変数とCLIによる設定
- 04ツール承認とセッション用エンドポイント
- 05ストリーミングとエラー再試行の選択
活用シーン
- 01ローカルLLMチャットAPIのホスティング
- 02HTTP経由でのチャットセッション管理
- 03承認前のツール呼び出し確認
MCP 対応
`--servers-config` でMCPサーバー設定を読み込み、ツール承認を処理します。READMEにはMCPサーバーへの接続プロトコルは記載されていません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
インストール方法は未掲載です
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ツール一覧はまだ取得されていません
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
LLM チャットサーバー
LLM(OpenAI)とのチャットを実現する FastAPI サーバーです。
設定
設定は環境変数と CLI 引数で管理します。
環境変数
| 変数 | 説明 | デフォルト |
|---|---|---|
LLM_API_KEY | LLM プロバイダーの API キー(--api-key-file の代替) | - |
LLM_MODEL | 使用するモデル名 | qwen2.5-coder:latest |
PORT | サーバーを実行するポート | 8000 |
LLM_PROVIDER | LLM プロバイダー(openai) | openai |
OPENAI_BASE_URL | OpenAI 互換 API のベース URL | https://openrouter.ai/api/v1 |
.env ファイルの例:
LLM_API_KEY=your-api-key
LLM_MODEL=qwen2.5-coder:latest
PORT=8000
LLM_PROVIDER=openai
CLI 引数
| 引数 | 説明 | 例 |
|---|---|---|
--model | 使用する LLM モデル | --model qwen2.5-coder:latest |
--port | サーバーを実行するポート | --port 8000 |
--provider | LLM プロバイダー(openai) | --provider openai |
--openai-base-url | OpenAI API のベース URL | --openai-base-url https://api.openai.com/v1 |
--api-key-file | API キーを含むファイルのパス | --api-key-file /path/to/api.key |
--servers-config | サーバー設定ファイルのパス | --servers-config config/servers.json |
--current-directory | 作業ディレクトリ | --current-directory /projects |
--context-window-size | コンテキストウィンドウのサイズ | --context-window-size 2048 |
--temperature | Temperature パラメーター | --temperature 0.7 |
--stream | ストリーミングモードを有効化 | --stream |
--retries-on-llm-error | LLM エラー発生時の再試行回数 | --retries-on-llm-error 3 |
--debug-messages | /tmp/llm-requester.messages.log へのデバッグメッセージのログ記録を有効化 | --debug-messages |
CLI の使用例:
# Using environment variable
export LLM_API_KEY=your-api-key
uv run main.py --model qwen2.5-coder:latest --port 8000
# Using API key file
uv run main.py --model qwen2.5-coder:latest --port 8000 --api-key-file /path/to/api.key
API エンドポイント
POST /user_request- ユーザーのチャットリクエストを処理しますPOST /approve- ツールの承認または拒否を処理しますGET /session_state- 現在のセッション状態を取得しますPOST /start_session- 新しいセッションを作成します
リクエスト/レスポンス形式
リクエスト(POST /user_request)
{
"input": "user message"
}
レスポンス
{
"request_id": "uuid",
"requires_approval": true,
"tool": {
"name": "tool-name",
"arguments": {
"arg1": "value1",
"arg2": "value2"
}
},
"message": "response content",
"model": "model-name",
"role": "assistant"
}
ツールの承認(POST /approve)
{
"request_id": "uuid",
"approve": true
}
使用例
import requests
# Start session
response = requests.post("http://localhost:8000/start_session", json={
"current_directory": "/projects",
"model": "qwen2.5-coder:latest"
})
# Send message
response = requests.post("http://localhost:8000/user_request", json={
"input": "Hello, how are you?"
})
# Approve tool call
response = requests.post("http://localhost:8000/approve", json={
"request_id": "12345",
"approve": true
})
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。