Model Context Protocol CLI について
MCP サーバーと対話するプロトコルレベルの CLI クライアントです。ツールとリソース探索に対応し、OpenAI または Ollama プロバイダーを設定できます。
主な機能
- 01MCP サーバー通信
- 02動的ツール・リソース探索
- 03OpenAI と Ollama 対応
- 04インタラクティブチャットモード
- 05複数サーバー対応
活用シーン
- 01サーバー提供のツール実行と問い合わせ
- 02インタラクティブなデータ取得とコマンド実行
- 03複数 MCP サービス間の連携
MCP 対応
MCP クライアントとして、MCP サーバーに接続し、サーバーが公開するツール、リソース、プロンプトを検出して呼び出すコマンドラインインターフェースを提供します。
詳細
Model Context Protocol CLI
このリポジトリは、Model Context Protocol サーバーと相互作用するために設計されたプロトコルレベルの CLI を含んでいます。クライアントは、ユーザーがコマンドを送信したり、データを照会したり、サーバーが提供する様々なリソースと相互作用したりできます。
機能
- MCP サーバーとのプロトコルレベルの通信。
- 動的なツールとリソースの探索。
- 複数のプロバイダーとモデルのサポート:
- プロバイダー: OpenAI、Ollama。
- デフォルトモデル: OpenAI の場合は
gpt-4o-mini、Ollama の場合はqwen2.5-coder。
前提条件
- Python 3.8 以上。
- 必要な依存関係(インストールを参照)
- Ollama を使用する場合は、Ollama がインストールされて実行されている必要があります。
- OpenAI を使用する場合は、環境変数に API キーが設定されている必要があります (OPENAI_API_KEY=yourkey)
インストール
- リポジトリをクローンします:
git clone https://github.com/chrishayuk/mcp-cli
cd mcp-cli
- UV をインストールします:
pip install uv
- 依存関係を再同期します:
uv sync --reinstall
使用方法
クライアントを起動して SQLite サーバーと相互作用するには、次のコマンドを実行します:
uv run mcp-cli --server sqlite
コマンドライン引数
--server: 使用するサーバー設定を指定します。必須です。--config-file: (オプション) JSON 設定ファイルへのパス。デフォルトはserver_config.jsonです。--all: (オプション) 設定で提供されているすべてのサーバーを使用します
--provider: (オプション) 使用するプロバイダーを指定します (openaiまたはollama)。デフォルトはopenaiです。--model: (オプション) 使用するモデルを指定します。デフォルトはプロバイダーに依存します:- OpenAI の場合は
gpt-4o-mini。 - Ollama の場合は
llama3.2。
- OpenAI の場合は
例
デフォルトの OpenAI プロバイダーとモデルでクライアントを実行します:
uv run mcp-cli --server sqlite
特定の設定と Ollama プロバイダーでクライアントを実行します:
uv run mcp-cli --server sqlite --provider ollama --model llama3.2
デフォルトの OpenAI プロバイダーとモデルでクライアントを実行し、設定内のすべてのサーバーを提供します:
uv run mcp-cli --config "path to your server_config.json" --all
インタラクティブモード
クライアントはインタラクティブモードをサポートしており、コマンドを動的に実行できます。利用可能なコマンドのリストを表示するには help を入力し、プログラムを終了するには quit を入力します。
サポートされているコマンド
ping: サーバーが応答しているかを確認します。list-tools: 利用可能なツールを表示します。list-resources: 利用可能なリソースを表示します。list-prompts: 利用可能なプロンプトを表示します。chat: インタラクティブチャットモードに入ります。clear: ターミナル画面をクリアします。help: サポートされているコマンドのリストを表示します。quit/exit: クライアントを終了します。
チャットモード
チャットモードに入ってサーバーと相互作用するには:
uv run mcp-cli --server sqlite
または複数のサーバーの場合:
uv run mcp-cli --server sqlite --server exa --server filesystem --server sequential-thinking --server memory
その後、'chat' コマンドを使用してチャットモードに入ります。 チャットモードでは、ツールを使用してサーバーをインタラクティブにクエリできます。起動時に指定されたプロバイダーとモデルは次のように表示されます:
Entering chat mode using provider 'ollama' and model 'llama3.2'...
OpenAI プロバイダーの使用:
OpenAI モデルを使用したい場合は、以下を実行する必要があります
- クライアントを実行する前に、
OPENAI_API_KEY環境変数を .env またはシステム環境変数として設定します。
貢献
貢献を歓迎します。問題を開くか、提案した変更とともにプルリクエストを送信してください。
ライセンス
このプロジェクトは MIT License の下でライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。