Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Local MCP server for architectural decisions, traceability, and non-authoritative proposals.
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": {
"mneme": {
"command": "uvx",
"args": [
"mneme-hq",
"mneme",
"decision-mcp"
]
}
}
}Run this in your terminal
claude mcp add mneme -- uvx mneme-hq mneme decision-mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"mneme": {
"command": "uvx",
"args": [
"mneme-hq",
"mneme",
"decision-mcp"
]
}
}
}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": {
"mneme": {
"type": "stdio",
"command": "uvx",
"args": [
"mneme-hq",
"mneme",
"decision-mcp"
]
}
}
}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 7, 2026
The registry name was verified with the GitHub account MnemeHQ, 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.10.0) reached the registry 30 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, LexPact UK Contracts
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.
Generate UK-law contracts: NDA, service, freelance, recruiter terms of business, IR35.
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.
Mneme is an open decision and control layer for agentic software development.
It turns durable engineering decisions into agent context, deterministic enforcement, and inspectable enforcement results across AI coding agents, repositories, and CI workflows. Architecture is the first supported decision domain: Mneme prevents architectural drift by turning architectural decisions and ADRs into deterministic guardrails across coding agents, repository mutations, generated rules, and CI gates.
Where is your architecture actually enforced? Run the Architecture Audit to see which decisions are protected, which can become deterministic guardrails, and which still depend on someone remembering the rules. Try it →
Mneme is the decision layer behind that drift-prevention mechanism. It keeps recorded engineering decisions active as AI coding systems propose and modify code, instead of leaving ADRs as passive documentation.
Solid surfaces ship today; dashed surfaces are planned. Support levels per integration: integrations matrix.
Current phase: Layer 1 validation. Retrieval, enforcement, and benchmark semantics are governed by the accepted architecture and freeze record. See Current Phase before changing core behavior.
Mneme separates architectural guidance from deterministic enforcement:
The same input and governed decision state produce the same enforcement result. Mneme does not depend on an LLM judge for its core allow/warn/fail decisions.
Mneme is not a general-purpose vector store, conversational memory system, autonomous coding agent, or deployment observability platform.
Requires Python 3.11+.
pip install mneme-hq
Verify the CLI:
mneme --help
For repository development:
git clone https://github.com/MnemeHQ/mneme.git
cd mneme pip install -e ".[dev]"
Mneme exposes the Decision Index over a local MCP server so MCP-capable clients can propose candidate architectural decisions and query decision state without gaining authority to change that state.
Install the optional MCP dependency:
pip install "mneme-hq[mcp]"
Start the local stdio server. Canonical reads come from the persisted Decision Index in .mneme/project_memory.json by default; the proposal store remains separate.
mneme decision-mcp
Use --memory to select another project memory file. The file must contain a valid authoritative decision_index section; MCP fails closed rather than reconstructing authority from the compatibility decisions[] snapshot.
mneme decision-mcp --memory path/to/project_memory.json
Memory created by mneme init or mneme setup already carries an empty decision_index section and needs no migration. An older file with no decision_index section yet makes MCP stop with an error that tells you to migrate. Preview the migration first. It writes nothing and lists the visible effects: non-active decisions leave Layer 1, and legacy rule/anti_pattern items are migrated once.
mneme decision-index migrate --memory path/to/project_memory.json
Then apply exactly that migration:
mneme decision-index migrate --memory path/to/project_memory.json --apply
Migration is lossless or it refuses. There is no force or repair mode. Memory containing legacy decision metadata that the canonical index cannot represent, such as EventCatalog-imported decisions, stays on the section-less path and is not migrated.
--adr-dir is now optional validation input only. Mneme still validates and precedence-resolves that corpus before startup, but ADRs do not become a second MCP authority source.
mneme decision-mcp --memory path/to/project_memory.json --adr-dir path/to/adrs
The MCP surface is intentionally frozen to six tools:
decision.proposedecision.propose_batchdecision.getdecision.searchdecision.applicable_todecision.traceProposal tools create non-authoritative proposals only. Read tools query proposal and canonical decision state. MCP deliberately exposes no accept, reject, activate, supersede, exception, bypass, or trusted-evidence authority.
Human authority remains explicit through mneme decision proposals | show | accept | reject. Accepting a proposal materializes a canonical decision; it does not activate protection or run the Architecture Audit.
See ADR-027 and the v0.9.0 release notes for the authority boundary and release contract.
See where your architecture is actually protected — and where it still depends on people remembering the rules.
Mneme audits your repository and shows which architectural decisions are:
Run an audit:
mneme audit --memory .mneme/project_memory.json --repo-root .
For a Mneme-ready decision, validate the proposed protection before enabling it:
mneme protect validate <decision-id> --memory .mneme/project_memory.json
Then explicitly activate it:
mneme protect activate <decision-id> --memory .mneme/project_memory.json
Mneme only reports a decision as Protected after it can verify that real enforcement is in place. The full activation contract is documented in Protection Activation.
Initialize a project-local decision corpus:
mneme init
Record one architectural decision:
mneme add_decision \
--memory .mneme/project_memory.json \ --id config-format \ --decision "Use JSON for configuration files" \ --scope config \ --constraint "Use JSON only" \ --anti-pattern "Do not use YAML"
Create a proposed input that violates it:
python -c "import pathlib; pathlib.Path('prompt.txt').write_text('Set up a new YAML config file', encoding='utf-8')"
Run the deterministic check:
mneme check \
--memory .mneme/project_memory.json \ --input prompt.txt \ --query configuration
In strict mode, the prohibited YAML proposal returns a FAIL verdict and exit code 2. A compliant JSON proposal returns PASS and exit code 0.
The CLI is the common enforcement surface. Agent integrations translate their native events into the same Mneme decision and enforcement model.
For a non-authoritative preview of which canonical decisions would apply to caller-asserted context labels, add an opt-in, repeatable --applicability-preview to mneme check:
mneme check --memory .mneme/project_memory.json --input prompt.txt --query configuration --applicability-preview platform:windows
The preview prints only on stderr, independently of the normal check result. It does not trust the supplied labels, exclude decisions, change enforcement, or change stdout, JSON mneme.check/v1, hook behavior, or exit codes. Section-less memory or a preview computation error reports PREVIEW UNAVAILABLE on stderr; it does not migrate memory or weaken enforcement. This preview is not a security control.
mneme setup initializes Mneme in a repository without changing how the team works: it creates or detects project memory, detects supported agent environments, and reports protection readiness — all without enabling any blocking enforcement. Setup never turns warn/observe behavior into blocking behavior; activation of preventive enforcement is always a separate, explicit decision.
mneme setup
Optionally record an opaque Architecture Audit reference so the setup can be attributed back to a saved Audit baseline:
mneme setup --audit-ref <reference>
Setup is idempotent: rerunning it against an existing Mneme project leaves valid configuration untouched.
Architectural decisions / ADRs
| v structured decision corpus | +-----+--------------------+ | | v v relevant guidance deterministic enforcement retrieval + applicability checks | | +------------+-------------+ | v workflow-specific boundary | +------------+-------------+ | | | pre-change post-change CI hooks audit gate
Mneme applies governance at the earliest reliable boundary a workflow exposes:
These boundaries are complementary. An integration only claims the surfaces that have been implemented and validated for that harness.
Decision retrieval answers: which architectural decisions are useful as guidance for this task?
Enforcement answers: does the proposed change violate a governed rule that applies here?
Those concerns are intentionally separated. See ADR-017, ADR-019, and ADR-020.
The authoritative support matrix lives in docs/integrations/README.md. The labels below are evidence levels, not interchangeable marketing terms.
| Support level | Surface |
|---|---|
| Native integration | Claude Code |
| Native integration | Claude Agent SDK |
| Native integration | Google Antigravity |
| Native integration | Codex CLI |
| Native integration | Kiro CLI 3.0 / v3 |
| Validated compatibility | Paperclip — CLI and ACP transports, no adapter required |
| Rules export | Cursor |
|
Only the beginning is shown; read the rest in the repo