Ollama 向け MCP サーバー:ローカルモデルで MCP ツールを使う方法
Ollama で MCP サーバーを使うガイド。Ollama 自体は MCP クライアントではないため、ollmcp、Claude Code、Codex、Goose、Open WebUI でローカルモデルに MCP ツールを与えます。手順・モデル・制限を解説。
Ollama は MCP サーバーを使えるのか?
単体では使えません。Ollama はモデルを動かしツール呼び出しにも対応していますが、MCP クライアントではないため、MCP サーバーを起動したり接続したりはしません。Ollama で MCP サーバーを使うには、Ollama をモデルのバックエンドとして使う MCP クライアントを動かします。例えばターミナルの ollmcp、ollama launch 経由の Claude Code や Codex、Goose、Open WebUI などです。そのうえで、ツールに対応したローカルモデルを選びます。
このガイドでは、これらの選択肢を比較し、実際に動くセットアップを順に説明し、最先端モデルをローカルモデルに置き換えたときにつまずきやすい制限をまとめます。試すサーバーがまだなければ、まず MCP サーバーディレクトリをご覧ください。
構成要素の関係
MCP の構成は 3 つの要素からなり、Ollama が担うのはそのうち 1 つだけです。
- モデル:いつツールを呼ぶかを決めます。これが Ollama です。
- MCP クライアント(ホストとも呼ばれます):MCP サーバーを起動または接続し、ツール一覧をモデルに渡し、呼び出しを実行して結果を返します。Ollama はこれを行いません。
- MCP サーバー:ブラウザー、ファイルシステム、GitHub など、実際のツールを提供します。
つまり「Ollama にはどの MCP サーバーを使えばいいか?」という問いは、実は「どのクライアントなら Ollama のモデルが MCP サーバーを使えるか?」という問いです。そのクライアントさえあれば、ディレクトリにあるどの MCP サーバーも使えます。背景知識は MCP の仕組みと MCP クライアントガイドをご覧ください。
選択肢の比較
| クライアント | インターフェース | Ollama の使い方 | MCP トランスポート | 向いている用途 |
|---|---|---|---|---|
| ollmcp | ターミナル UI | Ollama ネイティブ API | stdio、SSE、Streamable HTTP | 手早いローカルテスト、ツールの選択 |
| Claude Code | ターミナルエージェント | ollama launch claude(Anthropic 互換 API) | stdio、HTTP、SSE | MCP ツールを使ったコーディング |
| Codex CLI | ターミナルエージェント | ollama launch codex または codex --oss | stdio、Streamable HTTP | MCP ツールを使ったコーディング |
| Goose | デスクトップと CLI | 組み込みの Ollama プロバイダー | stdio、Streamable HTTP | 拡張機能付きの汎用エージェント |
| Open WebUI | Web チャット | Ollama バックエンド | Streamable HTTP(stdio は mcpo 経由) | チーム向けの ChatGPT 風 UI |
| oterm | ターミナルチャット | Ollama ネイティブ API | stdio、Streamable HTTP | 軽量なターミナルチャット |
いずれも 2026 年 10 月時点で活発にメンテナンスされています。古いチュートリアルによく出てくる mcphost は GitHub でアーカイブされたため、ここでは外しています。
ステップ 1:ツール対応のモデルを選ぶ
MCP が機能するのは、モデルがツール呼び出しを出力できる場合だけです。Ollama はそうしたモデルに tools タグを付けており、一覧は ollama.com/search?c=tools にあります。執筆時点でこのタグが付いているモデルの例:
| モデル | 取得コマンド | 備考 |
|---|---|---|
| Qwen 3 | ollama pull qwen3:8b | Ollama 公式のツール呼び出し例で使用。14b、30b、32b もあり |
| Qwen 3.5 | ollama pull qwen3.5 | Ollama の Claude Code ドキュメントで使用 |
| Gemma 4 | ollama pull gemma4 | ツール、ビジョン、思考に対応 |
| gpt-oss | ollama pull gpt-oss:20b | Ollama の Codex の例で使用。メモリーに余裕があれば 120b |
| Llama 3.1 / 3.2 | ollama pull llama3.2:3b | 小さく速いが、複数ステップのツール利用は苦手 |
実用的な目安として、小型モデル(1B〜4B パラメーター)は説明の明確なツールを 1 つ呼ぶことはできますが、複数のサーバーが数十個のツールを公開すると混乱しがちです。複数サーバーを使うエージェント的な作業では、20B 以上のほうが明らかに安定します。
コンテキスト長を引き上げる
これは Ollama で MCP が「動かない」最も多い原因です。ツール定義はすべてプロンプトに入りますが、Ollama のデフォルトのコンテキストは VRAM 次第で、24 GiB 未満なら 4k トークン、24〜48 GiB なら 32k、48 GiB 以上なら 256k です。Ollama はエージェントやコーディングツールに少なくとも 64,000 トークンを推奨しています。Ollama アプリの設定のスライダーで変えるか、サーバー起動時に指定します。
OLLAMA_CONTEXT_LENGTH=64000 ollama serve
その後、ollama ps で実際に割り当てられた値(CONTEXT 列)を確認します。
ステップ 2(最速):ターミナルで ollmcp を使う
ollmcp は Ollama 専用に作られた MCP クライアントです。stdio、SSE、Streamable HTTP のサーバーに対応し、ツールのオン・オフを切り替えられ、ツールを呼ぶたびに確認を求めます。
# install
uv tool install --upgrade ollmcp # or: pip install --upgrade ollmcp
# add MCP servers (saved for future sessions)
ollmcp mcp add playwright -- npx @playwright/mcp@latest
ollmcp mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem ~/Documents
# start a chat with a tool-capable model
ollmcp --model qwen3:8b
セッション内では、/tools でツール選択画面、/model でモデルの切り替え、/hil で人による確認(human-in-the-loop)のオン・オフができます。リモートサーバーも使えます。
ollmcp mcp add --transport http github https://api.githubcopilot.com/mcp/ \
--header "Authorization: Bearer $YOUR_GITHUB_PAT"
これは個人アクセストークンで接続する GitHub MCP サーバーです。Claude Desktop でサーバーを設定済みなら、ollmcp --claude-desktop でその設定から読み込めます。最初のテストには Playwright MCP サーバーがおすすめです。モデルにページを開いて要約させ、ターミナルでツール呼び出しの様子を確認しましょう。
ステップ 2(コーディング):Ollama で Claude Code や Codex を動かす
Ollama は 2 大コーディングエージェントをローカルモデルで起動でき、どちらも本格的な MCP クライアントです。
Claude Code。 ollama launch claude は Ollama の Anthropic 互換 API を使って Claude Code を起動します。MCP サーバーは通常どおり追加し、Ollama ではなく Claude Code の設定に保存されます。
claude mcp add --transport http context7 https://mcp.context7.com/mcp
ollama launch claude --model qwen3.5
手動で設定する場合、Ollama のドキュメントでは次の変数を使います。
export ANTHROPIC_AUTH_TOKEN=ollama
export ANTHROPIC_API_KEY=""
export ANTHROPIC_BASE_URL=http://localhost:11434
claude --model qwen3.5
スコープ、OAuth、/mcp については Claude Code MCP ガイドをご覧ください。
Codex CLI。 ollama launch codex(または codex --oss -m gpt-oss:20b)で Codex を Ollama 上で動かせます。MCP サーバーは codex mcp add で ~/.codex/config.toml に追加します。詳しくは Codex MCP 設定をご覧ください。どちらのエージェントも、実用には 64k 以上のコンテキストウィンドウが必要です。
ステップ 2(デスクトップ):Goose
Goose はオープンソースのエージェントで、Ollama プロバイダーを備え、MCP サーバーを「拡張機能(extensions)」として扱います。
- Ollama に接続する:Goose Desktop で Settings → Configure Provider を開き、Ollama を探して API ホストが
http://localhost:11434であることを確認します。CLI ではgoose configureを実行し、Configure Providers → Ollama を選び、qwen3などのモデル名を入力します。 - MCP サーバーを追加する:デスクトップではサイドバーの Extensions を開き、Add custom extension をクリックします。CLI では
goose configure→ Add Extension を選び、Command-line Extension(stdio)か Remote Extension (Streamable HTTP) を選びます。
拡張機能は ~/.config/goose/config.yaml に保存されます。
ステップ 2(Web UI):Open WebUI
Open WebUI は v0.6.31 から MCP にネイティブ対応しており、モデルには元々 Ollama を組み合わせられます。管理者として次の手順を行います。
- Settings → Admin → Integrations を開きます。
- External Tool Servers の下で + Add Connection をクリックします。
- Type を MCP (Streamable HTTP) にし、サーバーの URL を入力して認証方式(None、Bearer、OAuth 2.1 など)を選びます。
- 保存し、チャットでそのツールを有効にします。
ここでのネイティブ MCP は Streamable HTTP のみです。stdio サーバーは mcpo でラップし、OpenAPI のツールサーバーとして公開します。
uvx mcpo --port 8000 --api-key "top-secret" -- your_mcp_server_command
よくある落とし穴が 2 つあります。MCP の URL に OpenAPI タイプを選ばないこと、そしてサーバーの URL はブラウザーだけでなく Open WebUI のバックエンドから到達できる必要があることです。
その他の方法
- VS Code。 Ollama 拡張機能を入れると、ローカルモデルが VS Code Chat のモデル選択に加わります。MCP サーバーは VS Code 側で設定します(VS Code MCP 設定参照)。エージェントに MCP ツールを呼ばせたいなら、tools タグ付きのモデルを選びましょう。
- oterm。 Ollama 用のターミナルチャットクライアント(
uvx oterm)で、stdio と Streamable HTTP で MCP ツールを使えます。設定はconfig.jsonのmcpServersに書きます。 - 自作クライアント。 Ollama の Python と JavaScript のライブラリはツール呼び出しに対応しているので、公式の MCP SDK と組み合わせられます。サーバーのツール一覧を取得してツール定義として
chat()に渡し、MCP セッション経由で呼び出しを実行して結果を返します。SDK 側については Python MCP サーバーガイドが参考になります。
想定しておくべき制限
- ツール呼び出しの質。 ローカルモデルは最先端モデルよりも、ツールを使わなかったり、引数をでっち上げたり、ループしたりしがちです。ツールを減らし、説明を明確に書くことが何より効きます。MCP ツールディスカバリーもご覧ください。
- コンテキストの圧迫。 大きなサーバー 1 つで数千トークン分のツールスキーマが加わることもあります。タスクに必要なサーバーだけを有効にしましょう。
- 速度。 ツールの往復ごとに完全な生成が 1 回走ります。CPU への部分的なオフロード(
ollama psで確認)があると、エージェントのループはかなり遅くなります。 - ローカル=オフラインではない。 モデルはローカルで動いても、リモートの MCP サーバー(GitHub、Notion など)にはデータが送られます。
- セキュリティのルールは同じ。 どのモデルでも、ローカルの stdio サーバーはあなたの権限で動作します。確認プロンプトはオンのままにし、MCP セキュリティのベストプラクティスを読んでおきましょう。
トラブルシューティング
| 症状 | 対処 |
|---|---|
| モデルは答えるがツールを呼ばない | モデルに tools タグがないか、コンテキストが小さすぎてツール一覧が入らない。モデルを変えるか OLLAMA_CONTEXT_LENGTH を上げる。 |
| ツール選択が無効になっている(oterm) | 選んだモデルがツールに非対応。tools タグ付きのモデルを取得する。 |
| エージェントが前のステップを忘れる | コンテキスト不足。ollama ps の CONTEXT 列を確認する。 |
| クライアントが Ollama に接続できない | ollama serve(またはアプリ)が http://localhost:11434 で動いているか確認する。 |
| MCP サーバーが起動しない | コマンド(例:npx @playwright/mcp@latest)を手動で実行してエラーを直し、MCP Inspector でテストする。 |
| ツール追加後に Open WebUI が読み込み中のまま | OpenAPI タイプを選んだか、mcpServers の JSON を貼り付けた。接続を削除し、MCP (Streamable HTTP) として追加し直す。 |
次のステップ
- MCP サーバーディレクトリでローカル環境に組み込むサーバーを探しましょう。Filesystem、Playwright、Memory は完全にローカルで動くので、最初の一歩に最適です。
- プロトコル自体が初めてなら、MCP とはと MCP と RAG の違いをお読みください。
- 自分のツールをローカルモデルに公開したいなら、MCP サーバーの作り方から始めましょう。
よくある質問
Ollama は MCP に対応していますか?
- Ollama はツール呼び出しに対応していますが MCP クライアントではないため、単体では MCP サーバーに接続できません。ollmcp、Claude Code、Codex、Goose、Open WebUI など、Ollama をモデルのバックエンドとして使う MCP クライアントが必要です。
MCP で使える Ollama のモデルはどれですか?
- ollama.com で「tools」タグが付いたモデルなら使えます。例えば qwen3、qwen3.5、gemma4、gpt-oss、llama3.1 や llama3.2 です。複数の MCP サーバーや複数ステップのツール利用では、20B 前後以上の大きなモデルのほうがはるかに安定します。
Ollama のモデルが MCP ツールを呼ばないのはなぜですか?
- 多くの場合、モデルがツールに非対応か、コンテキストウィンドウが小さすぎてツール定義が入りきりません。tools タグ付きのモデルを選び、OLLAMA_CONTEXT_LENGTH かアプリ設定のスライダーでコンテキスト長を 64k トークン以上にしてください。
Claude Code を Ollama と MCP サーバーで使えますか?
- 使えます。「ollama launch claude」で Claude Code をローカルまたはクラウドの Ollama モデル上で起動し、いつもどおり「claude mcp add」で MCP サーバーを追加します。MCP サーバーは Claude Code 自身の設定に保存されます。