Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Your project's decision history for agents: decisions, dead-ends, constraints - queryable, local.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"nodedex": {
"command": "npx",
"args": [
"-y",
"nodedex"
]
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add nodedex -- npx -y nodedex프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"nodedex": {
"command": "npx",
"args": [
"-y",
"nodedex"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"nodedex": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"nodedex"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검
레지스트리 이름이 GitHub 계정 NodeDex 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.1.15)은 4개월 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Signoff
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ 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.
Five gates that make an agent's 'done' provable: run them, read the verdict, audit the record.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
your project's decision history, for agents
Give your agent your project's decision history: it checks what was already ruled out before proposing, follows supersede edges to current truth instead of citing a stale decision, and inherits the whole investigation cold — session after session. Built automatically from the agent's own conversations into a local causal graph. Works with Claude Code, Cursor, Hermes, or an agent loop you wrote yourself. (A different job than your fact store — run both.)
Quick start · How it works · Connect your agent · Why NodeDex · Evidence · Docs
An agent walking its own memory: a dead-end → why it was abandoned → the causal chain . The structure is the recall.
Without NodeDex, session N+1 quietly re-derives what session N already settled — which approaches failed (and why), which decisions were replaced (and by what), which constraints still bind. NodeDex keeps that record in a local SQLite graph the agent navigates deliberately, session after session.
Status — early & solo-built. NodeDex is developed by one person and is at an early stage.
The engine is tested end-to-end (1319 passing tests), but it hasn't been battle-tested across
many machines and agents yet — **expect rough edges, and please open an issue
when you hit one.** Feedback at this stage is hugely valuable.
Newest, and least battle-tested: the three-wire setup — your agent
installs NodeDex into itself (reflex + capture + gate), and NodeDex verifies each wire by what
actually happened rather than taking the agent's word. The gate (a pre-edit check, warn-only,
fail-open) is brand new; it replaces a roadmap item that used to read "hook-enforced check, not
just a nudge". Whether it changes agent behaviour on a long task is exactly what we're measuring
next — we don't claim it yet.
On the roadmap: interop with Claude Code's native memory · a "what's new since last session"
surface · broader agent-host support.
Three steps. The first sets up the server (once); the other two connect your agent.
# 1. Install + run the setup wizard — asks for a provider key, model, port, and database.
npx nodedex # or: npm i -g nodedex && nodedex onboard
# 2. Point your agent at the running server (one line; this is the only host-specific part).
claude mcp add --transport http nodedex http://127.0.0.1:3001/mcp # 3001 = the port you chose
3. Say `Set up NodeDex` to your agent. It wires itself in — CAPTURE (so the graph fills), REFLEX (so it remembers to check), GATE (so it checks at the moment it edits) — asking your permission for each. NodeDex verifies each one actually happened; nothing is taken on trust.
That's the whole path. Details: [Setup](#setup) (the wizard) · [Connect your agent](#connect-your-agent) (every host) · [Try it in 60 seconds](#try-it-in-60-seconds--no-key-no-setup) (a demo graph, no key). Switching tools later moves no data — point the new agent at the same server and say Set up NodeDex again.
Forgetting announces itself — the agent asks again, you sigh, you re-explain. The failure that actually costs you re-work is silent: the agent re-proposes an approach it tried and abandoned three sessions ago, or plans against a decision that was replaced two weeks back. The stale decision looks exactly as authoritative as the current one, the ruled-out approach sounds fresh, and the hours get burned twice.
**NodeDex fixes being *confidently wrong about the past*.** That's a knowledge-*status* problem — ruled-out, superseded, still-open — and status is structure, not recall. So NodeDex keeps the project's reasoning residue as a graph the agent *walks*: decisions with their why and the alternatives that lost, dead-ends as a permanent, enumerable closed-door list the agent is taught to check first (a strong nudge, not a hard block), constraints that can't silently move, and the causal chains tying them together.
A new agent inheriting a project doesn't get a ranked pile of facts — it walks the investigation, and learns what *not* to repeat.
How is this different from mem0 / RAG / native memory?
Different job. Most "agent memory" stores facts and preferences and retrieves the top-k at query time — perfect for *"the user prefers TypeScript"*, and genuinely good at it. NodeDex captures the reasoning *around* those facts: what was tried, what was ruled out, what was decided and why.
| a fact store (mem0 / RAG / native memory) | NodeDex | |
|---|---|---|
| Stores | facts, preferences | decisions + *why*, dead-ends, constraints, insights |
| Links | shared-entity association | causal (prompted_by → based_on → supersedes) |
| Recall | one-shot top-k retrieval | traverse root → decision → why → chain |
| Failed approaches | — | permanent dead-ends — an enumerable closed-door list checked before proposing |
They're complementary, and many setups run both. NodeDex doesn't replace your fact store.
Honest scope: for short sessions, one-shot tasks, and fact-recall workflows, native memory is good enough — skip NodeDex, it would be overkill. It earns its keep on long-running, decision-dense, multi-session work where repeating a failure is expensive — and especially on autonomous runs, where no human is watching to catch the agent re-proposing a dead end.
A fresh graph is empty (the value accumulates from your real work), so NodeDex ships a sample project history you can explore immediately:
npx nodedex demo
That serves a small finished project — its decisions (with the why and the rejected alternatives), its dead-ends, its constraints, and one decision that got *superseded* — at http://127.0.0.1:3009/mcp. Point any MCP agent at it and ask:
If those answers are useful from a 15-block toy, imagine them from six weeks of your own work. nodedex stop 3009 ends the demo; your real graph is never touched.
Want receipts before installing? [Evidence it works](#evidence-it-works) — what the pipeline captures from real transcripts, graph health, and search that admits its limits.
A local knowledge graph of what the project established — every decision, dead-end, constraint, and the causal links between them — persisted outside the context window and read by the agent over MCP. Not a note-taking tool: nobody curates it; a background pipeline builds it from the work itself.
The agent is stateless by default. NodeDex gives it a durable record of the project's reasoning that survives every context reset — the LLM is just the reasoning engine that runs on top of it.
Key properties:
~/.nodedex/*.db). Extraction is local or cloud, depending on the model you pick: a cloud provider (e.g. OpenRouter) receives conversation content for extraction; a local model keeps everything on the machine. The database is plaintext unless you set NODEDEX_DB_ENCRYPTION_KEY. Autonomous agent (e.g. Hermes)
│ reads ▲ │ each finished turn (a COPY) │ (MCP) │ ▼ │ ┌─────┴──────────────┐ ┌──────────────┐ └──▶│ NodeDex server │◀──│ capture tee │ (out-of-path, fire-and-forget) │ • MCP read tools │ └──────────────┘ │ • REST API │ │ • AI pipeline ────┼──▶ writes blocks / chains / links (async) │ • self-maintenance│ (dedup · provenance · heal) └─────────┬──────────┘ ▼ ~/.nodedex/ .db (SQLite WAL — local, bitemporal)
workspace_get, workspace_search, workspace_filter, workspace_tree, workspace_stats, …). Knowledge-write tools are hidden by default; a read records usage metadata (access counts) on the block it opens — never content, links, or status. The one deliberate write on the default surface: workspace_task_update — the agent maintains its own task status (only the agent knows when its work is actually finished; everything else stays the pipeline's job).state.db (they ignore a model proxy); an OpenAI-compatible host that honors a custom base URL can route its model through NodeDex's proxy; an agent whose loop you control uses a small out-of-path tee (workspace_install_capture). NodeDex is a passive MCP server — it can't see the agent's replies on its own, so without capture the graph stays empty (see Connect your agent).SQLite WAL — a single local file, bitemporal relations (history preserved, never deleted).
One command (Node ≥ 18):
npx nodedex
First run launches the setup wizard; once configured, the same command just starts the server. Prefer a real install? npm i -g nodedex puts nodedex on your PATH. Everything — config, key, databases, logs — lives in ~/.nodedex/, and npx nodedex uninstall removes it all.
Or let your agent install it. If you already run an agent with shell access
(Claude Code, OpenClaw, Hermes…), paste [AGENT-INSTALL.md](AGENT-INSTALL.md) into it:
the agent asks you three consent questions, runs one headless setup command, starts the
server, and connects itself.
Native driver note: the SQLite driver ships prebuilt for common platforms. Only if
npm has to compile it from source do you need a C/C++ toolchain (macOS:
xcode-select --install· Debian:build-essential python3· Windows:
[VS Build
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요