【Ollama】MCP対応Tool Calling設定方法ガイド

問題の説明:ローカル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.2llama3.1など、公式にTool Callingサポートが明記されているモデルを使用してください。また、ブリッジ起動時にエラーログが出ていないか確認します。

2. MCPサーバーへの接続エラー

  • 原因: 設定ファイル内のcommandパスやargsが間違っている、または該当するMCPサーバーがインストールされていません。
  • 対処法: uvx mcp-server-filesystem --helpのようにコマンドを直接実行して、サーバーが正しく起動するかテストします。設定ファイルのパスは絶対パスを使用するのが確実です。

3. ストリーミング応答時の不具合

  • 原因: 一部のクライアントとブリッジ間でのストリーミング通信に互換性の問題がある可能性があります。
  • 対処法: ブリッジの起動オプションに--disable-streamingを追加して、ストリーミングを無効にしてみてください。これで安定する場合があります。

参考元

🔧 おすすめの開発環境

本記事の手順を快適に進めるための推奨スペック:

🔧 快適な開発環境のために

本記事の手順をスムーズに進めるために、以下のスペックを推奨します。

この記事は役に立ちましたか?