mcp-ollama について
mcp-ollamaは、stdio経由のMCPツール呼び出しを同じマシン上のOllamaモデルに渡すサーバーです。ローカルで生成、要約、コード処理、画像分析を行いたいユーザー向けに、10種類のツールとモデル選択機能を提供します。
主な機能
- 01ローカル生成用の10種類のツール
- 02テキストの要約、分類、タグ付け
- 03コード片や差分の処理
- 04テキスト形式や構文の変換
- 05ビジョンモデルによるスクリーンショット分析
- 06Ollamaモデルの一覧表示と取得
活用シーン
- 01ステージ済み差分からコミットメッセージを作成
- 02ソースコードからdocstringやテストのひな形を作成
- 03長文をテーマに沿って要約
- 04スクリーンショットの内容や読みやすさを確認
MCP 対応
stdio経由でMCPクライアントをローカルのOllamaに接続し、10種類のツールを公開します。クライアントからローカル生成、分析、変換、画像処理を呼び出せます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
10掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| model | string | いいえ | 使用する Ollama モデル(デフォルト:hermes3:8b) |
| prompt | string | はい | ローカルモデルへのプロンプト/タスク |
| system | string | いいえ | コンテキスト/役割を設定するシステムプロンプト(任意) |
| max_tokens | number | いいえ | 生成する最大トークン数(デフォルト:2048) |
| temperature | number | いいえ | サンプリング温度、0~2(デフォルト:0.3) |
詳細
~alter mcp-ollama
マシンから外に出すべきでない作業を、そのマシン上ですでに動いているモデルに任せます
できること · インストール · ツール · なぜこれが~alterの一部なのか
mcp-ollama とは?
Ollama に同じマシン上で作業を任せ、その回答を返す MCP サーバーです。stdio 経由で 10 個のツールを提供します。クライアントがそのうちの 1 つを呼び出すと、Ollama がローカルの GPU で生成を行うため、API アカウントに料金が発生しません。
作業セッションの大半は機械的なものです。docstring、コミットメッセージ、PR の説明、変更履歴、分類やタグ付け、長いファイルの要約、形式の変換、そして小型のビジョンモデルにスクリーンショットを見せて画面に何が表示されているかを報告させることなどです。こうした作業に最先端モデルは必要ありませんが、クライアントがすでに API キーを持っているという理由で、そのほとんどに最先端モデルが使われています。
ステージング済みの差分を渡せば、コミットメッセージが返ってきます。ソースの一部を渡せば、docstring、テストのスタブ、または型注釈が得られます。10 個すべてのツールと、それぞれが受け取るデータについては、ツールをご覧ください。
何をここに振り分けるかはオーケストレーターが決めます。このサーバーは、何をローカルで処理すべきかを判断しません。また、ストリーミング、キューイング、キャッシュも行いません。呼び出しの間に保持するのは、実行中のプロセスに割り当てられたランダムな識別子だけです。
このサーバーは 2 つのものに依存しますが、どちらも同梱していません。Node 18 以降で実行し、モデルを少なくとも 1 つダウンロード済みの Ollama を起動しておくと、実際の生成が行われます。このリポジトリには重みは含まれておらず、インストール時に重みがダウンロードされることもありません。デフォルトのモデルは hermes3:8b で、呼び出しごと、または環境ごとに変更できます。
なぜこれが~alterの一部なのか
一部の作業をここにとどめると、すでに決めたはずです。だからこそ、このディスクにはモデルがあり、一度ダウンロードしてそのまま置いてあります。見たこともないデータセンターから同じ作業をさせるために、API キーを使う必要はありません。~alter も同じ判断から出発し、常にマシンの外に出ていくもう一つのもの、つまりあなたが何者であるかを記録したものにその考えを向けます。
今のところ、このマシン上にそれをうまく解決するものはありません。あなたのアカウントはログイン画面のパスワードと設定ファイル内のトークンであり、どちらもある時点で確認した後は、もう見にいきません。実際にあなたが何者かを示す長年の仕事は、そのどちらからも見えない場所にあります。エージェントは今、あなたの名前で、あなたのエディター上でコミットしています。後になって誰かに、それを誰が許可したのか尋ねられても、どこにも答えが記録されていません。
~alter はハンドルでそれに応えます。~yourname はそのひとつで、あなたが実際に行った仕事から構築された記録を持ちます。プロトコルを話すクライアントは、再設定しなくてもそれを利用できます。一度ダウンロードしてディスクに置いたモデルをこのサーバーが使うのと、よく似ています。
呼び出しごとの料金をやめるために、あなたはハードウェアを購入しました。その記録では、呼び出しごとのお金の流れが逆になります。あなたが存在するという事実だけなら誰でも無料で確認でき、それ以上の深さを知りたい人には料金が発生します。そして、どの閲覧者にどこまで見せるかを決めるのはあなたです。
ここでは、どれも必要ありません。mcp-ollamaにはログイン機能がなく、ハンドルも求めません。また、ハンドルを持っていてもいなくても動作は同じです。その間にある小さな接点は、率直に名前を付けておく価値があります。~alterランタイムがこのマシンにインストールされている場合、ローカルで生成するたびに、あなた自身のホームディレクトリにあるファイルへ1行だけ追記され、APIコストなしでここで処理が実行されたことが記録されます。その行が外部に送られることはありません。また、ランタイムがインストールされていなければ、行はまったく書き込まれません。
詳しく知りたい
友人はログイン情報からあなたのことを知るわけではありません。家族も、職場の人たちも、スポーツチームの仲間も同じです。何年ものあいだ、あなたがどう振る舞ってきたかを通じて、あなたが誰なのかを知っています。10年前とは見た目も声もまったく違っているかもしれません。それでも、あなたはあなたです。
ソフトウェアが尋ねるのは、今も狭い問いです。ログイン画面のパスワード。アプリのトークン。そのどれもが、今この瞬間、この場所にいるのが正しい人かどうかを確かめると、あとは目をそらします。その間にあることはすべて、ソフトウェアには見えません。それがあなたの人生のほとんどなのに。AIツールは状況をさらに悪くしました。そのうちの1つが今ではあなたの名前で文章を書き、誰かが誰の許可でそれをしたのか尋ねても、このマシンのどこにも答えがないからです。
名前は1つ、その下にある記録はあなたのものです。 ~yournameは、このプロトコルを話すあらゆるツールで使えるため、何かを二度設定する必要はなく、どの時点でも貼り付けるキーはありません。記録にあるのは、あなたが入力したり、モデルが推測したりした内容ではなく、あなたの行動から読み取られたものです。コマンド1つで、そのいずれへのアクセスも遮断できます。フォームも審査もありません。
読まれることで、あなたに報酬が支払われます。誰でも無料で、あなたのハンドルが存在することを確認できます。あなたの存在という事実を越えて記録を読むには、読み手は料金を支払い、そのお金はあなたに渡ります。誰が何を読めるかは、あなたが決めます。集団も同じ条件で記録を保持します。どの規模でも記録は1つであり、あなた自身にも、チームにも、国にも同じ形式が適用されるからです。労働組合、クラブ、業界団体、あるいは一度も会ったことのない人々のグループも、自分たちのメンバーを保証し、あなたと同じように読まれることができます。
スレッドが、目的地へたどり着く道筋です。スレッドとは、あなたが目指して取り組んでいることです。自分で引き受けることも、~Alterがすでに把握していることから作ることも、集団からあなたに与えられることもあります。読み取られるのは、取り組むなかであなたが残した軌跡であり、最後に受け取る証明書では決してありません。
これらすべてを短くまとめた議論は、truealter.com/originの8章で詳しく説明されています。76件の予測はそれぞれ、データによって否定されうるように書かれました。そのうち5件は実際に否定され、残りとともに今も公開されています。
自分で確かめたい
どれも、うのみにする必要はありません。これを、あなたがすでに使っているAIに渡し、 あなた自身の言葉で説明してもらいましょう。
Go to truealter.com, find the genesis and the origin papers, and read all of
them. Then start a discussion with me in my own language, no jargon.
Ask me one question at a time and wait for my answer. Follow what I am curious
about, not the order the site is written in.
Do not only read the pages. Connect to their interface directly and call
get_started. That tells you where I am and what comes next, and we work the
rest of this from there.
If I have a ~handle I will give it to you. If I do not and I decide I want
one, set it up with me here.
What I want to understand is what ~Alter is, how it applies to me, and what it
means for everyone else. Find me somewhere in it, and not the version written
for people who work in technology. Find the life nearest mine and walk me
through it, including what it would cost me.
Try to prove them wrong. Go and find where they show their working, and if
something is unclear or does not hold up, say so.
alterのコマンドラインは、人がalterと出会う場所ですが、これはそれではありません。
mcp-ollamaには、わざわざ入力するような独自のコマンドはなく、何かへのログインを求めることもありません。これはMCPクライアントが起動と停止を行うプロセスで、たまたま同じ人たちによってメンテナンスされています。
インストール
npm install -g @truealter/mcp-ollama
これにより、クライアントが起動するプロセスである mcp-ollama が PATH に追加されます。パッケージにはビルド済みのものが含まれているため、コンパイルの手順も、あらかじめインストールしておく必要のあるツールチェーンもありません。公開前に CI で Node 18、20、22 を使ってビルドしているため、実行時にはこの範囲のバージョンで動作することが確認されています。
何もインストールしたくない場合は、npx -y @truealter/mcp-ollama が初回使用時に取得し、同じプロセスを実行します。以下のクライアント設定では、この形式を使用しています。
入力するのはスコープ付きの名前です。公開レジストリにあるスコープなしの mcp-ollama は別の公開者のものであり、このパッケージではありません。
サービスとしてインストールされるものはなく、バックグラウンドで実行されるものもありません。クライアントが必要に応じてプロセスを起動し、不要になったら停止します。
最初のジョブを実行する
1. デフォルトで使用されるモデルをプルする
ollama pull hermes3:8b
ツールの呼び出しでモデルが指定されていない場合、このサーバーはこれをデフォルトで使用します。分類、タグ付け、短い生成を素早くこなせます。コード作業にはより高性能なモデルがあると便利です。どんな場合に使うべきかはモデルの選択で説明します。
2. クライアントにサーバーを登録する
claude mcp add --transport stdio ollama -- npx -y @truealter/mcp-ollama
グローバルにインストールした場合は、-- mcp-ollama でも同じように動作し、取得を省略できます。Cursor、Cline など、MCP に対応するクライアントでも、それぞれの設定で同じ形式を使います。プロセスを起動するのはクライアントです。デバッグ時以外は手動で実行する必要はありません。デバッグのために実行した場合、標準入力を待ち続けますが、これは正常な動作であり、不具合ではありません。
3. ホスト上に何があるか、クライアントに尋ねる
List the models on the local Ollama host.
好きな言葉でクライアントに伝えてください。これは local_models に解決されます。Ollama のタグ一覧を読み取り、各モデルのサイズ、パラメーター数、量子化、ファミリーを報告します。たった今プルしたモデルが結果に表示されれば、通信は最初から最後まで正常です。
4. 差分を渡して、コミットメッセージを作成するよう頼む
git diff --staged
その出力をクライアントに渡し、コミットメッセージを作成するよう頼んでください。commit-message を指定した local_diff が呼び出され、命令形、72 文字以内の件名、そして何をしたかではなくなぜ行ったかを説明する本文を促します。そのために最先端モデルは必要ありませんでしたし、これからも使いません。
ツール
| ツール | 内容 |
|---|---|
local_generate | 独自のシステムプロンプト、温度、トークン上限を指定した自由形式の生成 |
local_summarize | 大量のテキストを、テーマに焦点を当てることもできる箇条書き、段落、または一行に要約 |
local_analyze | テキストからの構造抽出、分類、エンティティやタグの抽出を、指定した出力形式で実行 |
local_draft | 指定した慣例に沿った定型的な文章の作成 |
local_code | ソースコードの一部に対する docstring、test、explain、review、types、comments、または refactor-suggest |
local_diff | 差分から commit-message、pr-description、changelog、summary、または impact を作成 |
local_transform | 機械的なパターン変換、形式変換、名前変更、構文の移行 |
local_models | この Ollama ホストにあるモデルと、そのサイズおよび量子化方式を表示 |
local_pull | 名前でモデルをこのホストに取得。タグのない名前のみ |
local_vision | ビジョンモデルでスクリーンショットを確認し、see、emptystate、または legibility を報告 |
10 個のツールがあり、完全なスキーマは MCP イントロスペクションで取得されるため、MCP 対応クライアントなら、事前に伝えなくてもツールを列挙できます。
max_tokens 引数を取るツールは 2 つです。local_generate のデフォルトは 2048、local_summarize のデフォルトは 1024 です。それ以外のツールでは、コード内で上限が設定されています。local_code と local_transform は 4096、local_analyze とほとんどの local_diff は 2048、コミットメッセージは 512、local_draft は 1024 です。これらのツールで出力が途中で切れた場合は、存在しないパラメーターを探すのではなく、入力を分割してください。温度を指定できるのは local_generate のみです。
local_vision は少し特殊なので、注意が必要です。ピクセルを読み取って画面上の内容、メインコンテンツ領域に実データがあるかエラーがあるか、どの領域が存在するか、どのテキストが切れているか、または判読できないかを報告します。小さなビジョンモデルはレンダリングの読み取りには優れていますが、判断は苦手なため、重大度の評価や承認は意図的に行いません。ほぼフル解像度の画像を入力してください。幅が約 1280px を下回ると、存在しないデータを作り始めます。
モデルの選択
| 変数 | デフォルト | 内容 |
|---|---|---|
OLLAMA_HOST | http://localhost:11434 | Ollama がリッスンしている場所。下記の制限を上書きしない限り、ループバックのみ |
OLLAMA_MODEL | hermes3:8b | ツール呼び出しでモデルが指定されていない場合に使用するモデル |
OLLAMA_VISION_MODEL | qwen2.5vl:7b | 呼び出しでモデルが指定されていない場合に local_vision が使用するモデル |
MCP_OLLAMA_ALLOW_REMOTE | 未設定 | 1 に設定すると、ループバック以外の OLLAMA_HOST を許可 |
各呼び出しで独自の model を指定でき、環境変数のデフォルトは指定がない場合にのみ適用されるため、再設定せずに 1 つのサーバーでさまざまなワークロードを処理できます。
| ワークロード | 試すモデル | 理由 |
|---|---|---|
| 分類、タグ付け、一行の出力 | hermes3:8b | 応答が最も速く、常駐させるコストも低い |
| コミットメッセージ、変更履歴、要約 | qwen2.5-14b-instruct | より優れた文章を生成し、16GB のカードでも余裕がある |
| コードレビュー、docstring、テスト | qwen2.5-coder:32b | コードに特化しており、追加の VRAM を使う価値がある |
| レンダリングの確認 | qwen2.5vl:7b | ビジョンのデフォルトで、GPU 上に置いておくのに十分小さい |
使ったことのないホストでは、セッションの開始時に local_models を実行してください。
Docker での実行
イメージはどこにも公開されていないため、以下のすべての手順で、このリポジトリからビルドを行います。
docker build -t mcp-ollama .
Dockerfile は node:20-alpine をベースにビルドし、すでに OLLAMA_HOST を http://host.docker.internal:11434 に設定しています。そのため、コンテナーは内部で Ollama を探すのではなく、ホスト上の Ollama に接続します。このアドレスはサーバーから見るとループバックではないため、ループバック制限によって拒否され、MCP_OLLAMA_ALLOW_REMOTE=1 も設定しない限り、起動時にプロセスが終了します。イメージではこの変数を設定しないため、ここに記載するすべてのコマンドで設定しています。
イメージでは OLLAMA_MODEL も hermes3:8b に設定されています。別のデフォルトモデルに切り替えるには、-e OLLAMA_MODEL=... を追加してください。
macOS および Windows での Docker
docker run -i --rm -e MCP_OLLAMA_ALLOW_REMOTE=1 mcp-ollama
host.docker.internal はデフォルトでは名前解決されないため、ブリッジゲートウェイにマッピングします。
docker run -i --rm \
--add-host=host.docker.internal:host-gateway \
-e MCP_OLLAMA_ALLOW_REMOTE=1 \
mcp-ollama
Docker Compose
このリポジトリには docker-compose.yml が含まれているため、作成するものはありません。extra_hosts マッピングが設定されているため、同じファイルを Linux と Docker Desktop の両方で使用できます。
このサーバーは標準入力と標準出力を介して MCP を通信するため、パイプの反対側にクライアントが必要です。docker compose up は何も接続せずにサーバーを起動するため、サーバーは何もしないまま待機します。パイプを Compose に処理させないよう、-T を指定して run を使用してください。
docker compose run --rm -T mcp-ollama
クライアントからの接続先の指定
MCP クライアントがサーバー自体を起動するため、すでに実行中のコンテナではなく、コマンド全体を渡してください。
{
"mcpServers": {
"ollama": {
"command": "docker",
"args": ["compose", "-f", "/path/to/docker-compose.yml", "run", "--rm", "-T", "mcp-ollama"]
}
}
}
うまく動作しない場合
ツール呼び出し時に Ollama error 404 が発生する
そのモデルはまだプルされていません。シェルから ollama pull <name> を実行してください。local_pull が処理できるのはタグなしの名前のみです。hermes3:8b のようなタグのコロンはバリデーターに拒否されます。
fetch failed、または接続が拒否される
Ollama が実行されていないか、OLLAMA_HOST の接続先が間違っています。curl $OLLAMA_HOST/api/tags で確認してください。コンテナ内の localhost は、そのコンテナ自体を指します。
OLLAMA_HOST must be loopback が表示され、プロセスがすぐに終了する
これはゲートが想定どおり機能している状態です。localhost に戻すか、リモートホストを意図的に指定する場合は MCP_OLLAMA_ALLOW_REMOTE=1 を設定してください。
呼び出しに時間がかかる
モデルは初回に読み込む必要がありますが、同じ Ollama プロセスでのそれ以降の処理は大幅に速くなります。モデルが VRAM より大きい場合、Ollama は処理を CPU に移すため、ollama ps で確認できます。
Vision の呼び出しでメモリ使用量が急増する、または処理が極端に遅くなる
local_vision は意図的にコンテキストを 8192 に制限し、モデルを 30 分間保持します。32K のコンテキストに画像を 1 枚加えると、7900 クラスのカードでは 23GB を超えて CPU に処理が移るため、この上限が設けられています。
出力が途中で止まる
ツールのトークン上限を確認してください。ほとんどのツールは max_tokens を受け取りません。
このサーバーがマシン上で行うことと行わないこと
設定された OLLAMA_HOST 以外にはネットワーク接続を行いません。また、デフォルトではそのホストを localhost、127.0.0.1、または ::1 にする必要があります。ループバック以外の値を指定すると、プロンプトを別の場所へひそかに送信するのではなく、起動時にエラーになります。この制限を解除するには、明示的に MCP_OLLAMA_ALLOW_REMOTE=1 を指定する必要があります。意図的にリモートの Ollama を指定する場合、そのエンドポイントのセキュリティ状態は利用者の責任となります。
テレメトリ、分析、自動更新の確認はなく、パッケージにモデルの重みも含まれていません。ツールの入力はそのまま Ollama の HTTP API に送られ、応答は直接返されます。local_pull に渡されるモデル名は、レジストリエンドポイントに届く前に ^[a-z0-9][a-z0-9._/-]{0,127}$ に照らして検証されるため、呼び出し元から渡された文字列がその経路から外れることはありません。
知っておくべきローカルへの書き込みが 1 つあります。~/.local/share/alter-runtime/lib/substrate-emit.sh が存在する場合、生成のたびに、ツール、モデル、トークン数を記録した行が ~/.local/share/alter-runtime/token-burn.jsonl に追記されます。この処理は非同期で行われ、失敗しても通知されず、ツールの結果に影響することはありません。また、このヘルパーがインストールされていなければ、何も書き込まれません。
セキュリティ上の問題を報告するには、SECURITY.md を参照してください。
基盤となるプロトコル
レコード形式はオープンなインターネットドラフトで定義されているため、他の実装でも、この実装と同じレコードを読み書きできます。これらの形式は、以下のドラフトで規定されています。このサーバー自体はそれらを実装せず、実装しているコンポーネントと並行して動作します。
| ドラフト | 規定内容 |
|---|---|
compute-location-gate | シグナルの来歴クラスに基づき、推論を実行する前に、アイデンティティ推論をどこで実行するかを交渉する方法です。 |
mcp-dns-discovery | ~handle を公開する DNS レコード、その応答を行うサーバー、およびそれに紐付けられた署名済みエンベロープです。 |
スタック全体は18件のドラフトで構成されています。残りはIETF datatrackerでご覧いただけます。
その他
1つのアイデンティティ基盤と、複数の利用方法。
| 名前 | 内容 |
|---|---|
@truealter/cli | コマンドラインであり、人が利用するための入り口です。 |
| homebrew-tap | macOS と Linux 向けにパッケージ化されたコマンドラインです。 |
| runtime | お使いのマシン上で ~handle を認識できる状態に保つデーモンです。 |
@truealter/sdk | ご自身のコードからアイデンティティを読み取ります。 |
| obsidian | デバイス上の Obsidian ボルト内で ~Alter を利用できます。 |
| mcp-ollama | 実行するマシン内にとどめるべき処理のためのローカルモデルです。ここにいます。 |
ドキュメントはtruealter.com/docsにあります。
バグ報告や小規模なパッチを歓迎します。詳しくは CONTRIBUTING.mdをご覧ください。報告には、呼び出したツール、呼び出し元の クライアント、処理を振り分けたモデル、エラー全文、および Node と Ollama のバージョンを記載いただくと役立ちます。大規模な設計変更の場合は、作業に時間をかける前に、まず issue を作成して範囲について合意しましょう。
mcp-ollama は小規模なまま維持します。ローカルの Ollama プロセスに処理を振り分けることが、このプロジェクトのすべてです。
Apache 2.0。全文はLICENSEをご覧ください。Copyright 2026 Alter Meridian Pty Ltd(ABN 54 696 662 049)。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。