Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Build an interactive timeline from your own materials — never from invented content.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
链接指向作者自己的文件;我们不托管也不重新打包它。打开文件后,Claude Desktop 会进行安装。
在终端中运行这条命令
浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 lukebmandel-debug 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(1.0.0)于3个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 MCPB。
同一分类中有:Spec Driven Development, Remote Desktop Commander, NexusWindows
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ 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.
Windows computer use in the background: desktop apps driven without your mouse or keyboard.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
mcp-name: io.github.lukebmandel-debug/alto-connector
A Claude connector that interviews you about your own materials — a course, a novel, a research project — and builds you an interactive, filterable "liquid-glass" Alto timeline: glass cards on colored act bands, entity chips, routed connection lines, detail pages with your own schema, highlights and notes, mobile layout, and a self-contained offline file you can share.
The one rule (§0): Alto is a closed knowledge container. It connects and organizes what *you* provide — it never invents facts, events, holdings, or descriptions. Sparse notes make a sparse timeline, on purpose. The connector enforces this server-side: authoring tools stay locked until your materials and explicit consent are recorded.
Download the file for your computer from the latest release, then in Claude Desktop go to Settings → Extensions → Advanced settings → Install Extension… and choose it. Restart Claude Desktop and Alto appears under Extensions.
| macOS, Apple Silicon | Alto-macos-arm64.mcpb |
| macOS, Intel | Alto-macos-x64.mcpb |
| Windows, 64-bit | Alto-windows-x64.mcpb |
Nothing else to install. Each bundle carries its own Python, which is why it is around 50MB. Claude Desktop ships Node but not Python, and stock macOS still has 3.9 — too old for this server.
Alto is a plain MCP server, so any MCP client can run it — Claude Code, Cline, Zed, Continue, your own script. No download, no bundle.
Add this to your client's MCP config:
{
"mcpServers": { "alto": { "command": "uvx", "args": ["--from", "git+https://github.com/lukebmandel-debug/alto-connector", "alto-connector"] } } }
Requires uv (curl -LsSf https://astral.sh/uv/install.sh | sh). uvx fetches and runs Alto in a throwaway environment each time, so there is nothing to install or update.
Prefer a permanent install? Then alto-connector is on your PATH and the config is simply {"command": "alto-connector"}:
pip install git+https://github.com/lukebmandel-debug/alto-connector
alto-connector --help # check it works; without --help it waits for a
Everything works the same way — the interview, the build, the offline file — because the bundle and this are the same server; the bundle just carries its own Python so Claude Desktop users need not install one.
Timelines land in ~/Documents/Alto. Each is a single self-contained HTML file you open in any browser — no server, no account, no internet. Shareable web links are optional (see Publishing below); without them, that file is the finished product.
Then tell your client: *"I want to build a timeline in Alto — interview me."*
bash setup.sh — macOS and Claude Desktop only; it registers the connector by writing claude_desktop_config.json. For any other client, use one of the two methods above pointed at your checkout.
get_interview_guide and runs a short warm interview:https:// .web.app/pv/ / that only your Google account can open, listed on your homepage, with cross-device sync of highlights/notes/reports. To show it to someone, create a share link from your homepage.get_timeline.Every timeline is private. It goes on your own Alto site — a free Firebase project (Spark plan, no card) in *your* Google account, never one of ours — at https:// .web.app/pv/ /, which opens only for the Google account that published it. There is no public option.
You set nothing up. The first time you use Alto, Claude calls set_up_site, which runs in the background while the interview goes on:
firestore.rules, then checks from outside that anonymous reads of your data are refused;From then on your projects live in your account (Keep projects in: auto), so every computer you sign in on sees the same ones, and publish_timeline puts a timeline on your site with nothing to upload.
Sharing is a share link. To show a timeline to someone, use "Create share link" in its menu on your homepage. It is a snapshot of that one page at /s/ /, readable by anyone with the link without an install or an Alto account, and you can revoke it from the same place at any time.
Already have a Firebase project? Fill in the extension's *Advanced* settings (site, project id, and optionally the web config) — or, from a checkout, ALTO_FIREBASE_SITE, ALTO_FIREBASE_PROJECT, ALTO_FIREBASE_CONFIG. If this computer has no Firebase CLI, set_up_site installs Alto's own and finishes setting up *that* project (Firestore, sign-in, rules) instead of making a new one. ALTO_FIREBASE_BIN points at a CLI of your own.
Two things worth knowing before you share a link. A share link is readable by anyone who has it — the key cannot be guessed, but it is not access-controlled, so revoke it when it has done its job. And a reader who signs in to sync their notes gets an account in *your* Firebase project: the security rules stop you reading their notes through the app, but you own the project and can see them in the Firebase console.
set_up_site copies whatever is in the local folder into your account as its last step. To do it by hand (for example from another folder):
alto-connector migrate --from ~/Documents/Alto
It copies, never deletes, and skips anything already in your account.
A person can have an Alto site for each Google account they use. Every timeline tool takes an optional account (a site name like luke-alto, its address, or the Google email), and nothing is remembered between calls — one connector process can serve several chats.
get_interview_guide lists every account this computer is signed in to and what is in each, so a chat opened on its own (not from a timeline's Edit timeline button) finds a timeline the user names. list_projects with account="all" does the same on demand.connect_account(site) adds a site the user already has, from its address alone: Alto reads the site's public web config (/__/firebase/init.json), and the user clicks Continue with Google on the site's own sign-in page. Accounts are kept in ~/.config/alto/accounts.json (no tokens; each sign-in is its own session- .json, mode 0600).…/pv/ /) or its title. A not_found says where it is: another account (found_in_accounts), or the homepage with no draft behind it (published_without_draft).import_timeline(published_key) restores a draft whose page was published from a folder-backed connector: that publish now keeps a compressed copy of the draft beside the page (users/{uid}/alto_snapshots/{key}).engine/ — the three page templates, extracted content-free from the reference build. The extraction fixtures they were derived from are not published: they contain the author's own writing. test_roundtrip.py skips without them.alto/build/ — brief model, height estimator, layout resolver (a port of the engine's own), block generators, verifier, offline bundler.alto/mcp_server.py — the 29 MCP tools + interview prompt.alto/build/sanitize.py — makes user content inert before it reaches a page. Load-bearing: the engine renders detail sections straight into innerHTML.alto/publish_static.py — free-tier static publishing via the Firebase CLI.packaging/ — the .mcpb bundles, the download page and the registry entry. See packaging/README.md.alto/web.py, alto/auth/ — a full remote-server variant (streamable HTTP.venv/bin/python -m pytest tests/ # incl. the golden round-trip
python3 -m alto.build samples/contracts_brief.json --bundle # CLI build
See alto/privacy.html. Short version: your source documents stay in your Claude conversation; the connector stores only what it builds, locally in ~/Documents/Alto (and, if you publish, on your own Firebase site).