Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Your project's decision history for agents: decisions, dead-ends, constraints - queryable, local.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"nodedex": {
"command": "npx",
"args": [
"-y",
"nodedex"
]
}
}
}Run this in your terminal
claude mcp add nodedex -- npx -y nodedexPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"nodedex": {
"command": "npx",
"args": [
"-y",
"nodedex"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"nodedex": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"nodedex"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified with the GitHub account NodeDex, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.15) reached the registry 4 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Dechonet MCP
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
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.
30 security tools for AI agents: phishing links, exposure maps, DNS, SSL, PQC, history, pivots.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
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
Only the beginning is shown; read the rest in the repo