What is mcp-ollama?
An MCP server that hands work to Ollama on the same
machine and passes the answer back. Ten tools over stdio. Your client calls one
of them, Ollama does the generating on your own GPU, and nothing is charged to
an API account.
Most of a working session is mechanical. Docstrings, commit messages, PR
descriptions, changelog entries, classification and tagging, summarising a long
file, converting one format into another, and having a small vision model look
at a screenshot and report what's on screen. None of that needs a frontier
model, and most of it gets one anyway, because that's what your client already
has an API key for.
Hand it a staged diff and a commit message comes back. Hand it a chunk of
source and you get a docstring, a test stub or a set of type annotations. All
ten tools, and what each one takes, are in the tools.
The orchestrator decides what gets routed here. This server makes no judgement
about what belongs local, and it doesn't stream, queue or cache. It keeps
nothing between calls beyond a random identifier for the process it's running
in.
It depends on two things and ships neither. Node 18 or newer runs it, and a
running Ollama with at least one model pulled does the actual generating. There
are no weights in this repository and no download of weights at install time.
The default model is hermes3:8b, which you can override per call or per
environment.
Why this sits under ~alter
You already decided that some work stays here. That's why there's a model on
this disk, pulled once and left there, instead of an API key doing the same job
from a datacentre you'll never see. ~alter starts from the same decision and
points it at the other thing that leaves your machine constantly, which is the
record of who you are.
Nothing on this machine answers that well today. Your account is a password at a
login screen and a token in a config file, and each of those checks one moment
and then stops looking. The years of work that actually say who you are sit
outside anything either of them can see. An agent commits under your name now,
in your editor, and when somebody asks later who allowed that, there's no
answer written down anywhere.
~alter answers that with a handle. ~yourname, one of them, carrying a record
built out of work you actually did. A client speaking the protocol picks it up
without being configured again, much the way this server picks up a model you
pulled once and left on the disk.
You bought hardware to stop paying per call. On that record the per-call money
runs the other way. The bare fact that you exist is free for anyone to check,
depth past that is charged to whoever wants it, and you're the one who decides
which readers reach which depth.
None of it is needed here. mcp-ollama has no login and asks for no handle, and
it behaves the same whether you hold one or not. There's one small wire between
them and it's worth naming plainly. If the ~alter runtime happens to be
installed on this machine, every local generation appends a single line to a
file in your own home directory, recording that the work ran here at no API
cost. That line never goes anywhere, and if the runtime isn't installed no line
gets written at all.
I want to know more
Your friends do not know you from a login. Neither does your family, or the people you work with, or your sports team. They know who you are from how you have shown up, over years. You may look and sound nothing like you did ten years ago and it is still you.
Software still asks the narrow question. A password at the login screen. A token in the app. Each one checks whether this is the right person, right now, at this exact spot, and then looks away. Everything in between is invisible to it, and that is almost all of your life. The AI tools made it worse, because one of them writes in your name now, and when somebody asks who allowed it, there is no answer anywhere on this machine.
One name, and the record under it is yours. ~yourname works at every tool that speaks the protocol, so nothing is set up twice and there is no key to paste, at any point. What is in the record was read from what you did, not typed into a box by you or guessed at by a model. You can cut off access to any of it with one command. No form, no review.
Being read pays you. Anyone can check for free that your handle exists. Reading further, past the fact of you, costs the reader money, that money goes to you, and you decide who gets to read what. Collectives hold a record on the same terms, because it is one record at every scale and the same form holds you, your team, and your country. A union, a club, a trade body, or a group of people who have never met can vouch for their own members and be read the same way you are.
Threads are how you get somewhere. A thread is something you are working towards. You take one on yourself, or ~Alter plants one from what it can already see, or a collective confers one on you. What gets read is the trail you leave while you are doing it, never a certificate at the end.
All of that is the short version of an argument set out properly, in eight chapters at truealter.com/origin. Its seventy-six predictions were each written so the data could come back and say no. Five of them did, and those five are still published alongside the rest.
I want to check it myself
None of it needs taking on trust. Hand this to the AI you already use and
let it take you through in your own words.
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.
The ~alter command line is where a person meets ~alter, and this isn't that.
mcp-ollama has no command of its own worth typing and never asks you to log
in to anything. It's a process your MCP client starts and stops, and it
happens to be maintained by the same people.
Install
npm install -g @truealter/mcp-ollama
That puts one command on your PATH, mcp-ollama, which is the process your
client launches. The package ships the build already done, so there is no
compile step and no toolchain to have installed first. CI builds it against
Node 18, 20 and 22 before publish, so anything in that range is known to work
at runtime.
If you would rather install nothing at all, npx -y @truealter/mcp-ollama
fetches it on first use and runs the same process. That is the form used in
the client configuration below.
The scoped name is the one to type. The unscoped mcp-ollama on the public
registry belongs to an unrelated publisher and is not this package.
Nothing is installed as a service and nothing runs in the background. Your
client starts the process when it needs it and stops it when it is done.
Routing your first job
1. Pull the model it reaches for by default
That's the default this server reaches for when a tool call doesn't name a
model. It's quick and it's honest at classification, tagging and short
generations. Heavier models are worth having for code work, and
choosing a model covers when to bother.
2. Register the server with your client
claude mcp add --transport stdio ollama -- npx -y @truealter/mcp-ollama
If you installed globally, -- mcp-ollama works just as well and skips the
fetch. Cursor, Cline and anything else MCP-aware take the same shape in their
own config. The client launches the process; you never run it by hand except
to debug, and if you do, it sits there waiting on stdin, which is correct
rather than broken.
3. Ask your client what is on the host
List the models on the local Ollama host.
Say that to your client in whatever words you like. It resolves to
local_models, which reads Ollama's tag list and reports each model's size,
parameter count, quantisation and family. If what you just pulled comes back,
the wire is good end to end.
4. Hand it a diff and ask for a commit message