/ Directorio / Playground / contextplus
● Comunidad ForLoopCodes ⚡ Instantáneo

contextplus

por ForLoopCodes · ForLoopCodes/contextplus

Dale a tu agente de código un mapa semántico persistente del repositorio — árbol AST + embeddings + grafo de memoria + deshacer oculto — para que deje de releer todo el código.

Context+ (ForLoopCodes/contextplus) es un MCP en TypeScript que expone 17 herramientas para entender repositorios: árboles AST de tree-sitter, esqueletos de archivo, búsqueda semántica de identificadores, análisis de radio de impacto, un grafo de memoria para proyectos de larga duración, y puntos de restauración ocultos para ediciones seguras. Funciona con Ollama o embeddings en la nube.

Por qué usarlo

Características clave

Demo en vivo

Cómo se ve en la práctica

contextplus.replay ▶ listo
0/0

Instalar

Elige tu cliente

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "contextplus": {
      "command": "npx",
      "args": [
        "-y",
        "contextplus"
      ],
      "_inferred": true
    }
  }
}

Abre Claude Desktop → Settings → Developer → Edit Config. Reinicia después de guardar.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "contextplus": {
      "command": "npx",
      "args": [
        "-y",
        "contextplus"
      ],
      "_inferred": true
    }
  }
}

Cursor usa el mismo esquema mcpServers que Claude Desktop. La configuración del proyecto prevalece sobre la global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "contextplus": {
      "command": "npx",
      "args": [
        "-y",
        "contextplus"
      ],
      "_inferred": true
    }
  }
}

Haz clic en el icono MCP Servers de la barra lateral de Cline y luego en "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "contextplus": {
      "command": "npx",
      "args": [
        "-y",
        "contextplus"
      ],
      "_inferred": true
    }
  }
}

Mismo formato que Claude Desktop. Reinicia Windsurf para aplicar.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "contextplus",
      "command": "npx",
      "args": [
        "-y",
        "contextplus"
      ]
    }
  ]
}

Continue usa un array de objetos de servidor en lugar de un mapa.

~/.config/zed/settings.json
{
  "context_servers": {
    "contextplus": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "contextplus"
        ]
      }
    }
  }
}

Añádelo a context_servers. Zed recarga en caliente al guardar.

claude mcp add contextplus -- npx -y contextplus

Un solo comando. Verifica con claude mcp list. Quita con claude mcp remove.

Casos de uso

Usos del mundo real: contextplus

Cómo hacer que un agente nuevo sea productivo en un repositorio grande rápidamente

👤 Líderes técnicos que usan Cursor/Claude Code en un monorepo ⏱ ~20 min intermediate

Cuándo usarlo: El agente desperdicia el 30% del contexto leyendo y releyendo archivos.

Requisitos previos
  • Node + bun o npm — brew install bun o usa npm
  • Un proveedor de embeddings (Ollama local, OpenAI, Gemini o Groq) — ollama pull nomic-embed-text para modo sin conexión
Flujo
  1. Construir el árbol de contexto
    Ejecuta get_context_tree en la raíz del repo. Resume las capas de nivel superior.✓ Copiado
    → Árbol AST con encabezados de archivo
  2. Lecturas solo de esqueletos
    Usa get_file_skeleton en src/auth/ para ver solo firmas — no leas los cuerpos aún.✓ Copiado
    → Firmas de función sin cuerpos
  3. Haz una pregunta semántica
    semantic_identifier_search: '¿dónde se implementa y se llama la verificación de JWT?'✓ Copiado
    → Implementaciones clasificadas + sitios de llamada

Resultado: El agente opera con un modelo mental del repositorio usando ~5x menos contexto.

Errores comunes
  • La indexación en la primera ejecución es lenta — Ejecuta el análisis inicial una vez; las actualizaciones incrementales son rápidas
  • Desajuste del modelo de embeddings entre índice y consulta — Mantente con un modelo de embeddings; reindexa si lo cambias
Combinar con: filesystem · github

Cómo refactorizar con puntos de restauración ocultos

👤 Desarrolladores preocupados por dejar que los agentes editen código ⏱ ~15 min intermediate

Cuándo usarlo: Quieres ediciones del agente pero también quieres un deshacer de un clic que no contamine git.

Flujo
  1. Captura un punto de restauración
    Crea un punto de restauración llamado 'before-auth-refactor'.✓ Copiado
    → Id del punto devuelto
  2. Deja que el agente edite
    propose_commit: refactoriza la verificación de JWT para usar el nuevo asistente de rotación de claves.✓ Copiado
    → Archivos editados + validación pasada
  3. Revierte si es incorrecto
    undo_change vuelve a 'before-auth-refactor'.✓ Copiado
    → Archivos revertidos, historial de git limpio

Resultado: Refactores sin miedo sin contaminar el historial de git.

Errores comunes
  • Los puntos de restauración viven en .contextplus/ — no los añadas al control de versiones — Añade .contextplus/ a .gitignore
Combinar con: github

Cómo evaluar el radio de impacto antes de eliminar una función

👤 Ingenieros limpiando código muerto ⏱ ~10 min intermediate

Cuándo usarlo: Quieres saber exactamente quién importa o usa un símbolo antes de eliminarlo.

Flujo
  1. Pide el radio de impacto
    get_blast_radius para la función 'legacyFormatPrice' en src/pricing.ts.✓ Copiado
    → Cada archivo/línea que la importa o la llama
  2. Planifica la eliminación
    Para cada sitio de llamada, sugiere el reemplazo. Cualquier sitio sin un intercambio limpio, márcalo como riesgoso.✓ Copiado
    → Lista de verificación de migración

Resultado: Un PR de eliminación sin sorpresas.

Errores comunes
  • Las importaciones dinámicas (require, referencias de cadena) no se detectan — Complementa con un paso de grep para el nombre de la función
Combinar con: github

Cómo persistir decisiones en sesiones con el grafo de memoria

👤 Cualquier usuario de agente en un proyecto de larga duración ⏱ ~15 min advanced

Cuándo usarlo: Sigues reexplicando las mismas opciones arquitectónicas al agente.

Flujo
  1. Siembra memoria
    upsert_memory_node: 'Elegimos Postgres sobre MongoDB por las invariantes transaccionales en el flujo de facturación.'✓ Copiado
    → Nodo creado con embedding
  2. Crea relaciones
    create_relation: vincula esa decisión a archivos src/billing/*.ts con tipo de arista 'implements'.✓ Copiado
    → Arista creada
  3. Recupera la siguiente sesión
    search_memory_graph: '¿por qué estamos usando Postgres?'✓ Copiado
    → Decisiones superficiales con archivos de soporte

Resultado: Memoria de proyecto duradera que sobrevive al chat.

Errores comunes
  • El grafo de memoria se vuelve obsoleto — Ejecuta prune_stale_links mensualmente
Combinar con: memory-service

Combinaciones

Combínalo con otros MCPs para multiplicar por 10

contextplus + github

Usa los hallazgos de radio de impacto para rellenar un problema de seguimiento

Ejecuta get_blast_radius en LegacyAuth y luego crea un problema de seguimiento de GitHub con cada sitio de llamada como elemento de la lista de verificación.✓ Copiado
contextplus + memory-service

Persiste decisiones a largo plazo en proyectos usando mcp-memory-service como almacenamiento compartido

Siempre que Context+ capture una nueva decisión arquitectónica, refléjala en mcp-memory-service.✓ Copiado

Herramientas

Lo que expone este MCP

HerramientaEntradasCuándo llamarCoste
get_context_tree root: str, depth?: int Primera llamada en una nueva sesión de repo gratuito
get_file_skeleton path: str Vista general económica del archivo gratuito
semantic_code_search query: str, k?: int Encuentra código por significado 1 embedding + 1 búsqueda vectorial
semantic_identifier_search query: str Ubica una función/clase 1 búsqueda vectorial
get_blast_radius symbol: str, file?: str Antes de eliminar/renombrar gratuito
run_static_analysis path?: str Código no utilizado + errores de tipo gratuito
propose_commit files: Edit[] Aplica ediciones con validación gratuito
list_restore_points Ve restauraciones disponibles gratuito
undo_change restore_point_id: str Revierte una edición oculta gratuito
upsert_memory_node content: str, tags?: str[] Guarda un hecho duradero 1 embedding
search_memory_graph query: str, traversal?: int Recuerda decisiones pasadas 1 búsqueda vectorial

Coste y límites

Lo que cuesta ejecutarlo

Cuota de API
Depende del proveedor de embeddings: Ollama gratuito, OpenAI ~$0.02/1M tokens
Tokens por llamada
Lecturas de esqueleto: 100-500 tokens. Búsquedas completas: 500-2000
Monetario
Gratuito (código abierto) + costos de embeddings si usas proveedores en la nube
Consejo
Usa Ollama con nomic-embed-text para costo marginal cero.

Seguridad

Permisos, secretos, alcance

Ámbitos mínimos: Lectura/escritura del sistema de archivos en el repositorio indexado
Almacenamiento de credenciales: Claves del proveedor de embeddings mediante env
Salida de datos: Los embeddings van a tu proveedor elegido (o se quedan locales con Ollama)
No conceder nunca: No incluyas directorios con secretos como .env

Resolución de problemas

Errores comunes y soluciones

La indexación es extremadamente lenta

Añade directorios grandes (node_modules, dist) a .contextplusignore; usa Ollama localmente.

La búsqueda semántica devuelve resultados irrelevantes

Tu consulta es demasiado abstracta — incluye un símbolo concreto o una pista de nombre de archivo.

undo_change falla con 'point not found'

Los puntos ocultos son por sesión por defecto. Persiste entre sesiones mediante la bandera de configuración.

Gramática de tree-sitter faltante para un idioma

Verifica la lista de extensiones admitidas; los archivos de tipos no admitidos se omiten pero se indexan como texto plano.

Alternativas

contextplus vs otros

AlternativaCuándo usarlaContrapartida
mcp-language-serverQuieres semántica LSP (renombrar, referencias) en lugar de búsqueda basada en embeddingsSin grafo de memoria, sin deshacer oculto
codebase-memory-mcpPrefieres una vista de grafo de conocimiento sobre esqueletos por archivoForma de índice diferente; 66 idiomas

Más

Recursos

📖 Lee el README oficial en GitHub

🐙 Ver issues abiertas

🔍 Ver todos los 400+ servidores MCP y Skills