RAGMap
Subregistro e servidor MCP focado em RAG para descobrir e rotear para servidores MCP com capacidade de recuperação, utilizando busca semântica, filtros e ranqueamento explicável.
Documentação
RAGMap (Registro de Localizador de MCPs RAG)
Experimente: https://ragmap-api.web.app/browse/ Comece aqui: https://github.com/khalidsaidi/ragmap/discussions/17
RAGMap é um subregistro leve compatível com o Registro MCP, além de um servidor MCP focado em servidores MCP relacionados a RAG.
Ele:
- Consome o Registro MCP oficial, enriquece registros para casos de uso de RAG e serve uma API de subregistro.
- Expõe um servidor MCP (HTTP remoto via Streamable + stdio local) para que agentes possam buscar/filtrar servidores MCP de RAG.
MapRag (RAGMap)
MapRag é uma camada de descoberta + roteamento para recuperação. Ele ajuda agentes e humanos a responder: qual servidor MCP de recuperação devo usar para esta tarefa, dadas as minhas restrições?
O RAGMap não faz recuperação em si. Ele indexa e enriquece servidores com capacidade de recuperação e, em seguida, roteia você para a ferramenta/servidor correto.
O que você obtém após a instalação (em linguagem simples)
- Você obtém ferramentas de descoberta/roteamento (
rag_find_servers,rag_get_server,rag_list_categories,rag_explain_score). - O RAGMap ajuda você a encontrar o melhor servidor de recuperação para sua tarefa e restrições.
- Seu agente então se conecta ao servidor escolhido para fazer a recuperação de fato.
O RAGMap não:
- Ingere seus documentos privados automaticamente.
- Hospeda seu banco de dados vetorial pessoal.
- Substitui seu pipeline RAG de ponta a ponta.
Se você precisar de recuperação sobre seus próprios dados, use um servidor de recuperação dos resultados do RAGMap (ou seu próprio servidor) que suporte seu fluxo de ingestão/indexação.
Atualização e ingestão
- O RAGMap hospedado atualiza seu índice em um cronograma. Servidores recém-publicados/alterados podem aparecer com algum atraso.
- A maioria dos usuários não executa a ingestão por conta própria ao usar o serviço hospedado.
- Se você precisar de controle mais rígido de atualização ou comportamento de indexação privada, faça self-host e execute seu próprio cronograma de ingestão (
docs/DEPLOYMENT.md).
Recursos: API compatível com Registro; busca semântica + por palavras-chave (quando OPENAI_API_KEY estiver definido, por exemplo, via env ou gerenciador de segredos da sua implantação); categorias e ragScore; filtrar por hasRemote, reachable (verificado por probe para streamable-http/SSE), citations, localOnly, transport, minScore, categories. Interface de navegação humana em ragmap-api.web.app/browse — busque, filtre, copie configuração do Cursor/Claude. Ferramentas MCP: rag_find_servers, rag_get_server, rag_list_categories, rag_explain_score.
Início rápido
Requisitos:
curlejq
1) Recuperadores mais acessíveis (verificados nas últimas 24h)
curl -s "https://ragmap-api.web.app/rag/top?hasRemote=true&reachable=true&reachableMaxAgeHours=24&serverKind=retriever&limit=25" | jq .
2) Busca com filtro de confiança (acessíveis recentemente)
curl -s "https://ragmap-api.web.app/rag/search?q=rag&hasRemote=true&reachable=true&reachableMaxAgeHours=24&limit=10" | jq .
3) Obter configuração de instalação para um servidor
Dica: codifique na URL nomes que contenham /.
curl -s "https://ragmap-api.web.app/rag/install?name=ai.filegraph%2Fdocument-processing" | jq .
4) Inspecionar atualização e cobertura
curl -s "https://ragmap-api.web.app/rag/stats" | jq .
5) Resumo de telemetria de uso
curl -s "https://ragmap-api.web.app/api/stats" | jq .
Visão geral completa: docs/OVERVIEW.md
Histórico de versões: CHANGELOG.md
Arquitetura

Fonte 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
Estrutura do monorepo
apps/api: API REST + endpoints compatíveis com Registro MCP + worker de ingestãoapps/mcp-remote: Servidor MCP remoto (Streamable HTTP)packages/mcp-local: Servidor MCP local (stdio)packages/shared: Esquemas Zod + tipos compartilhadosdocs: documentação + ativos estáticos do Firebase Hosting
Desenvolvimento local
cp .env.example .env
corepack enable
pnpm -r install
pnpm -r dev
Opcional: defina OPENAI_API_KEY em .env (veja .env.example) para habilitar busca semântica localmente; GET /health mostrará "embeddings": true.
API: http://localhost:3000
MCP remoto: http://localhost:4000/mcp
Ingestão
curl -X POST http://localhost:3000/internal/ingest/run \
-H "Content-Type: application/json" \
-H "X-Ingest-Token: $INGEST_TOKEN" \
-d '{"mode":"full"}'
Uso do MCP
Remoto (Streamable HTTP):
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 principais
GET /embed— widget incorporável “Buscar servidores MCP de RAG” (iframe; parâmetros de consulta:q,limit)GET /health(incluiembeddings: true|falsequando a busca semântica está ativada/desativada)GET /readyzGET /v0.1/serversGET /v0.1/servers/:serverName/versionsGET /v0.1/servers/:serverName/versions/:version(suportalatest)GET /rag/searchGET /rag/top(recomendações padrão ordenadas;limitmáximo50)GET /rag/installGET /rag/statsGET /rag/categoriesGET /api/stats(agregados públicos de uso; sem PII)GET /api/usage-graph(gráfico HTML de uso)POST /internal/ingest/run(protegido)
Para ragmap-api.web.app hospedado, as rotas /internal/* não são expostas publicamente.
Parâmetros de consulta GET /rag/search:
q(string)categories(separados por vírgula)minScore(0-100)transport(stdiooustreamable-http)registryType(string)hasRemote(trueoufalse— apenas servidores com endpoint remoto)reachable(true— apenas servidores verificados recentemente por probe como acessíveis via streamable-http/SSE)reachableMaxAgeHours(opcional, apenas comreachable=true— manter apenas resultados verificados nas últimas N horas)citations(true— apenas servidores que mencionam citações/fundamentação nos metadados)localOnly(true— apenas stdio, sem remoto)
Testes de fumaça
API_BASE_URL=https://ragmap-api.web.app ./scripts/smoke-public.sh
MCP_URL=https://ragmap-api.web.app/mcp ./scripts/smoke-mcp.sh
Documentação
docs/DISCOVERY-LINK-CONVENTION.md—discoveryServiceopcional em server.json para que clientes possam mostrar “Descobrir mais”docs/AGENT-USAGE.md— para agentes: descoberta, API REST, instalação MCP (sem intervenção humana)docs/DEPLOYMENT.mddocs/OVERVIEW.mddocs/DATA_MODEL.mddocs/PRIVACY.mddocs/PUBLISHING.mddocs/GLAMA-CHECKLIST.mddocs/GLAMA-DOCKERFILE.mdscripts/glama-score-status.sh— imprime flags públicas de pontuação Glama (inspecionável/versão/uso)