Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
33 tools that make AI write, implement, and verify intent against explicit, testable constraints.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
AuthorizationLos valores marcados como secretos son llaves de tu cuenta. Nunca los compartas ni los pegues en un chat.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Esta dirección necesita una clave en un header de la solicitud, y el menú para agregar conectores no puede ponerla. Usa Claude Code, Cursor o VS Code.
Ejecuta esto en tu terminal
claude mcp add --transport http ivd https://mcp.ivdframework.dev/mcp --header 'Authorization: Bearer {api_key}'Completa los valores vacíos antes de ejecutarlo.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"ivd": {
"url": "https://mcp.ivdframework.dev/mcp",
"headers": {
"Authorization": "Bearer {api_key}"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"ivd": {
"type": "http",
"url": "https://mcp.ivdframework.dev/mcp",
"headers": {
"Authorization": "Bearer {api_key}"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Esta dirección necesita una clave en un header de la solicitud, y el menú para agregar conectores no puede ponerla. Usa Claude Code, Cursor o VS Code.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Authorization secreto obligatorio HTTP headerEsta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Todavía no hemos leído la lista de herramientas de este servidor; revisamos los endpoints por turnos.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 6 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub leocelis, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Aún sin revisar; revisamos los endpoints por turnos
Aún sin revisar; revisamos los endpoints por turnos
Aún sin revisar; leemos la lista de herramientas cuando revisamos el endpoint
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
Debes completar: Authorization
Se ejecuta en la nube del creador. Te conectas por internet sin instalar nada, pero lo que envías pasa por los servidores del creador.
El repo de GitHub cambió por última vez –, y la última versión (3.1.2) llegó al registro hace 4 meses.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. Se conecta por URL, así que también funcionan las apps que aceptan servidores MCP remotos, como ChatGPT en modo desarrollador.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, zanadir
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
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.
Find what a repository's CI is missing, and which security checks cannot fail the build.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
Intent-Verified Development (IVD)
A framework where AI writes the intent, implements against it, and verifies — so hallucinations are caught and turns drop to one.
→ ivdframework.dev — full docs, hosted server, and access request
New here? Start with judgment_explained.md — a 5-minute, plain-English on-ramp that explains what problem the Judgment phase solves and how, before you read the spec.
AI agents hallucinate not because they're bad — but because you're feeding the wrong knowledge system.
Research shows LLMs rely primarily on contextual knowledge (the prompt) over parametric knowledge (training data) — but only when the context is structured and precise (Huang et al., ICLR 2024; 9-LLM contextual vs. parametric study, 2024). When you give vague prose — a PRD, a user story, a chat message — the context channel is underloaded. The model fills the gaps from training. Those gaps are the hallucinations.
Without IVD With IVD
You: "Add CSV export" You: "Add CSV export for compliance" AI: [builds with wrong columns] AI: [writes intent.yaml with constraints] You: "No, these columns, ISO dates" You: "Yes, that's what I meant" AI: [rewrites, still wrong] AI: [implements, verifies against constraints] You: "Still not right..." You: "Done. First try." Many turns. Many hallucinations. One turn. Mismatches caught by the constraint check, not by you.
IVD saturates the contextual channel with structured, verifiable intent — so the model has nothing to guess.
Works locally. No API key required. Under 5 minutes.
git clone https://github.com/leocelis/ivd.git && cd ivd
python3 examples/intent_demo/run_demo.py
Runs offline. Shows a vague prompt producing a hallucinated implementation, then the same request run against a structured intent artifact — with the constraint check catching the mismatch before you'd ever see it. This is the core loop this README is about; everything below is how to wire it into your own agent.
git clone https://github.com/leocelis/ivd.git
cd ivd ./mcp_server/devops/setup.sh # creates .venv, installs all deps
Important: command must point at the venv's Python — setup.sh installs IVD's dependencies into .venv/, not your system Python. Using "command": "python" here will fail with ModuleNotFoundError. Replace /path/to/ivd with your actual clone path.
Cursor (Settings → Features → MCP):
{
"servers": { "ivd": { "type": "stdio", "command": "/path/to/ivd/.venv/bin/python", "args": ["-m", "mcp_server.server"], "cwd": "/path/to/ivd" } } }
VS Code / GitHub Copilot (.vscode/mcp.json):
{
"mcpServers": { "ivd": { "command": "/path/to/ivd/.venv/bin/python", "args": ["-m", "mcp_server.server"], "cwd": "/path/to/ivd" } } }
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": { "ivd": { "command": "/path/to/ivd/.venv/bin/python", "args": ["-m", "mcp_server.server"], "cwd": "/path/to/ivd" } } }
A
pyproject.tomlnow ships in the repo (pip install .orpip install -e .
gives you an
ivd-mcpconsole command). A PyPI release (uvx ivd-mcp, no clone
required) is planned — see ROADMAP.md.
Ask your AI agent to use IVD tools. For example:
That's it. 32 of 33 tools work immediately with zero configuration — only ivd_search needs an OPENAI_API_KEY.
ivd_search requires embeddings. Generate them once (~$0.01, under a minute):
export OPENAI_API_KEY=your-key
./mcp_server/devops/embed.sh
1. You describe → what you want (natural language)
The key insight: clarification happens at the intent stage, not after code. The AI writes a verifiable contract, you approve it, then implementation is mechanical — and self-verifying.
If you already use spec-driven development (GitHub Spec Kit, OpenSpec), IVD adds what neither format provides by default: a test bound to each constraint. See docs/positioning.md.
33 tools available to any MCP-compatible AI agent (19 core + 10 Judgment tools (8 added in v3.0; ivd_judgment_check_installed and ivd_judgment_resolve added in v3.1) + 4 Canon tools added in v3.1):
| Tool | What it does |
|---|---|
ivd_get_context | Load framework principles, cookbook, or cheatsheet |
ivd_search | Semantic search across all IVD knowledge |
ivd_validate | Validate an intent artifact against IVD rules |
ivd_review_intent | Rank constraints by risk before implementation (human review gate) |
ivd_run_constraint_tests | Opt-in runner for allowlisted pytest nodes referenced by an intent |
ivd_attest | Process-attestation gate — check the agent actually *followed* the method (segmentation, re-read, coverage, joint satisfaction), not just that the artifact is well-formed |
ivd_import_spec | Parse a GitHub Spec Kit or OpenSpec spec.md into a constraint scaffold |
ivd_scaffold | Generate a new intent artifact from a template |
ivd_init | Initialize IVD in an existing project |
ivd_assess_coverage | Scan a project and report intent coverage |
ivd_load_recipe | Load a specific recipe pattern |
ivd_list_recipes | Browse all available recipes |
ivd_load_template | Load an intent or recipe template |
ivd_find_artifacts | Discover intent artifacts in a project |
ivd_check_placement | Verify artifact naming and placement |
ivd_list_features | Derive feature inventory from intent metadata |
ivd_propose_inversions | Generate inversion opportunities |
ivd_discover_goal | Help users who don't know what to ask |
ivd_teach_concept | Explain concepts before writing intent |
/.judgment/ exists*New to Judgment? Read
judgment_explained.mdfirst
— plain-English "what problem it solves and how" in 5 minutes — then the tool
table below and the runnable showcase further down will make immediate sense.
| Tool | What it does | |
|---|---|---|
ivd_judgment_init | Bootstrap .judgment/ folder + per-domain baselines | |
ivd_judgment_capture | Write a raw correction ledger entry (< 30s) | |
ivd_judgment_codify | Return a structured codify prompt for the agent | |
ivd_judgment_save_codified | Persist the agent's filled codify fields | |
ivd_judgment_pair | Capture a comparison_pair (Pearl Rung-1 alternative to A/B) | |
ivd_judgment_detect_patterns | Cluster ledger entries into patterns | |
ivd_judgment_inject_context | Prioritized judgment context for downstream agents | |
ivd_judgment_propose_recommendation | Draft recommendation against a pattern (with build/buy/hire/partner sub-types) | |
ivd_judgment_resolve | Close the loop: record an entry's resolution (outcome, whether it held) and move it `codified\ | paired → resolved`, so future runs don't re-derive a settled diagnosis. (v3.1) |
ivd_judgment_check_installed | Detect whether /.judgment/ exists. Never writes to disk — returns the ready-to-call init payload the agent must offer to the user with explicit permission. (v3.1) |
Architecture (v3.1): substance lives in the ivd/judgment/ engine package (typed @dataclass schemas; engine_version + reproducible SHA-256 hash on Pattern and InjectionResult for diffability and audit). mcp_server/tools/judgment.py is a thin facade that dispatches to the engine. Mirrors the Canon (Phase 0) architecture for symmetry. Server-level kill switch: IVD_JUDGMENT_TOOLS_ENABLED=false.
See it work. A runnable showcase walks through the full Judgment loop end-to-end — capture three real-world AI corrections, codify them, promote a Pattern, and watch the same LLM (gpt-4o-mini, temperature=0) generate different code on the same request after the Pattern enters its system message. No trust required — run it, read the terminal.
# From the ivd/ directory — runs offline, no API key required
python examples/judgment_demo/run_demo.py
OPENAI_API_KEY=sk-... python examples/judgment_demo/run_demo.py
The showcase simulates 3 weeks of an AI coding agent ignoring this project's React testing conventions across 3 different test files (PaymentForm.test.tsx, MetricsCard.test.tsx, ProfileSettings.test.tsx), feeds the 3 corrections through the 9 ivd_judgment_* tools, and writes 4 human-readable artifacts to examples/judgment_demo/output/: before.md (the agent's system message without Judgment), after.md (with the Pattern injected), diff.md (what Judgment added), and llm_responses.md (side-by-side Vitest test files with verdict).
Why this scenario: the project's testing conventions (renderWithProviders helper in src/test/test-utils.tsx, MSW server in src/test/mocks/server.ts, userEvent.setup() discipline) live ONLY in the repo. They do not exist in the LLM's training data, so a static system-prompt nudge cannot solve it — the model has to inherit the lesson from YOUR repo. That is precisely the use case Judgment is built for.
Representative result on the live LLM (gpt-4o-mini, temperature=0, n=3 trials, ~$0.001):
| Metric | Result |
|---|---|
| Framework defaults the BEFORE agent reached for | 2–3 of 3 (raw vi.fn() API mocks, bare render(), userEvent.click without setup()) |
| Project conventions the AFTER agent adopted | 3 of 3 (server.use(http.get(...)), renderWithProviders( ), const user = userEvent.setup()) |
| Project-local strings in AFTER (impossible from training data) | `renderWithProviders`, `src/test/mocks/server`, `src/test/test-utils` |
| injection_hash change (a
Solo se muestra el principio; lee el resto en el repo