Saltar al contenido

Minerva: un servidor MCP en Ruby on Rails para dar memoria documental a agentes de IA

Minerva conecta documentos propios con Claude, Cursor o cualquier herramienta compatible con MCP. La aplicación permite gestionar Markdown, procesar PDFs, importar webs y exponer una búsqueda semántica por pgvector para que los agentes recuperen contexto útil sin copiar y pegar información en cada conversación.

Minerva: un servidor MCP en Ruby on Rails para dar memoria documental a agentes de IA

Junto con mi hijo Mario Alvarez Navarro hemos desarrollado una aplicación open source llamada Minerva.

Minerva es un servidor MCP construido con Ruby on Rails. Su propósito es sencillo: dar a los agentes de IA una base de conocimiento propia, consultable mediante recuperación documental y búsqueda semántica, para que puedan razonar con datos que no viven dentro del modelo.

La idea no es añadir otro chat con archivos adjuntos. La idea es tener una aplicación autoservida donde guardas tus documentos, importas contenido y expones ese conocimiento a herramientas como Claude, Cursor o cualquier cliente compatible con Model Context Protocol.

Qué es Minerva

Minerva es una base de conocimiento que se conecta directamente con agentes de IA. Tú le das documentos y la aplicación los convierte en información recuperable mediante búsqueda semántica. Cuando el agente necesita contexto, no tienes que copiar y pegar todo en la conversación: puede pedir a Minerva los fragmentos relevantes en el momento adecuado.

Eso cambia bastante el flujo de trabajo. En vez de mantener documentos largos dentro del prompt, puedes dejar que el agente consulte una fuente externa, más estable y más cercana a tus datos reales.

Para equipos que usan agentes en proyectos de software, documentación interna, soporte o contenido, ese detalle importa. El contexto deja de depender de la memoria de una sesión concreta y pasa a vivir en una herramienta que el agente puede consultar.

Funcionalidades principales

Minerva incluye las piezas necesarias para crear y alimentar esa base de conocimiento:

  • Gestión de documentos. Permite crear y organizar documentos Markdown desde una interfaz web.
  • Procesamiento de PDFs. Puedes subir PDFs y Minerva extrae el texto automáticamente.
  • Importación de webs. Puede importar contenido desde páginas web y rastrear sitios completos para construir la base documental.
  • Búsqueda RAG. Usa embeddings y búsqueda vectorial con pgvector para encontrar los documentos más relevantes para cada consulta.
  • Interfaz MCP. Expone el conocimiento a Claude, Cursor y otros agentes compatibles con MCP desde un único punto de entrada.

La pieza central es la búsqueda semántica. El agente no pregunta por una ruta de archivo ni por una palabra exacta. Pregunta por una necesidad de información y Minerva devuelve los documentos más relacionados con esa intención.

Arquitectura

Hemos construido Minerva con una prioridad clara: mantener la aplicación simple y con pocas dependencias.

La pila técnica es:

  • PostgreSQL con pgvector para almacenamiento vectorial, con embeddings de 768 dimensiones e índice HNSW.
  • Ollama para generar embeddings locales con el modelo nomic-embed-text, sin depender de una API externa.
  • Solid Queue, Solid Cache y Solid Cable para trabajos en segundo plano, cache y tiempo real, sin Redis.
  • Propshaft e importmap-rails para los assets, sin Node.js.
  • Kamal para el despliegue.

Todo corre sobre Rails 8 y PostgreSQL. No hay Redis, no hay Node.js y no hace falta montar una infraestructura compleja para empezar.

Ese enfoque encaja bien con el tipo de herramienta que queríamos construir. Una base de conocimiento para agentes debe ser fácil de desplegar, fácil de entender y fácil de mantener. Si la infraestructura pesa más que el problema que resuelve, acaba quedándose como una demo.

Cómo funciona

Minerva expone un único endpoint /mcp al que se conectan los agentes. Cuando un agente necesita información, llama a la herramienta DocumentSearch mediante MCP. Minerva ejecuta la búsqueda vectorial y devuelve los documentos más relevantes de la base de conocimiento.

La configuración con Claude Code puede ser tan simple como apuntar a tu instancia de Minerva:

{
  "mcpServers": {
    "minerva": {
      "url": "http://localhost:3000/mcp"
    }
  }
}

A partir de ahí, el agente puede usar Minerva como una fuente de contexto externa. Si le preguntas por una decisión técnica documentada, una guía interna o una página importada, no tiene que inventar ni pedirte que pegues el texto. Puede recuperar la información desde la base.

Por qué esto importa

Los agentes de IA son mucho más útiles cuando trabajan con contexto específico. Pero meter todo ese contexto en cada prompt no escala. Consume tokens, se queda obsoleto y obliga a repetir la misma información sesión tras sesión.

MCP permite separar mejor las responsabilidades. El modelo razona. La herramienta conserva el conocimiento. El agente decide cuándo necesita consultar y recibe solo la información relevante.

Minerva aplica esa idea a una necesidad muy común: dar memoria documental a agentes de IA sin depender de una plataforma cerrada. Es una aplicación Rails que puedes alojar tú mismo, conectar a tus herramientas y adaptar a tus flujos.

Código abierto

Minerva está publicada como código abierto con licencia MIT. El código, las instrucciones de instalación y la documentación están disponibles en GitHub:

github.com/jorgegorka/minerva

Las contribuciones son bienvenidas.