Integración con MCP Servers

Autor/a

Diego Saavedra

Fecha de publicación

24 de febrero de 2026

🎓 MCP Servers: Potenciando SDD

👨‍🏫 Del Investigador: Como investigador en desarrollo de software incursionando en ciberseguridad, he encontrado que Model Context Protocol (MCP) representa un estándar crítico para la extensibilidad de agentes IA. La literatura indica que MCP permite integraciones que potencian significativamente las capacidades de SDD.

💭 Mentalidad de Investigador: “La evidencia sugiere que un agente de IA aislado tiene capacidades limitadas. Con MCP, se conecta al ecosistema completo de herramientas, multiplicando su efectividad.”


🧠 ¿Qué es MCP?

Model Context Protocol es un protocolo abierto que permite [1]:

  1. Tools: Ejecutar comandos externos
  2. Resources: Acceder a archivos y datos
  3. Prompts: Templates de interacción

Analogía

MCP es como USB para asistentes de IA: - Sin MCP: IA aislada, conocimiento limitado - Con MCP: IA conectada a bases de datos, APIs, herramientas


🛠️ MCP Servers para SDD

1. spec-coding-mcp

Propósito: Edición estructurada de especificaciones

Instalación:

{
  "mcpServers": {
    "spec-coding": {
      "command": "npx",
      "args": ["-y", "@kevinlin/spec-coding-mcp"]
    }
  }
}

Herramientas disponibles:

Tool Descripción
create_spec Crear nueva especificación
update_spec Actualizar spec existente
validate_spec Validar formato de spec
merge_specs Combinar specs

Uso en SDD:

Usuario: "Crear spec para health endpoint"
IA: [usa spec-coding-mcp para crear spec estructurado]

2. Engram (Memoria Persistente)

Propósito: Memoria a largo plazo entre sesiones [2]

“Your AI coding agent forgets everything when the session ends. Engram gives it a brain.”

— Gentleman Programming [3]

“Tu agente de codificación con IA olvida todo cuando termina la sesión. Engram le da un cerebro.”

Definición de Engram

engram /ˈen.ɡræm/neuroscience: the physical trace of a memory in the brain.”

engram /ˈen.ɡræm/neurociencia: el rastro físico de un recuerdo en el cerebro.”

— Gentleman Programming [2]

Filosofía de Diseño

“Engram trusts the agent to decide what’s worth remembering — not a firehose of raw tool calls.”

“Engram confía en el agente para decidir qué vale la pena recordar — no una manguera de llamadas de herramientas en bruto.”

— Gentleman Programming [2]

Instalación

{
  "mcpServers": {
    "engram": {
      "command": "npx",
      "args": ["-y", "engram-mcp"],
      "env": {
        "ENGRAM_DB_PATH": "~/.engram/memory.db"
      }
    }
  }
}

Herramientas disponibles:

Tool Descripción
remember Guardar información
recall Recuperar información
forget Eliminar información
list_memories Listar memorias

Uso en SDD:

# Guardar patrón descubierto
IA: [usa engram.remember]
"Patrón: Health endpoints deben incluir version"

# Recuperar en sesión futura
IA: [usa engram.recall]
"Recuerdo que decidimos incluir version en health checks"

Integración con SDD:

# En sdd-archive skill:

## Step: Save Learnings
After archiving, use Engram to save:
- Architecture decisions
- Patterns discovered
- Gotchas encountered

Ventajas de Engram

“That’s it. No Node.js, no Python, no Bun, no Docker, no ChromaDB, no vector database, no worker processes. One binary, one SQLite file.

“Eso es todo. No Node.js, no Python, no Bun, no Docker, no ChromaDB, no base de datos vectorial, no procesos workers. Un binario, un archivo SQLite.

— Gentleman Programming [2]


3. Context7 (Documentación Actualizada)

Propósito: Fetch de documentación actualizada [4]

Instalación:

{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": ["-y", "@context7/mcp-server"]
    }
  }
}

Herramientas disponibles:

Tool Descripción
fetch_docs Obtener documentación
search_docs Buscar en documentación
get_examples Obtener ejemplos

Uso en SDD:

# Durante sdd-design
IA: "Voy a verificar la API de Express 4.18"
[usa context7 para obtener docs actualizados]
"La firma correcta es res.status(200).json(...)"

📋 Configuración Completa

Kilocode: ~/.kilocode/mcp.json

{
  "mcpServers": {
    "spec-coding": {
      "command": "npx",
      "args": ["-y", "@kevinlin/spec-coding-mcp"],
      "env": {}
    },
    "engram": {
      "command": "npx",
      "args": ["-y", "engram-mcp"],
      "env": {
        "ENGRAM_DB_PATH": "~/.engram/memory.db"
      }
    },
    "context7": {
      "command": "npx",
      "args": ["-y", "@context7/mcp-server"],
      "env": {}
    }
  }
}

Opencode: ~/.config/opencode/opencode.json

{
  "model": "claude-sonnet-4-20250514",
  "mcpServers": {
    "spec-coding": {
      "command": "npx",
      "args": ["-y", "@kevinlin/spec-coding-mcp"]
    },
    "engram": {
      "command": "npx",
      "args": ["-y", "engram-mcp"],
      "env": {
        "ENGRAM_DB_PATH": "~/.engram/memory.db"
      }
    },
    "context7": {
      "command": "npx",
      "args": ["-y", "@context7/mcp-server"]
    }
  }
}

🔄 Flujo SDD con MCP

INIT + Context7

Usuario: /sdd:init

IA:
1. Detecta package.json
2. [Context7] fetch_docs("express 4.18")
3. Detecta que es Express con middleware pattern
4. Crea config.yaml con contexto enriquecido

SPEC + spec-coding-mcp

Usuario: /sdd:spec

IA:
1. Lee proposal.md
2. [spec-coding-mcp] create_spec({
     name: "health-endpoint",
     requirements: [...],
     scenarios: [...]
   })
3. Valida formato con validate_spec

ARCHIVE + Engram

Usuario: /sdd:archive

IA:
1. Verifica tasks completas
2. Merge specs
3. [Engram] remember({
     type: "pattern",
     content: "Health endpoints sin auth para K8s",
     tags: ["health", "kubernetes", "no-auth"]
   })
4. Mueve a archive/

🛠️ MCP Server Personalizado para SDD

Crear: sdd-mcp-server

Propósito: Herramientas específicas para SDD

// sdd-mcp-server/index.ts
import { Server } from "@modelcontextprotocol/sdk/server";

const server = new Server({
  name: "sdd-mcp-server",
  version: "1.0.0",
});

// Tool: Create Change
server.addTool({
  name: "sdd_create_change",
  description: "Create a new SDD change with all artifacts",
  parameters: {
    type: "object",
    properties: {
      name: { type: "string" },
      intent: { type: "string" },
      scope: { type: "array", items: { type: "string" } },
    },
  },
  handler: async (params) => {
    // Create proposal.md, spec.delta.md, etc.
  },
});

// Tool: Verify Implementation
server.addTool({
  name: "sdd_verify",
  description: "Verify implementation against specs",
  handler: async () => {
    // Compare code to specs
    // Run tests
    // Generate verification.md
  },
});

// Tool: Next Phase
server.addTool({
  name: "sdd_next_phase",
  description: "Determine and execute next SDD phase",
  handler: async () => {
    // Check current state
    // Return next recommended action
  },
});

📊 Comparación: Sin MCP vs Con MCP

Sin MCP

IA: "Voy a crear el spec..."
[Escribe manualmente]
IA: "Recuerdo que hicimos algo similar..."
[No tiene acceso a sesiones anteriores]
IA: "Creo que la API es así..."
[Conocimiento puede estar desactualizado]

Con MCP

IA: "Voy a crear el spec..."
[spec-coding-mcp] Crea estructura validada
IA: "Recuerdo que decidimos usar este patrón..."
[Engram] Recupera decisión de sesión anterior
IA: "Verifico la API actual..."
[Context7] Obtiene documentación actualizada

⚠️ Troubleshooting MCP

MCP Server No Conecta

# Verificar que npx puede ejecutar
npx -y @kevinlin/spec-coding-mcp

# Verificar variables de entorno
echo $ENGRAM_DB_PATH

# Reiniciar el agente
# Kilocode: Cmd+Shift+P → Reload Window
# Opencode: Ctrl+C y reiniciar

Engram No Guarda

# Verificar permisos del directorio
ls -la ~/.engram/

# Crear si no existe
mkdir -p ~/.engram
touch ~/.engram/memory.db

Context7 Timeout

# Aumentar timeout en config
{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": ["-y", "@context7/mcp-server"],
      "env": {
        "TIMEOUT_MS": "30000"
      }
    }
  }
}

🎓 Síntesis de la Investigación

  1. MCP conecta IA con herramientas externas según Anthropic [1]
  2. spec-coding-mcp estructura especificaciones de manera sistemática
  3. Engram persiste memoria entre sesiones [2]
  4. Context7 mantiene documentación actualizada [4]
  5. Servidores custom extienden capacidades del agente
  6. Metodología SDD integrada con MCP [5]

📖 Referencias

[1]
Anthropic, «Model Context Protocol: Connecting AI Assistants to Systems». Accedido: 24 de febrero de 2026. [En línea]. Disponible en: https://modelcontextprotocol.io
[2]
Gentleman Programming, «Engram: Persistent Memory for AI Coding Agents». Accedido: 24 de febrero de 2026. [En línea]. Disponible en: https://github.com/Gentleman-Programming/engram
[3]
Gentleman Programming, «Your AI Coding Agent Forgets Everything When the Session Ends. Engram Gives It a Brain». Accedido: 24 de febrero de 2026. [En línea]. Disponible en: https://github.com/Gentleman-Programming/engram
[4]
Context7, «Context7: Up-to-Date Documentation for AI Code Editors». Accedido: 24 de febrero de 2026. [En línea]. Disponible en: https://context7.com
[5]
D. Saavedra, «Spec-Driven Development con Asistentes de IA: Metodología estructurada para desarrollo asistido por IA en CLI». Accedido: 24 de febrero de 2026. [En línea]. Disponible en: https://statick88.github.io/challenges/learning-journey/ai-workflows/

🚀 Siguiente Paso

Continúa con Módulo 7: Patrones Avanzados para aplicar SDD en escenarios complejos.


📚 Referencias Adicionales

Para una discusión más amplia sobre metodologías SDD y su implementación práctica, consultar Saavedra (2026) [5].


Módulo 6 | Duración: 45 min | Dificultad: 🔴 Avanzado | © Diego Saavedra