Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Preserve a user-authorized judgment and append later answers. No model verdict or human score.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
ARGUS_DIR, ARGUS_TOKEN, ARGUS_TZ标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"argus-decision": {
"command": "npx",
"args": [
"-y",
"argus-decision-mcp"
],
"env": {
"ARGUS_DIR": "your-value",
"ARGUS_TOKEN": "your-value",
"ARGUS_TZ": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add argus-decision --env ARGUS_DIR=your-value --env ARGUS_TOKEN=your-value --env ARGUS_TZ=your-value -- npx -y argus-decision-mcp运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"argus-decision": {
"command": "npx",
"args": [
"-y",
"argus-decision-mcp"
],
"env": {
"ARGUS_DIR": "your-value",
"ARGUS_TOKEN": "your-value",
"ARGUS_TZ": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"argus-decision": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"argus-decision-mcp"
],
"env": {
"ARGUS_DIR": "your-value",
"ARGUS_TOKEN": "your-value",
"ARGUS_TZ": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
ARGUS_DIR envARGUS_TZ env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 commet 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:ARGUS_TOKEN
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(2.1.0)于17天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Agent Data Tools: Utilities
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ 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.
103 tools: JSON repair, CSV, hashes, cron, dates, units, validators. 25 free calls.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
English | 한국어
Argus carries a consequential decision across conversations: the user-adopted prediction, what reality should show, when to return, and what actually happened. The result becomes context for the next judgment. Argus never scores the person or invents a verdict.
Part of Argus · web app at argus.voyage · MIT licensed.
You talk normally. Argus offers to keep one testable thing, then brings it back when reality can answer.
2026-08-19
you We're going with Postgres over DynamoDB — the join patterns kill us otherwise.
┌ Save this as a prediction? (your host renders the form) │ "Postgres handles our join patterns without a read-replica through Q4" │ check by 2026-10-01 └ accept as written · edit the wording or the date · decline
… six weeks later, in a different conversation …
2026-10-01 argus One check is due — you saved this on 2026-08-19: "Postgres handles our join patterns without a read-replica through Q4" What actually happened?
you We added a read replica in September. Analytics queries, not joins.
Recorded. The original sentence stays exactly as you wrote it, your answer is appended next to it, and nothing is scored.
Nothing is saved without you accepting it, and Argus never fills in the outcome for you.
Requirements: Node.js 18 or newer — Node 20 LTS is the tested version (node --version; get it from nodejs.org). No API key and no account: records are local files from the first call.
Pick your host. Every path below installs the same server.
The plugin wires this server for you and adds the decision commands on top:
/plugin marketplace add commet/Argus
/plugin install argus@argus
Restart Claude Code, then /argus:settings doctor confirms the wiring.
Want the server alone, without the commands? Add it directly:
claude mcp add argus -- npx -y argus-decision-mcp # this project only
claude mcp add -s user argus -- npx -y argus-decision-mcp # every project
claude mcp add defaults to the current project — use -s user if you want Argus everywhere.
Settings → Developer → Edit Config opens the file directly. It lives at:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonAdd Argus to it, then quit Claude Desktop completely and reopen it (a window close is not enough):
{
"mcpServers": { "argus-decision": { "command": "npx", "args": ["-y", "argus-decision-mcp"], "env": { "ARGUS_DIR": "/absolute/path/to/where/records/should/live/.argus" } } } }
ARGUS_DIR is optional here too — a desktop app has no "current project", so records go to your personal home ledger (~/.argus) by default rather than scattering. Set it when you want them somewhere specific. On Windows, escape the backslashes ("C:\\Users\\you\\decisions\\.argus").
Windows: server does not appear
npx -y argus-decision-mcp in a normal terminal prints a short help card and exits — that means the binary works (assistants launch it over a pipe, where it stays running as a server). A crash or error text instead of the card is the real problem.npx failing while it works in your terminal usually means npm is not installed globally. Check that %APPDATA%\npm exists; if not, run npm install -g npm.${APPDATA}, add "APPDATA": "C:\\Users\\you\\AppData\\Roaming\\" to the env block above.%APPDATA%\Claude\logs\mcp*.log (macOS: ~/Library/Logs/Claude).codex mcp add argus-decision -- npx -y argus-decision-mcp
codex mcp list # argus-decision should be listed and enabled
Restart Codex afterwards. A conversation opened before mcp add does not gain newly registered tools — quit and reopen the app, or start a new CLI session.
Codex: the confirmation form does not appear
Argus confirms a prediction with a one-tap form before saving it. Codex renders that form under its default approval policy. If yours is never, or approval_policy.granular.mcp_elicitations = false, Codex returns a protocol decline without ever showing the form. MCP supplies no marker that separates that policy response from a fast intentional decline, so Argus has to respect it as a decline. Enable MCP elicitations and retry if you want the form.
An AI-drafted premise has a chat fallback: when the confirm window cannot reach you, the draft comes back in the response, and once you approve it in conversation the assistant records it by calling again with chat_confirmed: true. Provenance stays ai_surfaced either way.
{
"mcpServers": { "argus-decision": { "command": "npx", "args": ["-y", "argus-decision-mcp"], "env": { "ARGUS_DIR": "/absolute/path/to/your/project/.argus" } } } }
Install once; there is nothing to update by hand. Leave the version off, as above — npx re-resolves a bare package name on every launch, so each session starts the current build.
Why no version range — and why that matters
Do not write a range like @^2. A range is satisfied by whatever already sits in the npx cache, so it never consults the registry again and the wire can stay frozen on an old build for weeks while everything looks healthy. Measured 2026-07-29, same spec string both times, cache holding an older version the range still allowed:
| spec | launched |
|---|---|
argus-decision-mcp | the current release |
argus-decision-mcp@^2.0.0 | the stale cached build |
An exact pin is correct but freezes there until someone edits it. argus_check_in reports the version actually running (data.server_version) if you ever need to confirm which build answered.
On your disk from the first call — nothing to set up.
ARGUS_DIR is optional. The default follows one rule — *project evidence decides where the ledger lives*:
.argus folder → /.argus (per-project isolation, unchanged)~/.argus), so records accumulate across conversations instead of fragmenting into per-conversation orphansA per-call absolute argus_dir overrides everything; ARGUS_DIR overrides the rule.
Argus never scans other projects. Existing home-level ledgers are not migrated or merged silently; point ARGUS_DIR at one explicitly if you need to inspect it.
Off until you turn it on. Nothing leaves the machine before you approve it in a browser:
npx argus-decision-mcp connect # one browser approval, credential stored locally
npx argus-decision-mcp disconnect # revoke it here
Add --headless on a machine with no browser to get a device-code flow. For CI, set ARGUS_TOKEN to a sync token from the web app's settings page instead of running connect. With no credential, sync is a silent no-op — the local record is unaffected.
The records are plain append-only files under .argus/. They are yours: copy that folder to back it up, delete it to remove it. Uninstalling the server never touches it.
For the durable home that survives moves and worktrees, the CLI also has archive-export, archive-restore, and local-purge. Each one requires explicit arguments — --repository-id, an absolute --archive-dir, and a verbatim --confirm-repository before anything is deleted. That is deliberate: erasing judgment records should never be a one-word command. Run one without arguments and it names the argument it wants.
The complete callable surface is six tools:
| Tool | Purpose |
|---|---|
argus_capture | Capture a decision and its user-owned context. |
argus_predict | Record one falsifiable claim and its check date. |
argus_check_in | Read records that need attention now. |
argus_resolve | Append an outcome the user explicitly stated. |
argus_patterns | Read decisions, receipts, timelines, and patterns. |
argus_settings | Read or update language, reminders, and explicit sync. |
Names from pre-2.0 releases are not callable aliases. A cached call to one of them returns UNKNOWN_TOOL, so hosts cannot accidentally keep using obsolete contracts.
ARGUS_TELEMETRY=1.npm install
npm run typecheck npm test npm run build npm pack --dry-run
The published package contains one bundled runtime entrypoint. Internal implementation and experimental modules are not shipped as separate callable or importable files.
See SECURITY.md for reporting and trust-boundary details.