問題の説明:ローカルLLMにツールを使わせるには?
OllamaでローカルLLMを動かしていると、「天気を調べて」「ファイルを読み取って」といった、モデル単体ではできないタスクを実行させたい場面が出てきます。従来、このような機能(Function Calling / Tool Calling)はOpenAI APIなどのクラウドサービスに依存していました。しかし、Model Context Protocol (MCP) と、それをOllamaと連携させるブリッジツールを利用することで、完全にローカル環境で、LLMに様々なツールを使わせるエージェントを作成できるようになりました。本記事では、OllamaモデルがMCPサーバーを通じてツールを呼び出せるようになるまでの、具体的なセットアップ手順を解説します。
結論:Ollama + MCP BridgeでローカルTool Calling環境を構築
解決策の核心は、ollama-mcp-bridgeというプロジェクトです。これはOllamaとMCPサーバーの間を取り持つブリッジで、Tool Callingに対応したOllamaモデル(Llama 3.1/3.2, Qwen2.5等)が、ファイルシステムやデータベース、Web検索などのMCPツールを利用できるようにします。セットアップの流れは、(1) Tool Calling対応モデルの導入、(2) ブリッジとMCPサーバーのインストール、(3) 設定ファイルの作成・実行、の3ステップです。
具体的な手順
ステップ1: Tool Calling対応モデルの準備
まず、Tool Calling機能をサポートするOllamaモデルをプルします。現時点で推奨されるモデルは以下の通りです。
# ターミナルで実行。まずは軽量なモデルから試すのがおすすめ
ollama pull llama3.2
# より高性能なモデルが必要な場合
ollama pull llama3.1
# 代替オプション(Mistralも対応している場合があります)
# ollama pull mistral
ステップ2: 環境構築と必要なツールのインストール
Pythonの仮想環境を作成し、必要なパッケージをインストールします。
# 仮想環境の作成
python -m venv myenv
# 仮想環境の有効化 (Linux/macOS)
source myenv/bin/activate
# 仮想環境の有効化 (Windows)
# myenvScriptsactivate
# プロンプトに (myenv) と表示されれば成功
# ollama-mcp-bridge のインストール
pip install ollama-mcp-bridge
# 例として、ファイルシステムとDuckDuckGo検索のMCPサーバーをインストール
# uvx(Universal Venv Executor)経由でインストールする方法が一般的です
# 事前に `pip install uv` でuvをインストールしておく必要があります
pip install uv
uvx mcp-server-filesystem
uvx duckduckgo-mcp-server
ステップ3: 設定ファイルの作成と実行
MCPサーバーとブリッジの設定を定義するJSONファイルを作成します。ここでは、ファイルシステムとWeb検索のツールを追加する例を示します。ファイル名はmcp_config.jsonなどとして保存します。
{
"mcpServers": {
"filesystem": {
"command": "uvx",
"args": ["mcp-server-filesystem", "/path/to/your/accessible/directory"]
},
"ddg-search": {
"command": "uvx",
"args": ["duckduckgo-mcp-server"]
}
}
}
設定ファイルができたら、ollama-mcp-bridgeを起動します。--configオプションで設定ファイルを指定し、--modelオプションで使用するOllamaモデルを指定します。
# ブリッジの起動
ollama-mcp-bridge --config ./mcp_config.json --model llama3.2
ブリッジが起動すると、指定したモデルがMCPサーバーに接続された状態になります。後は、このブリッジに対してチャットクライアント(専用のCLIや、MCP対応のAIアシスタントアプリなど)から接続することで、モデルがツールを利用した会話が可能になります。
よくあるトラブルと対処法
1. モデルがツールを呼び出さない、または認識しない
- 原因: 使用しているOllamaモデルがTool Callingに完全に対応していない可能性があります。
- 対処法:
llama3.2やllama3.1など、公式にTool Callingサポートが明記されているモデルを使用してください。また、ブリッジ起動時にエラーログが出ていないか確認します。
2. MCPサーバーへの接続エラー
- 原因: 設定ファイル内の
commandパスやargsが間違っている、または該当するMCPサーバーがインストールされていません。 - 対処法:
uvx mcp-server-filesystem --helpのようにコマンドを直接実行して、サーバーが正しく起動するかテストします。設定ファイルのパスは絶対パスを使用するのが確実です。
3. ストリーミング応答時の不具合
- 原因: 一部のクライアントとブリッジ間でのストリーミング通信に互換性の問題がある可能性があります。
- 対処法: ブリッジの起動オプションに
--disable-streamingを追加して、ストリーミングを無効にしてみてください。これで安定する場合があります。
参考元
- Building Your First Agentic AI: Complete Guide to MCP + Ollama Tool Calling – DEV Community: https://dev.to/ajitkumar/building-your-first-agentic-ai-complete-guide-to-mcp-ollama-tool-calling-2o8g
- Model Context Protocol (MCP) using Ollama | by Mehul Gupta | Data Science in Your Pocket | Medium: https://medium.com/data-science-in-your-pocket/model-context-protocol-mcp-using-ollama-e719b2d9fd7a
- GitHub – patruff/ollama-mcp-bridge: https://github.com/patruff/ollama-mcp-bridge
🔧 おすすめの開発環境
本記事の手順を快適に進めるための推奨スペック:
- GPU: NVIDIA RTX 4070 Ti Super(コスパ最強)
- メモリ: DDR5 64GB(LLM推論に必須)
- SSD: NVMe SSD 2TB(モデル保存用)
🔧 快適な開発環境のために
本記事の手順をスムーズに進めるために、以下のスペックを推奨します。
- GPU: NVIDIA RTX 4070 Ti Super(AI開発のコスパ最強GPU)
- メモリ: DDR5 64GB(LLMのローカル推論に必須)