🦙 ollama-mcpo-adapter について
ollama-mcpo-adapter は、MCPO が公開するツールを Ollama 互換の関数形式に変換する Python アダプターです。既存の MCPO インスタンスに接続でき、任意のサービス機能から MCPO を起動することもできます。
主な機能
- 01MCPO インスタンスへの接続
- 02Ollama 関数形式でツールを一覧表示
- 03MCPOService による MCPO の起動
- 04Ollama の応答からツール呼び出しを実行
活用シーン
- 01Ollama のチャットリクエストに MCPO ツールを渡す
- 02既存の MCPO インスタンスから関数を検出
- 03MCP 設定からローカル MCPO サービスを起動
MCP 対応
OpenAPI 経由で MCP ツールを公開する MCPO に接続し、ツールの説明を Ollama 互換の関数形式に変換します。任意のサービス機能で、MCP 設定から MCPO を起動できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🦙 ollama-mcpo-adapter
シンプルな Python アダプターとオプションのランタイムサービスを使用して、MCPO(MCP-to-OpenAPI プロキシサーバー)のツールを Ollama 互換の関数として公開します。
✨ 特長
- 🔌 MCPO インスタンスに接続します
- ⚙️
MCPOServiceを使って、独自の MCPO サーバーをプログラムから起動します - 🔁 OpenAPI 経由で公開されている MCP ツールを、Ollama 互換のツール関数として一覧表示します
🚀 クイックスタート
1. インストール
pip install ollama-mcpo-adapter
既存の MCPO インスタンスを使用する
次のように MCPO が実行されているとします:
uvx mcpo --port 5090 --config /path/to/mcp_config.json
アダプターを使うと、利用可能なすべての関数を Ollama ToolCall 形式で取得できます:
from ollama_mcpo_adapter import OllamaMCPOAdapter
adapter = OllamaMCPOAdapter(host="localhost", port=5090, config_path="/path/to/mcp_config.json")
# Gets tool descriptions from MCPO FastAPI /docs
tools = adapter.list_tools_ollama()
設定ファイルのパスは省略できます。ただし、設定ファイルを指定すると、MCP サーバー名をより確実に検出できます。 指定しない場合、サーバー名は MCPO が提供する自動生成された OpenAPI ドキュメントから読み取られます。この仕様は将来変更される可能性があります:MCPO。
ローカルの MCPO サービスを使用する
この拡張機能を使って MCPO サービスを起動できます:
from ollama_mcpo_adapter import MCPOService
# Provide your mcp config as JSON file or dictionary
mcp_config = {
"mcpServers": {
"time": {"command": "uvx", "args": ["mcp-server-time", "--local-timezone=Europe/Berlin"]}
}
}
mcpo = MCPOService("127.0.0.1", 4090, config=mcp_config,
# -OR- from an existing mcp_config file
config_path="path/to/mcp_config.json")
# MCPOSService class handles MCPO server start-up and shutdown and in a subprocess
mcpo.start(wait=True)
...
mcpo.stop()
次に、アダプターを使って利用可能なツールをすべて取得します:
from ollama_mcpo_adapter import OllamaMCPOAdapter
adapter = OllamaMCPOAdapter("127.0.0.1", 4090)
tools = adapter.list_tools_ollama()
これを Ollama に送信します:
from ollama import Client
# Send a prompt to Ollama using discovered tools
client = Client(host="http://127.0.0.1:11434")
response = client.chat(
model="qwen2.5-coder:14b-instruct-q4_K_M",
messages=[{"role": "user", "content": "Write a file..."}],
tools=tools,
)
最後に、ツールを呼び出します:
# Handle any tool calls
if response.message.tool_calls:
adapter.call_tools_from_response(response.message.tool_calls)
環境変数
-
MS Windows の npx パス。設定パーサーで npx のパスを上書きできます。
例:
WIN_NODEJS_NPX_PATH=C:\Program Files\nodejs\npx.cmd
🧪 テストの実行
pytest
📂 プロジェクト構成
ollama_mcpo_adapter/
├── adapter.py # Tool discovery + Ollama integration
├── service.py # Optional: launch MCPO programmatically
├── service_runner.py # MCPO subprocess control
├── config_parser.py # MCP config parsing helpers
├── dispatcher.py # Dispatch tool calls
📜 ライセンス
MIT。詳細は LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。