mcpField
M
MCP Host

MCP Host

github.com/intelligent-systems-labコーディングエージェント383 週間前に更新

MCP Host について

MCP Hostは、Ollamaモデルと1つ以上のMCPサーバーを組み合わせて使うPythonクライアントです。stdioとSSEで接続し、モデルから接続先のツールを呼び出せます。

主な機能

  1. 01複数のMCPサーバーへの接続
  2. 02stdioおよびSSEトランスポート対応
  3. 03ローカルまたはリモートのOllama利用
  4. 04LLMによるサーバーツールの実行
  5. 05JSONでのサーバーとモデル設定
  6. 06接続先と利用可能なツールの一覧表示

活用シーン

  1. 01Ollamaのチャットでサーバーツールを利用
  2. 02stdioまたはSSE経由でサーバーに接続
  3. 03接続先とツールの確認

MCP 対応

設定したMCPサーバーにstdioまたはSSEで接続し、そのツールをOllamaモデルから実行できるようにします。

詳細

MCP Host

Ollama LLM バックエンドと MCP サーバーに接続する Model Context Protocol (MCP) ホストの Python 実装です。

機能

  • 複数サーバー対応: 任意の数の MCP 互換サーバーに接続可能
  • 複数トランスポートタイプ対応: stdio と SSE トランスポートの両方をサポート
  • Ollama 統合: ローカル Ollama モデルへのシームレスな接続
  • ツール実行: 接続されたサーバーからのツールを LLM が使用可能
  • シンプルな CLI: 使いやすいコマンドラインインターフェース
  • JSON 設定: サーバーと LLM セットアップ用のシンプルな設定ファイル

必要要件

  • ローカルまたはリモートサーバーで実行されている Ollama

MCP Host を実行する

python mcp_host.py

天気サーバーを実行する (SSE)

python weather.py

設定

MCP Host は JSON 設定ファイルを使用して以下を定義します:

  1. MCP サーバー: ツールとリソースを提供するサーバー
  2. LLM プロバイダー: Ollama バックエンドの設定
サーバー設定

各サーバーには以下が必要です:

  • type: トランスポートメカニズム (stdio または sse)
  • stdio サーバーの場合:
    • command: 実行するコマンド
    • args: コマンドライン引数 (オプション)
    • env: 環境変数 (オプション)
  • SSE サーバーの場合:
    • url: SSE エンドポイント URL
LLM プロバイダー設定
  • type: プロバイダータイプ (現在は ollama のみサポート)
  • model: 使用するモデル名 (llama3、mistral など)
  • url: Ollama API URL (デフォルト: http://localhost:11434)
  • parameters: Ollama の追加パラメータ (temperature、top_p など)

コマンドラインオプション

usage: mcp_host.py [-h] [--config CONFIG] [--model MODEL]
                  [--message-window MESSAGE_WINDOW]
                  [--provider {ollama}] [--ollama-url OLLAMA_URL]
                  [--ollama-model OLLAMA_MODEL] [--debug] [--save-config]

MCP Host for LLM tool interactions

options:
  -h, --help            show this help message and exit
  --config CONFIG       Path to config file (default: config.json in current directory)
  --model MODEL, -m MODEL
                        Override model specified in config
  --message-window MESSAGE_WINDOW
                        Number of messages to keep in context

Provider Selection:
  --provider {ollama}   Select LLM provider

Ollama Options:
  --ollama-url OLLAMA_URL
                        URL for Ollama API (e.g., http://localhost:11434)
  --ollama-model OLLAMA_MODEL
                        Ollama model to use (e.g., llama3, mistral, etc.)

Other options:
  --debug               Enable debug logging
  --save-config         Save provider options to config file

使用例

基本的な使用方法
python mcp_host.py
デバッグモード
python mcp_host.py --debug

特殊コマンド

チャットセッション中は以下の特殊コマンドが使用できます:

  • tools: 接続されたサーバーからの利用可能なすべてのツールを一覧表示
  • servers: 接続されたすべての MCP サーバーを一覧表示
  • exit または quit: セッションを終了

仕組み

  1. MCP Host を起動すると、設定されたすべての MCP サーバーに接続します
  2. 各サーバーは利用可能なツールのリストを提供します
  3. クエリを入力すると、Ollama LLM に送信されます
  4. LLM がツールの使用を決定すると、MCP Host がツール呼び出しを実行します
  5. 結果が LLM に返送されます
  6. LLM がツール結果を組み込んだ最終応答を提供します

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。