RAGMap
Subregistro y servidor MCP centrado en RAG para descubrir y enrutar hacia servidores MCP con capacidad de recuperación, mediante búsqueda semántica, filtros y clasificación explicable.
Documentación
RAGMap (Registro de Descubrimiento de MCP para RAG)
Pruébalo: https://ragmap-api.web.app/browse/ Empieza aquí: https://github.com/khalidsaidi/ragmap/discussions/17
RAGMap es un subregistro ligero compatible con el Registro MCP y un servidor MCP enfocado en servidores MCP relacionados con RAG.
Permite:
- Consumir el Registro MCP oficial, enriquecer los registros para casos de uso de RAG y ofrecer una API de subregistro.
- Exponer un servidor MCP (HTTP Streamable remoto + stdio local) para que los agentes puedan buscar/filtrar servidores MCP de RAG.
MapRag (RAGMap)
MapRag es una capa de descubrimiento y enrutamiento para recuperación. Ayuda a agentes y humanos a responder: ¿qué servidor MCP de recuperación debería usar para esta tarea, dadas mis restricciones?
RAGMap no realiza la recuperación en sí. Indexa y enriquece servidores con capacidad de recuperación, y luego te enruta a la herramienta/servidor adecuado.
Qué obtienes tras la instalación (en lenguaje sencillo)
- Obtienes herramientas de descubrimiento/enrutamiento (
rag_find_servers,rag_get_server,rag_list_categories,rag_explain_score). - RAGMap te ayuda a encontrar el mejor servidor de recuperación para tu tarea y restricciones.
- Tu agente se conecta luego a ese servidor elegido para realizar la recuperación real.
RAGMap no:
- Ingiere tus documentos privados automáticamente.
- Aloja tu base de datos vectorial personal.
- Reemplaza tu pipeline RAG de extremo a extremo.
Si necesitas recuperación sobre tus propios datos, usa un servidor de recuperación de los resultados de RAGMap (o tu propio servidor) que admita tu flujo de ingesta/índice.
Frescura e ingesta
- El RAGMap alojado actualiza su índice según un cronograma. Los servidores recién publicados/cambiados pueden aparecer con cierto retraso.
- La mayoría de los usuarios no ejecutan la ingesta ellos mismos al usar el servicio alojado.
- Si necesitas un control más estricto de frescura o un comportamiento de indexación privado, auto-aloja y ejecuta tu propio cronograma de ingesta (
docs/DEPLOYMENT.md).
Características: API compatible con el Registro; búsqueda semántica + por palabras clave (cuando OPENAI_API_KEY está configurado, p. ej., desde variables de entorno o el administrador de secretos de tu despliegue); categorías y ragScore; filtrar por hasRemote, reachable (verificado por sondeo para streamable-http/SSE), citations, localOnly, transport, minScore, categories. Interfaz de navegación humana en ragmap-api.web.app/browse — buscar, filtrar, copiar configuración de Cursor/Claude. Herramientas MCP: rag_find_servers, rag_get_server, rag_list_categories, rag_explain_score.
Inicio rápido
Requisitos:
curlyjq
1) Recuperadores principales alcanzables (verificados en 24 h)
curl -s "https://ragmap-api.web.app/rag/top?hasRemote=true&reachable=true&reachableMaxAgeHours=24&serverKind=retriever&limit=25" | jq .
2) Búsqueda con filtro de confianza (alcanzables recientemente)
curl -s "https://ragmap-api.web.app/rag/search?q=rag&hasRemote=true&reachable=true&reachableMaxAgeHours=24&limit=10" | jq .
3) Obtener configuración de instalación para un servidor
Consejo: codifica en URL los nombres que contengan /.
curl -s "https://ragmap-api.web.app/rag/install?name=ai.filegraph%2Fdocument-processing" | jq .
4) Inspeccionar frescura y cobertura
curl -s "https://ragmap-api.web.app/rag/stats" | jq .
5) Resumen de telemetría de uso
curl -s "https://ragmap-api.web.app/api/stats" | jq .
Descripción general completa: docs/OVERVIEW.md
Historial de versiones: CHANGELOG.md
Arquitectura

Fuente Mermaid
%%{init: {"theme":"base","themeVariables":{"primaryColor":"#ffffff","primaryTextColor":"#000000","primaryBorderColor":"#000000","lineColor":"#000000","secondaryColor":"#ffffff","tertiaryColor":"#ffffff","clusterBkg":"#ffffff","clusterBorder":"#000000","edgeLabelBackground":"#ffffff"},"flowchart":{"curve":"linear","nodeSpacing":75,"rankSpacing":70}}}%%
flowchart TB
%% Concept-only diagram (product value; no deployment/framework/datastore details)
classDef mono fill:#ffffff,stroke:#000000,color:#000000,stroke-width:1px;
subgraph Inputs[" "]
direction LR
subgraph Query["Agent-native interface"]
direction TB
Users["Agents + humans"]:::mono
subgraph Tooling["Tool call"]
direction LR
Criteria["Routing constraints<br/>domain, privacy, citations,<br/>freshness, auth, limits"]:::mono
Tools["MCP tools<br/>rag_find_servers<br/>rag_get_server<br/>rag_list_categories<br/>rag_explain_score"]:::mono
end
Users --> Criteria --> Tools
end
subgraph Subregistry["Subregistry (read-only)"]
direction TB
subgraph Ingest["Ingest"]
direction LR
Sources["Upstream MCP registries<br/>(official + optional)"]:::mono
Sync["Sync + normalize<br/>(stable schema)"]:::mono
Catalog["Enriched catalog<br/>(servers + versions)"]:::mono
Sources --> Sync --> Catalog
end
subgraph Enrich["Enrich (adds value)"]
direction LR
Cap["Structured metadata<br/>domain: docs|code|web|mixed<br/>retrieval: dense|sparse|hybrid (+rerank)<br/>freshness: static|continuous (max lag)<br/>grounding: citations|provenance<br/>privacy/auth: local|remote + req|optional<br/>limits: top_k|rate|max ctx"]:::mono
Trust["Trust signals (lightweight)<br/>status, reachability,<br/>schema stability, reports"]:::mono
end
Catalog --> Cap
Catalog --> Trust
end
end
subgraph Selection["Selection (the added value)"]
direction LR
Router["Router<br/>match + rank + explain"]:::mono
Ranked["Ranked candidates<br/>+ reasons + connect info"]:::mono
Retrieval["Chosen retrieval MCP server(s)<br/>(do retrieval)"]:::mono
Router --> Ranked --> Retrieval
end
Tools --> Router
Catalog --> Router
%% Keep the layout without adding a third visible "box" around Inputs.
style Inputs fill:#ffffff,stroke:#ffffff,stroke-width:0px
Estructura del monorepo
apps/api: API REST + endpoints compatibles con el Registro MCP + trabajador de ingestaapps/mcp-remote: Servidor MCP remoto (HTTP Streamable)packages/mcp-local: Servidor MCP local (stdio)packages/shared: Esquemas Zod + tipos compartidosdocs: Documentación + activos estáticos de Firebase Hosting
Desarrollo local
cp .env.example .env
corepack enable
pnpm -r install
pnpm -r dev
Opcional: configura OPENAI_API_KEY en .env (ver .env.example) para habilitar búsqueda semántica localmente; GET /health mostrará "embeddings": true.
API: http://localhost:3000
MCP remoto: http://localhost:4000/mcp
Ingesta
curl -X POST http://localhost:3000/internal/ingest/run \
-H "Content-Type: application/json" \
-H "X-Ingest-Token: $INGEST_TOKEN" \
-d '{"mode":"full"}'
Uso de MCP
Remoto (HTTP Streamable):
claude mcp add --transport http ragmap https://<your-mcp-domain>/mcp
Local (stdio, npm):
npx -y @khalidsaidi/ragmap-mcp@latest
Local (stdio):
pnpm -C packages/mcp-local dev
Endpoints clave
GET /embed— widget incrustable de “Buscar servidores MCP de RAG” (iframe; parámetros de consulta:q,limit)GET /health(incluyeembeddings: true|falsecuando la búsqueda semántica está activada/desactivada)GET /readyzGET /v0.1/serversGET /v0.1/servers/:serverName/versionsGET /v0.1/servers/:serverName/versions/:version(admitelatest)GET /rag/searchGET /rag/top(recomendaciones ordenadas por defecto;limitmáximo50)GET /rag/installGET /rag/statsGET /rag/categoriesGET /api/stats(agregados de uso públicos; sin PII)GET /api/usage-graph(gráfico HTML de uso)POST /internal/ingest/run(protegido)
Para ragmap-api.web.app alojado, las rutas /internal/* no se exponen públicamente.
Parámetros de consulta GET /rag/search:
q(cadena)categories(separados por comas)minScore(0-100)transport(stdioostreamable-http)registryType(cadena)hasRemote(trueofalse— solo servidores con endpoint remoto)reachable(true— solo servidores verificados recientemente por sondeo como alcanzables vía streamable-http/SSE)reachableMaxAgeHours(opcional, solo conreachable=true— conservar solo resultados verificados dentro de N horas)citations(true— solo servidores que mencionan citas/fundamentación en metadatos)localOnly(true— solo stdio, sin remoto)
Pruebas de humo
API_BASE_URL=https://ragmap-api.web.app ./scripts/smoke-public.sh
MCP_URL=https://ragmap-api.web.app/mcp ./scripts/smoke-mcp.sh
Documentación
docs/DISCOVERY-LINK-CONVENTION.md—discoveryServiceopcional en server.json para que los clientes puedan mostrar “Descubrir más”docs/AGENT-USAGE.md— para agentes: descubrimiento, API REST, instalación de MCP (sin intervención humana)docs/DEPLOYMENT.mddocs/OVERVIEW.mddocs/DATA_MODEL.mddocs/PRIVACY.mddocs/PUBLISHING.mddocs/GLAMA-CHECKLIST.mddocs/GLAMA-DOCKERFILE.mdscripts/glama-score-status.sh— imprime las banderas públicas de puntuación de Glama (inspeccionable/versión/uso)