mcpField
🦙
🦙 ollama-mcpo-adapter

🦙 ollama-mcpo-adapter

ローカル
github.com/tappi287AI・エージェント481 週間前に更新

🦙 ollama-mcpo-adapter について

ollama-mcpo-adapter は、MCPO が公開するツールを Ollama 互換の関数形式に変換する Python アダプターです。既存の MCPO インスタンスに接続でき、任意のサービス機能から MCPO を起動することもできます。

主な機能

  1. 01MCPO インスタンスへの接続
  2. 02Ollama 関数形式でツールを一覧表示
  3. 03MCPOService による MCPO の起動
  4. 04Ollama の応答からツール呼び出しを実行

活用シーン

  1. 01Ollama のチャットリクエストに MCPO ツールを渡す
  2. 02既存の MCPO インスタンスから関数を検出
  3. 03MCP 設定からローカル MCPO サービスを起動

MCP 対応

OpenAPI 経由で MCP ツールを公開する MCPO に接続し、ツールの説明を Ollama 互換の関数形式に変換します。任意のサービス機能で、MCP 設定から MCPO を起動できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"ollama-mcpo-adapter": {
"command": "uvx",
"args": [
"mcpo"
]
}
}
}
起動コマンドuvx mcpo

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypimcpo

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

🦙 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 をご覧ください。

コメント

MCP は初めてですか?

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

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