MCP + Ollama Local Tool Calling Example について
このPythonサンプルは、Ollamaを使うローカルエージェントがMCP経由で関数を呼び出す方法を示します。加算と乗算のツールを公開するMCPサーバーと、Ollamaと連携するクライアントが含まれます。
主な機能
- 01OllamaでローカルLLMを実行
- 02MCPクライアントでサーバーに接続
- 03加算・乗算ツールの公開
- 04リクエストに応じたモデルのツール選択
活用シーン
- 01ローカルモデルによる加算
- 02ローカルモデルによる数値の乗算
MCP 対応
MCPサーバーが`add`と`multiply`ツールをクライアントに公開します。PythonクライアントはツールとユーザーのリクエストをOllamaに送り、モデルが選んだツールを呼び出します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP + Ollama ローカルツール呼び出しの例
このプロジェクトでは、ローカルの AI エージェントが次のものを使用して、ユーザーのクエリを理解し、Python 関数を自動的に呼び出す方法を紹介します。
- Model Context Protocol(MCP)
- ローカル LLM(例:Llama3)を実行するための Ollama
- Python の MCP クライアントとサーバー
🔗 シーケンス図
sequenceDiagram
participant User
participant MCP_Client
participant Ollama_LLM
participant MCP_Server
User->>MCP_Client: 1) User types: "What is 5 + 8?"
MCP_Client->>Ollama_LLM: 2) Send available tools + user query
Ollama_LLM->>Ollama_LLM: 3) Understand query & tool descriptions
Ollama_LLM->>Ollama_LLM: 4) Select tool: add(a=5, b=8)
Ollama_LLM->>MCP_Client: 5) Return tool_call
MCP_Client->>MCP_Server: 6) Execute add(a=5, b=8)
MCP_Server-->>MCP_Client: 7) Return result: 13
MCP_Client-->>User: 8) Show final answer: 13
📚 プロジェクト構成
.
├── math_server.py # MCP Server exposing add() and multiply() tools
├── ollama_client.py # MCP Client interacting with Ollama
├── README.md # Project documentation
🛠️ セットアップ手順
1. 必要なものをインストールする
pip install "mcp[cli] @ git+https://github.com/awslabs/mcp.git" openai==0.28 httpx
Ollama がインストールされ、実行中であることを確認してください。
2. LLM モデルを取得または実行する
ollama run llama3
(実行するモデルがツール呼び出しに対応していることを確認してください。)
3. MCP サーバーを実行する
python math_server.py
サーバーは、次の 2 つのシンプルなツールを公開します。
add(a: int, b: int) -> intmultiply(a: int, b: int) -> int
4. MCP クライアントを実行する
python ollama_client.py math_server.py
5. 操作する!
クエリの例:
Query: What is 5 + 8?
Response: 13
Query: Multiply 7 and 9
Response: 63
MCP クライアントはクエリと利用可能なツールを Ollama に送信します。LLM は、ツールの説明とユーザーの意図に基づいて、内部で使用するツールを決定します。
🚀 仕組み
- MCP クライアントが利用可能なツールを一覧表示します。
- ツールとユーザーのクエリを Ollama LLM に送信します。
- LLM が最も適したツールを推論します。
- LLM が
tool_callを生成します。 - MCP クライアントが MCP サーバー経由で関数を呼び出します。
- 最終結果が返され、表示されます。
✅ 手動でハードコーディングする必要はありません! ✅ すべてローカルで実行できます! ✅ 完全に自律的です!
📢 重要な理由
このパターンを使うと、次のようなスマートなローカル AI エージェントを構築できます。
- ユーザーの意図を理解する
- 適切なアクションを動的に選択する
- 完全にオフラインかつローカルで動作する
次の可能性が広がります。
- 自律型の開発者
- ローカルのインテリジェントアシスタント
- 安全な AI ワークフロー
🏷️ 共有用ハッシュタグ
#MCP #ModelContextProtocol #Ollama #LocalLLM #FunctionCalling #Python #AI #DeveloperTools #AIEngineering #AutonomousAgents
🙌 クレジット
「より賢い AI エージェントは、自分たちがどう考えるかを理解することから始まります!」
次のステップ: Streamlit UI を追加するか、このプロジェクトを Docker 化しましょう 🚀
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。