Remnus
Alternativa de código abierto nativa de MCP a Notion: leer y escribir páginas, bases de datos personalizables y tableros kanban/calendario a través de un servidor MCP remoto (OAuth 2.1 + PKCE, tokens con alcance, registro de auditoría).
Documentación
Remnus
Espacio de trabajo de código abierto nativo de MCP para humanos y agentes de IA.
Tableros Kanban, bases de datos y páginas que Claude, Cursor y cualquier agente de IA pueden leer y escribir mediante MCP, junto a ti.
¿Qué es Remnus?
Remnus es el Espacio de Trabajo Colaborativo Humano-Agente, construido alrededor del Protocolo de Contexto de Modelos (MCP). Cada página, base de datos y tablero kanban en tu espacio de trabajo es accesible para agentes de IA mediante un servidor MCP de primera clase: conecta editores con OAuth 2.1 (PKCE) con un solo clic, o usa un token de portador con alcance para agentes headless / CI.
A diferencia de la integración MCP de Notion, Remnus está diseñado para flujos de trabajo headless, CI/CD y agentes de codificación desde el primer día.
Contexto nativo OKF, no un volcado del espacio de trabajo
Remnus usa las ideas del Formato de Conocimiento Abierto (OKF) como un contrato de conocimiento portátil. Las páginas pueden llevar descripciones, tipos, etiquetas, fuentes, estado del ciclo de vida, fechas de frescura y señales de revisión vinculadas a revisiones. La importación/exportación de OKF v0.2 es la capa de intercambio; el espacio de trabajo editable de Remnus sigue siendo canónico.
La herramienta MCP prepare_context convierte una tarea concreta en Context Pack v2: un conjunto de conceptos con presupuesto de tokens clasificados por relevancia BM25, metadatos nativos, enlaces de página, frescura y confianza. El modo Inteligente anuncia automáticamente este flujo centrado en el contexto para trabajo significativo. El modo Estricto además requiere el contextRunId de corta duración del mismo agente antes de las mutaciones MCP de Remnus.
Esto no permite que un servidor MCP controle archivos locales, comandos de shell o Git. La aplicación a nivel de repositorio usa los fragmentos AGENTS.md y CLAUDE.md proporcionados. Lee la guía pública de MCP centrada en contexto y la historia de implementación, Cómo Remnus usa OKF para dar a los agentes de IA mejor contexto.
Características
- Páginas — Editor de Markdown con comandos de barra, subpáginas anidadas e iconos
- Bases de datos — Columnas personalizables, vistas de Tabla / Kanban / Calendario, filtros, ordenamientos
- Paneles — Pantallas de estado en vivo (métricas, gráficos, listas, vistas integradas) que un agente construye desde unos pocos cientos de tokens de JSON y un humano puede editar bloque por bloque
- Servidor MCP — 27 herramientas + 7 recursos + 7 indicaciones sobre HTTP Streamable sin estado
- Contexto nativo OKF — Metadatos de conocimiento portátiles, revisiones de revisión exacta, Context Pack v2 y políticas MCP Inteligente/Estricta
- Autenticación de agentes — OAuth 2.1 + PKCE con un clic (registro dinámico RFC 7591) para editores, o tokens de acceso personal con alcance de lectura/escritura para agentes headless
- Multi-espacio de trabajo — Invita miembros, acceso basado en roles (propietario / miembro / visor)
- Aplicación de escritorio — Shell Tauri v2 para Windows, macOS, Linux
- Móvil — Capacitor v8 para iOS y Android (carga remnus.com)
- i18n — Inglés, Türkçe, हिन्दी, Español, Francés, Alemán, 中文, Ruso
Inicio rápido — Autoalojado
Desarrollo local
git clone https://github.com/Ranork/remnus-app.git
cd remnus-app
cp .env.example .env # fill in AUTH_SECRET + OAuth credentials
npm install
npm run db:migrate
npm run dev
Abre http://localhost:3000. El primer usuario que se registre se promueve automáticamente a administrador.
Docker Compose (configuración de 5 minutos)
Si prefieres ejecutar Remnus usando Docker:
- Clona el repositorio y navega dentro de él:
git clone https://github.com/Ranork/remnus-app.git cd remnus-app - Copia la plantilla de entorno y completa las variables requeridas (especialmente
AUTH_SECRETy las credenciales de OAuth):cp .env.example .env - Inicia la aplicación:
docker compose up -d - Accede a Remnus en
http://localhost:3000. La base de datos SQLite se persistirá automáticamente usando un volumen de Docker.
Desplegar
Añadir MCP a tu editor
Después de iniciar sesión, abre el panel Agentes de IA desde la barra lateral y haz clic en Conectar editor. Te guía a través de cada editor compatible (Cursor, VS Code, Claude Code, Codex, Windsurf y más).
Instalar desde un registro
Remnus está publicado en el Registro MCP oficial (io.github.Ranork/remnus) y en Smithery, por lo que los clientes y directorios compatibles con MCP pueden descubrirlo automáticamente. Smithery ofrece instalación con un clic en muchos clientes (Claude, Cursor, VS Code, Codex, Windsurf y más) — abre la página de Smithery y haz clic en Añadir al toolbox, o usa la CLI de Smithery para instalar directamente en la configuración de un cliente:
npx -y smithery@latest mcp add ranorkk/remnus --client claude
Cambia --client por cursor, vscode, codex, windsurf, etc. De cualquier manera, la primera conexión ejecuta el mismo inicio de sesión OAuth 2.1 — sin token que pegar.
Recomendado — OAuth (sin token): apunta tu editor a la URL MCP y aprueba la pantalla de consentimiento en la primera conexión. Tu editor ejecuta el flujo OAuth 2.1 automáticamente — nada que copiar.
{
"mcpServers": {
"remnus": {
"type": "http",
"url": "https://your-instance.com/api/mcp"
}
}
}
Headless / CI — token de acceso personal: crea un token con alcance desde el panel de Agentes de IA y envíalo como encabezado de portador.
{
"mcpServers": {
"remnus": {
"type": "http",
"url": "https://your-instance.com/api/mcp",
"headers": {
"Authorization": "Bearer <your-token>"
}
}
}
}
Herramientas MCP
| Herramienta | Alcance | Descripción |
|---|---|---|
prepare_context | lectura | Construye Context Pack v2 (BM25 + metadatos OKF + grafo) y devuelve un contextRunId de corta duración |
search_workspace | lectura | Búsqueda de texto completo en páginas y bases de datos |
list_workspace | lectura | Lista elementos de la barra lateral con paginación |
get_page | lectura | Obtiene una página, fila de base de datos o panel (como su especificación de bloques) por ID |
get_pages | lectura | Obtiene múltiples páginas/filas por ID en una sola llamada (get_page por lotes) |
get_database_schema | lectura | Obtiene el esquema de columnas de una base de datos |
query_database | lectura | Consulta filas con filtros y paginación |
list_members | lectura | Lista miembros del espacio de trabajo con roles |
query_audit_log | lectura | Registro de actividad de agentes filtrado |
get_changes_since | lectura | Feed cronológico compacto de lo que cambió desde una marca de tiempo o cursor |
get_related_pages | lectura | El padre de una página, hijos, enlaces salientes, backlinks, hermanos de base de datos y archivos fuente — o, dado una ruta de archivo, las páginas que se basan en él |
create_page | escritura | Crea una página independiente o fila de base de datos, con un icono |
bulk_create_pages | escritura | Crea hasta 50 páginas o filas en una sola llamada, anidando páginas mediante ref/parentRef |
update_page | escritura | Actualiza título, contenido o propiedades |
bulk_update_pages | escritura | Actualiza múltiples filas en una sola llamada |
delete_page | escritura | Elimina una página, base de datos, panel o fila (requiere confirm: true) |
bulk_delete_pages | escritura | Elimina hasta 100 páginas/filas/bases de datos en una sola llamada (requiere confirm: true) |
move_item | escritura | Mueve un elemento a un nuevo padre |
bulk_move_items | escritura | Mueve hasta 100 elementos en una sola llamada, reasignando padres o moviendo filas a una base de datos diferente |
create_database | escritura | Crea una base de datos con esquema personalizado, icono y vistas |
update_database_schema | escritura | Añade o elimina columnas |
create_database_view | escritura | Añade una vista de tabla/kanban/calendario |
update_database_view | escritura | Renombra una vista o parchea su configuración |
delete_database_view | escritura | Elimina una vista guardada (requiere confirm: true) |
create_dashboard | escritura | Crea un panel en vivo desde bloques JSON; devuelve su URL y advertencias para bloques que se renderizarían vacíos |
update_dashboard | escritura | Parchea un panel por ID de bloque — añade, actualiza, elimina, reordena |
add_comment | escritura | Añade un comentario a una página o fila (los comentarios de agentes son de solo añadir) |
Pila tecnológica
- Framework: Next.js 16.2.6 (App Router)
- Base de datos: SQLite mediante Drizzle ORM +
@libsql/client(compatible con Turso) - Autenticación: Auth.js v5 — OAuth de Google y GitHub
- Estilos: Tailwind CSS + iconos de Lucide
- Escritorio: Tauri v2 (Rust)
- Móvil: Capacitor v8
Contribuciones
Consulta CONTRIBUTING.md. Todas las contribuciones son bienvenidas — correcciones de errores, nuevas herramientas MCP, traducciones y documentación.
Licencia
AGPL-3.0 — libre para autoalojar y modificar. Los forks SaaS deben abrir su código fuente.