Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Wraps local Ollama models so bulk generation runs on your own hardware, not a paid API.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"ollama": {
"command": "npx",
"args": [
"-y",
"@truealter/mcp-ollama"
]
}
}
}在终端中运行这条命令
claude mcp add ollama -- npx -y @truealter/mcp-ollama粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"ollama": {
"command": "npx",
"args": [
"-y",
"@truealter/mcp-ollama"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"ollama": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@truealter/mcp-ollama"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月9日
注册名称已通过 GitHub 账户 true-alter 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.2.1)于2个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, awardlanes
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Hands the work that shouldn't leave your machine to the model already sitting on it
What it does · Install · The tools · Why this sits under ~alter
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.
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.
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.
ollama pull hermes3:8b
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.
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.
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.
git diff --staged
Hand that output to your client and ask for a commit message. It routes to local_diff with commit-message, which prompts for imperative mood, a subject under 72 characters and a body explaining why rather than what. Nothing about that needed a frontier model, and now it doesn't use one.
| Tool | What it does |
|---|---|
local_generate | Free-form generation with your own system prompt, temperature and token ceiling |
local_summarize | Summarise bulk text as bullets, a paragraph or one line, optionally focused on a theme |
local_analyze | Structure pulled out of text, classification, entities or tags, in an output shape you name |
local_draft | Formulaic prose against a convention you supply |
local_code | docstring, test, explain, review, types, comments or refactor-suggest over a chunk of source |
local_diff | commit-message, pr-description, changelog, summary or impact from a diff |
local_transform | Mechanical pattern transforms, format conversions, renames and syntax migrations |
local_models | What's on this Ollama host, with sizes and quantisation |
local_pull | Pull a model onto this host by name, untagged names only |
local_vision | Have a vision model look at screenshots and report see, emptystate or legibility |
Ten of them, and the full schemas come over MCP introspection, so any MCP-aware client enumerates them without being told.
Two take a max_tokens argument. local_generate defaults to 2048 and local_summarize to 1024. The rest set their own ceiling in code, 4096 for local_code and local_transform, 2048 for local_analyze and most of local_diff, 512 for a commit message, 1024 for local_draft. If output comes back cut short on one of those, split the input rather than hunting for a parameter that isn't there. Temperature is exposed on local_generate only.
local_vision is the odd one and worth a note. It reads pixels and reports what is on screen, whether the main content area holds real data or an error, which regions exist, what text
只显示了开头部分;其余内容请在仓库中阅读