Servidor MCP
POST /mcp habla el Model Context Protocol: Claude o cualquier cliente MCP lee el esquema (JSON, Mermaid, Cypher, JSON Schema, GraphQL), ejecuta consultas de lectura, pide el plan de una consulta sin ejecutarla y escribe. Actúa con la identidad de su token o cuenta, es decir con sus roles y privilegios; una herramienta que no puede usar ni siquiera aparece en la lista. Las consultas guardadas (My APIs) también son herramientas.
Búsqueda vectorial
CREATE VECTOR INDEX sobre una propiedad de embedding y luego db.index.vector.queryNodes devuelve los k vecinos más cercanos por similitud coseno o euclídea. Búsqueda exacta hasta 2 000 vectores y después un grafo HNSW aproximado (recall medido de al menos 0,9) que sigue las actualizaciones.
Búsqueda de texto completo
CREATE FULLTEXT INDEX sobre varias etiquetas y propiedades, con analizadores (standard, simple, english, keyword...) y consultas por términos, +obligatorio, -excluido, "frase exacta", prefijo*, difuso~ y propiedad:término, puntuadas por tf-idf.
Las dos búsquedas son consultas como las demás, así que se combinan con el grafo en una sola instrucción: se encuentran los pasajes más cercanos a una pregunta por el significado, se siguen las relaciones hasta su fuente, su autor o su producto y se da ese contexto al asistente. Es la base de la recuperación aumentada (RAG) sobre datos conectados.
Escribir sin romper nada
- En seco: una escritura se ejecuta en una transacción que se revierte, y el agente ve los cambios que haría.
- Directa o por promoción: por defecto la escritura se aplica al instante, dentro de los derechos del agente; en modo « staged » se convierte en una propuesta, guardada en una base replicada, que un revisor promueve o rechaza.
- Derechos propios: dé al agente un rol limitado a las bases y etiquetas que necesita, no el rol de escritura integrado; así no alcanza la base de propuestas.
- Límites y rastro: las filas devueltas, el tamaño de la instrucción y las escrituras por minuto están acotados; las escrituras aparecen en el registro de auditoría (protocolo mcp) y llevan $_agent, $_at y $_source.
gDown AIM: memoria para su asistente de IA
gDown también recuerda un proyecto para Claude Code o cualquier cliente MCP: envíe sus archivos Markdown y sus commits, y el asistente consulta la memoria con las herramientas memory_*, dentro de un presupuesto de tokens, con la fuente de cada respuesta.
- Un paquete por repositorio: los archivos Markdown seguidos por Git y los commits de los últimos días, enviados por un script Python sin dependencias (o con curl); gDown extrae hechos tipados (reglas, decisiones, trampas, puntos del plan, propiedades, rutas, límites) y sustituye el estado anterior de forma atómica.
- Recuperación híbrida: conceptos, texto completo y vectores; los embeddings los calcula el propio gDown, en su proceso (modelo integrado, por defecto) o mediante su propio Ollama o API compatible con OpenAI.
- Cinco herramientas: memory_ask (una pregunta, un repositorio, un presupuesto), memory_context (lo que se aplica a una tarea), memory_about (un concepto), memory_status y memory_note; cada respuesta cita su fuente (archivo y línea, commit o nota).
- Un token de API revocable, ligado a una cuenta local limitada a una base: el asistente lee y solo puede añadir notas (memory_note es su única escritura); DROP API TOKEN le corta el acceso al instante.
Sin embeddings (provider none, o un Ollama que no responde), el envío funciona y la búsqueda es léxica hasta que se procese lo pendiente. Ollama (ollama pull bge-m3; en Linux debe escuchar en la interfaz de Docker) es opcional: el modelo integrado no lo necesita.
RAG: generación aumentada por recuperación en gDown
gDown hace generación aumentada por recuperación (RAG): encuentra los pasajes que responden a una pregunta, por significado y por palabras, junto con el grafo que los rodea, para que un modelo de lenguaje responda a partir de sus datos y los cite. gDown recupera; el modelo que redacta la respuesta es el suyo.
Para asistentes: gDown AIM
- Ingesta: los archivos Markdown y los commits de un repositorio se convierten en hechos tipados y fragmentos de 1 000 caracteres con un solapamiento de 100.
- Recuperación híbrida: el grafo de conceptos, el texto completo y los vectores (prefiltrados por repositorio) se combinan, y luego se ordenan y se cortan a un presupuesto de tokens.
- Cada respuesta cita su fuente (archivo y línea, commit o nota).
- Servido por las herramientas MCP memory_ask, memory_context, memory_about y memory_note; el modelo propio del asistente genera la respuesta.
Para sus aplicaciones
- Un índice vectorial sobre cualquier propiedad: búsqueda exacta hasta 2 000 vectores y luego un grafo HNSW con una exhaustividad medida de al menos 0,9.
- Búsqueda prefiltrada (etiquetas, valores de propiedades): los k resultados se cuentan después del filtro.
- La búsqueda vectorial, las consultas de grafo Cypher y el texto completo están en la misma base y en la misma sentencia: encontrar los pasajes más cercanos y seguir después las relaciones hasta su origen.
Embeddings: integrados o externos
- Integrados (por defecto, provider=onnx): el modelo multilingual-e5-small, cuantizado int8, de 384 dimensiones, se ejecuta en el proceso de gDown con ONNX Runtime. Los archivos del modelo están fijados por SHA-256, se descargan una vez o se leen de una carpeta, y el modelo se descarga de la memoria cuando está inactivo. Ningún texto sale del servidor.
- Externos (provider=http): Ollama (se recomienda bge-m3, 1 024 dimensiones) o una API compatible con OpenAI. El token de API solo se envía a esa API y nunca se registra, y los hosts a los que el proveedor puede llamar están limitados a una lista permitida (el bucle local por defecto).
- Ninguno (provider=none): la búsqueda usa solo el grafo y el texto completo.
- Cambiar de modelo: los fragmentos procesados por otro modelo se marcan como obsoletos y se vuelven a procesar bajo demanda.
Calidad medida
gDown AIM se evaluó con tres conjuntos de preguntas sobre el espacio de trabajo real (32 repositorios), sin y con vectores (bge-m3 mediante Ollama). La tabla muestra la exhaustividad, la parte de los hechos esperados que se encuentran, y el tamaño de las respuestas. Esta tabla no incluye el modelo ONNX integrado.
Exhaustividad y tamaño de las respuestas en tokens. Los vectores solo cambiaron la exhaustividad en el conjunto 3 (+11,1 puntos) y acortaron las respuestas de los conjuntos 2 y 3.
Límites: los índices vectoriales y de texto completo viven en memoria y se reconstruyen al abrir la base; ni flujo del servidor al cliente, ni OAuth propio de MCP (token o cuenta, como las demás rutas); memoria: sin embeddings (provider none, o un Ollama que no responde) la búsqueda es léxica hasta que se procese lo pendiente. Aún no se publica ningún benchmark de la búsqueda vectorial ni de MCP: las cifras de esta página no los cubren.