Ollama MCP サーバー:ツール、Web検索、ローカルモデルを接続する方法
権限、ネットワーク、エラー状態を隠さずに、OllamaのローカルモデルとMCPツールを接続するための実践的な構成・設定ガイドです。
この記事の内容
Ollama MCP サーバーの構成では、ローカルモデルと便利な操作を接続しながら、モデル、プロトコル、ツール提供者を同一視しません。モデルはOllamaでローカル実行できますが、MCPホストがサーバーごとのクライアント接続、承認、結果の取り込みを管理します。この記事では、その境界、Web検索、権限、障害対応をまとめます。
Ollama MCP サーバーとは何か
MCP(Model Context Protocol)は、AIアプリケーションがサーバーの公開するツールを発見し、呼び出すための標準的な方法です。Web検索、許可したフォルダーの読み取り、データベース照会などがツールの例です。Ollamaはモデルランタイムであり、モデルをロードして応答を生成しますが、モデルがローカルにあるだけでOllamaがMCPホストになるわけではありません。
そのため、Ollama MCP サーバーという検索語は複数の構成を指します。Ollamaと通信するローカルMCPサーバーを意味する場合もあれば、Ollamaモデルを使いながら検索サーバーへ接続するMCPホストを意味する場合もあります。通常、ツールの発見、承認、実行、結果のモデルへの返却を担当するのはホストです。
レイヤーを分けて考える
Ollamaは推論、MCPはツール接続のプロトコル、ホストは呼び出し条件と承認を担当します。
ホスト、クライアント、サーバー、モデルの境界
一般的なMCP構成には4つの役割があります。ホストは利用者向けのAIアプリケーションで、サーバーごとにMCPクライアント接続を作ります。MCPサーバーはツールのスキーマを公開し、承認された呼び出しを実行します。Ollamaはその隣でローカル推論用のエンドポイントになります。
モデルがすべてのツールへ自動的に接続するわけではありません。ホストがツールの定義を渡し、モデルが呼び出しを要求し、ホストが引数を検証して実行します。結果をどこまでモデルへ戻すかもホストの判断です。
| レイヤー | 担当すること | 自動的には担当しないこと |
|---|---|---|
| Ollama | モデルのロードとローカル推論 | MCPサーバーの発見や全権限 |
| MCPホスト | 会話、クライアント、承認、コンテキスト | 各サーバーの内部実装 |
| MCPクライアント | ホストとサーバー間のプロトコル接続 | モデルランタイム |
| MCPサーバー | ツールのスキーマ、検証、実行 | ホストの承認を無視する権限 |
OllamaとMCP対応ホストを準備する
まずOllamaで通常のプロンプトが動くことを確認します。デーモンが起動し、モデルがインストールされ、ローカルAPIが応答してからMCPを追加してください。通常の推論が失敗している状態でMCPを足すと、原因の切り分けが難しくなります。
次にMCPクライアントを明示的にサポートするアプリを選びます。設定形式はJSON、設定画面、デスクトッププロファイル、SDKなどさまざまです。別のホストの設定をそのままコピーせず、コマンド、環境変数、トランスポート、承認の既定値を確認します。
ローカルでも自動的にプライベートとは限らない
推論はlocalhostに残っても、ツールが外部APIへ検索語を送ることがあります。ツールごとにデータフローを確認してください。
ollama list
ollama run <model-name> "準備完了 とだけ答えてください。"
curl http://127.0.0.1:11434/api/tags
ローカルOllamaモデルを安全に接続する
ツールを呼ぶ前に2つの接続を確認します。まずホストが設定済みのOllamaエンドポイントへ到達できること。デスクトップならlocalhost、コンテナならhost.docker.internalやサービス名が必要になることがあります。次に、モデルまたはAPIのtool calling形式がホストの期待と一致することです。
Ollama APIはツール定義を受け取り、ツール呼び出しを返せますが、それだけで完全なMCP実装になるわけではありません。MCP対応ホストは、モデルのメッセージとMCPのlist tools / call toolを変換することがあります。OllamaプロバイダーとMCP接続を別々にテストしましょう。
curl http://127.0.0.1:11434/api/chat -H "Content-Type: application/json" -d "{\"model\":\"<model-name>\",\"messages\":[{\"role\":\"user\",\"content\":\"このプロジェクトの現在の状態を確認してください。\"}],\"tools\":[] }"
秘密情報を埋め込まずにWeb検索MCPを追加する
Web検索MCPサーバーはツール提供者であり、返答が常に最新または正確になる保証ではありません。実装によって検索API、ブラウザー、メタ検索、ホスト型プロバイダーを呼び出します。公式ドキュメントでトランスポート、環境変数、保持方針、必要なランタイムを確認してください。
多くのホストは次のような形を使いますが、キー名はホストごとに異なります。これは概念例であり、固有パッケージのインストール手順ではありません。APIキーはシークレットストアまたは環境変数に置き、最初は読み取り専用の検索だけを許可します。
ローカルMCPプロセスでも外部通信は起こる
プロセスの起動場所とリクエストの到達先は別です。外部プロバイダーと、送信前の機密情報の除去を記録しましょう。
-
出所を確認する
公式リポジトリやドキュメントでライセンス、更新状況、ランタイム、トランスポートを確認します。
-
権限を最小にする
まず検索やfetchだけを許可し、ファイル書き込み、shell、広いプライベートネットワーク権限は与えません。
-
管理した検索を行う
安全な検索語でテストし、ツール名、引数、返されたURLを確認します。
{ "mcpServers": { "web-search": { "command": "npx", "args": ["-y", "<web-search-mcp-package>"], "env": { "SEARCH_API_KEY": "${SEARCH_API_KEY}" } } } }
ツール呼び出しを可視化し、検証できるようにする
信頼できる Ollama MCP サーバーの構成では、機密内容をそのまま記録せずに、後から確認できる監査ログを残します。サーバー名、ツール名、開始時刻、所要時間、結果、エラー種別、参照元ドメインを記録し、APIキー、認証ヘッダー、非公開ファイルの内容、利用者の秘密情報は伏せます。検索では最終URLと簡単な結果件数を残すと、モデルがどの情報を受け取ったかを確認できます。
ホスト側では承認の状態も見えるようにします。モデルが生成した引数は信頼できない入力です。実行前にURL、ファイルパス、クエリ長、許可ドメイン、タイムアウト、最大結果数を検証します。取得したWebページは不審な指示を含む可能性があるため、ユーザーの依頼と衝突するプロンプトインジェクションもデータとして扱います。
| 確認する項目 | 役立つ理由 | 安全な既定値 |
|---|---|---|
| ツール名とサーバー | どの機能が実行されたか分かる | 既知の名前だけを許可する |
| 引数 | モデルの隠れた動作を確認できる | 秘密情報を伏せ、サイズを制限する |
| 所要時間と状態 | タイムアウトと不正な内容を区別できる | 時間制限と再試行回数を設ける |
| 参照元または結果ID | 人が根拠を検証できる | 非公開データではなくURLを保存する |
接続を正しい順番で切り分ける
最初にMCPなしでOllamaを呼び、次にツール一覧だけを取得し、最後に低リスクのツールを1回実行します。これでモデル、トランスポート、権限、プロバイダーの失敗が一つの曖昧なエラーに混ざりません。
モデルがツールを呼ばず記憶だけで答える場合は、プロンプトを変える前にホストのツール一覧とモデルのtool calling対応を確認します。ツールが動くのに答えが悪い場合は、生の結果、出典、コンテキストの切り詰め、ページ内のプロンプトインジェクションを調べます。
| 症状 | 疑う層 | 次の確認 |
|---|---|---|
| Ollama接続拒否 | ランタイムまたはURL | ollama list、URL、11434番ポートを確認 |
| MCPサーバーが起動しない | コマンドまたは環境 | ホスト外でコマンドを実行してstderrを見る |
| ツール一覧が空 | トランスポートまたは設定 | MCPトランスポートとホストのスキーマを確認 |
| モデルがツールを無視 | モデルまたはループ | tool callingと生のアシスタントメッセージを確認 |
| 検索結果が空 | プロバイダーまたは制限 | 認証、検索語、状態、payloadを確認 |
| ページの指示に従う | 信頼できない本文 | ページをデータとして扱い、ポリシーを適用 |
Ollama Web Search APIとMCP検索の違い
Ollama Web Searchという言葉は2つの経路を指すことがあります。公式Web Search APIは、認証、制限、プライバシー境界を持つホスト型サービスです。一方、Web検索MCPサーバーはMCPホストから呼ばれるツールで、ローカル、自前運用、別プロバイダーのいずれもあり得ます。どちらも最新情報を取得できますが、設定方法は同じではありません。
公式API、web_fetch、アカウント制限、SearXNGについては既存のOllama Web Searchガイドを参照してください。MCPホスト、ツールスキーマ、権限、ローカルクライアント、複数ツールの組み合わせが目的なら、このページの範囲です。
| 観点 | Ollama Web Search | MCP Web検索 |
|---|---|---|
| 主体 | Ollamaのホスト型サービス | 選択したMCPサーバーとプロバイダー |
| 接続 | アプリが公式APIを呼ぶ | ホストがクライアントを作ってツールを呼ぶ |
| 適する場面 | サポートされたホスト型検索 | 組み合わせ可能なツールと運用管理 |
| 注意点 | クエリがローカル外へ出る | サーバー実装と結果を別々に確認 |
Ollama MCP サーバーのよくある質問
公式リファレンス
- Ollamaのツール呼び出しドキュメント - ツール定義と呼び出しメッセージの公式説明
- Model Context Protocolのアーキテクチャ - ホスト、クライアント、サーバーの公式概念
- Model Context Protocol仕様 - 公式プロトコルリファレンス
- Ollama API入門 - ローカルAPIとエンドポイント
関連するローカルAIガイド
- Ollama Web Search APIガイド - 公式検索API、プライバシー、制限、SearXNG。
- Odysseus AIとOllamaの設定 - ツール追加前にローカルランタイムを確認します。
- CursorとOllamaのコーディングエージェント - エディター固有のモデルと権限フロー。
- OpenCodeとOllamaの設定 - 別のローカルクライアント構成例。
- ローカルAIコーディングエージェントガイド - ローカルエージェントの構成、リポジトリ境界、承認を説明します。
最終更新:2026年8月16日
ホームへ戻る