OpenContext

Memoria de proyecto persistente y nativa de Git para agentes de codificación de IA. Utiliza Markdown plano en .opencontext/ con frontmatter estilo ADR, protecciones de escritura y cero dependencias en la nube.

Documentación

OpenContext logo

Memoria persistente y local al proyecto para agentes de codificación con IA.

Website npm version CI status


La mayoría de los agentes de codificación pierden decisiones críticas entre sesiones: invariantes de arquitectura, contratos de API, patrones rechazados y peculiaridades de configuración. OpenContext resuelve la pérdida de contexto mediante un servidor ligero de Protocolo de Contexto de Modelo (MCP) que permite a los agentes leer y modificar archivos markdown duraderos dentro de .opencontext/.

Sin bases de datos vectoriales, sin suscripciones en la nube y sin estado oculto. La memoria es markdown plano rastreado directamente en Git.


Inicio rápido

Ejecuta el servidor MCP directamente sin instalación mediante npx:

npx -y opencontext-mcp

Configuración en un solo comando

Crea OpenContext en el proyecto actual de forma interactiva:

npx -y opencontext-mcp init

init te guía a través de la configuración (habilitando la integración con OpenCode y Claude Code) y genera todo lo que necesitas:

  • .opencontext/ — directorio que contiene tus archivos de temas de contexto
  • .opencontext.json — plantilla de configuración
  • opencode.json — entrada del servidor MCP para OpenCode
  • .mcp.json — entrada del servidor MCP para Claude Code
  • AGENTS.md / CLAUDE.md — recordatorios de flujo de trabajo para tus agentes

El comando init no acepta argumentos: siempre se ejecuta en el directorio actual, solicita información de forma interactiva y nunca sobrescribe una configuración existente.

Configuración del cliente

OpenCode

Añade OpenContext a tu configuración MCP del proyecto (opencode.json) — o deja que opencontext-mcp init lo haga por ti:

{
  "mcp": {
    "opencontext": {
      "type": "local",
      "command": ["npx", "-y", "opencontext-mcp"],
      "enabled": true
    }
  }
}

Cursor / Claude Desktop / Windsurf

Añade OpenContext a tu archivo de configuración MCP (claude_desktop_config.json o configuración MCP de Cursor):

{
  "mcpServers": {
    "opencontext": {
      "command": "npx",
      "args": ["-y", "opencontext-mcp"]
    }
  }
}


Acceso remoto (HTTP)

Expón el servidor MCP a través de la red con el transporte HTTP Streamable. La URL del endpoint se imprime en stderr al iniciar.

# Plain HTTP on 127.0.0.1:3032 (default)
opencontext-mcp --http

# Custom port / bind to all interfaces
opencontext-mcp server --http --port 8787 --host 0.0.0.0

El servidor escucha en http://<host>:<port>/mcp (HTTP Streamable sin estado — una solicitud a la vez, sin sesiones). GET / devuelve información básica del servidor, útil para una verificación de salud desde el navegador.


Herramientas principales

HerramientaParámetrosDescripción
read_contexttopic? (cadena opcional)Lee un tema de contexto específico, o devuelve el índice ligero de temas (~100 tokens) si se omite.
save_contexttopic (cadena), content (cadena)Escribe o modifica memoria markdown dentro de .opencontext/<topic>.md con protecciones de escritura integradas y protecciones de enlaces simbólicos.
delete_contexttopic (cadena)Elimina un archivo de tema obsoleto y reconstruye automáticamente el índice de temas.

Ciclo de vida de ADR y frontmatter

Los temas admiten frontmatter YAML opcional para rastrear el estado del ciclo de vida — útil cuando las decisiones arquitectónicas evolucionan y el contexto antiguo debe ser visible pero claramente marcado como desactualizado.

---
description: OAuth2 + PKCE authentication flow
status: active
supersedes: auth_v1
---

# Authentication v2

Migrated from JWT to OAuth2 with PKCE.

Claves de frontmatter admitidas:

ClaveValoresDescripción
descriptioncadenaResumen breve utilizado en el índice generado automáticamente.
statusactive | deprecated | supersededEstado del ciclo de vida. Por defecto es active cuando se omite.
supersedescadenaNombre del tema que este tema reemplaza (se establece en el tema más nuevo).
superseded_bycadenaNombre del tema que reemplazó a este (se establece en el tema más antiguo).

Los temas no activos reciben automáticamente insignias de [DEPRECATED] o [SUPERSEDED] en el index.md generado automáticamente, junto con referencias cruzadas que muestran qué tema reemplazó o fue reemplazado.


Flujos de trabajo del agente

Instruye a tus agentes para que aprovechen automáticamente el contexto del proyecto. Añade este fragmento a tu .cursorrules, CLAUDE.md o prompt del sistema:

Before making structural code changes, run `read_context` to inspect existing project topics and architectural decisions.

Whenever a new architectural convention, database schema, or API rule is established or refactored, call `save_context` with a concise, topic-scoped markdown summary. Use YAML frontmatter (status, supersedes) when updating conventions to track lifecycle changes.

When a topic becomes obsolete, call `delete_context` to remove it. For deprecated topics that should remain visible, set status: deprecated or status: superseded in the frontmatter instead of deleting.

Configuración

Personaliza las rutas de almacenamiento y los límites de seguridad con un archivo opcional .opencontext.json en la raíz de tu repositorio (JSON plano — no se admiten comentarios):

{
  "path": ".opencontext",
  "readOnly": false,
  "autoIndex": true,
  "guard": {
    "enabled": true,
    "maxFileSizeKb": 50,
    "strictPatternCheck": true
  }
}

Desarrollo local

# Clone and install dependencies
git clone [https://github.com/slxca/opencontext.git](https://github.com/slxca/opencontext.git)
cd opencontext
pnpm install

# Build & run tests
pnpm build
pnpm test


Documentación

Para guías de configuración avanzadas, parámetros de protección y plantillas de prompts para agentes, visita opencntx.dev/docs.

Contribuciones

Las contribuciones son bienvenidas. Asegúrate de que todas las pruebas unitarias y verificaciones de tipos pasen antes de enviar una solicitud de extracción:

pnpm typecheck && pnpm test