RAGMap is a lightweight MCP Registry-compatible subregistry + MCP server focused on RAG-related MCP servers. - Ingests the official MCP Registry, enriches records for RAG use-cases, and serves a subregistry API. - Exposes an MCP server (remote Streamable HTTP + local stdio) so agents can search/filter RAG MCP servers. MapRag is a discovery + routing layer for retrieval. It helps agents and humans
Add this skill
npx mdskills install khalidsaidi/ragmapWell-documented MCP server providing discovery and routing for RAG-related servers with rich filtering
1# RAGMap (RAG MCP Registry Finder)23[](https://glama.ai/mcp/servers/@khalidsaidi/ragmap)45RAGMap is a lightweight MCP Registry-compatible subregistry + MCP server focused on **RAG-related MCP servers**.67It:8- Ingests the official MCP Registry, enriches records for RAG use-cases, and serves a subregistry API.9- Exposes an MCP server (remote Streamable HTTP + local stdio) so agents can search/filter RAG MCP servers.1011## MapRag (RAGMap)1213**MapRag is a discovery + routing layer for retrieval.**14It helps agents and humans answer: *which retrieval MCP server should I use for this task, given my constraints?*1516RAGMap does **not** do retrieval itself. It indexes and enriches retrieval-capable servers, then routes you to the right tool/server.1718## What you get after install (plain English)1920- You get **discovery/routing tools** (`rag_find_servers`, `rag_get_server`, `rag_list_categories`, `rag_explain_score`).21- RAGMap helps you find the best retrieval server for your task and constraints.22- Your agent then connects to that chosen server to do the actual retrieval.2324RAGMap does **not**:2526- Ingest your private documents automatically.27- Host your personal vector database.28- Replace your end-to-end RAG pipeline.2930If you need retrieval over your own data, use a retrieval server from RAGMap results (or your own server) that supports your ingest/index flow.3132## Freshness and ingest3334- Hosted RAGMap updates its index on a schedule. Newly published/changed servers may appear with some delay.35- Most users do **not** run ingest themselves when using the hosted service.36- If you need tighter freshness control or private indexing behavior, self-host and run your own ingest schedule (`docs/DEPLOYMENT.md`).3738**Features:** Registry-compatible API; **semantic + keyword search** (when `OPENAI_API_KEY` is set, e.g. from env or your deployment’s secret manager); categories and `ragScore`; filter by **`hasRemote`**, **`reachable`** (HEAD-checked), **`citations`**, **`localOnly`**, `transport`, `minScore`, `categories`. **Human browse UI** at [ragmap-api.web.app/browse](https://ragmap-api.web.app/browse) — search, filter, copy Cursor/Claude config. MCP tools: `rag_find_servers`, `rag_get_server`, `rag_list_categories`, `rag_explain_score`.3940Full overview: `docs/OVERVIEW.md`4142## Architecture43444546<details>47<summary>Mermaid source</summary>4849```mermaid50%%{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}}}%%51flowchart TB52 %% Concept-only diagram (product value; no deployment/framework/datastore details)5354 classDef mono fill:#ffffff,stroke:#000000,color:#000000,stroke-width:1px;5556 subgraph Inputs[" "]57 direction LR5859 subgraph Query["Agent-native interface"]60 direction TB61 Users["Agents + humans"]:::mono62 subgraph Tooling["Tool call"]63 direction LR64 Criteria["Routing constraints<br/>domain, privacy, citations,<br/>freshness, auth, limits"]:::mono65 Tools["MCP tools<br/>rag_find_servers<br/>rag_get_server<br/>rag_list_categories<br/>rag_explain_score"]:::mono66 end67 Users --> Criteria --> Tools68 end6970 subgraph Subregistry["Subregistry (read-only)"]71 direction TB72 subgraph Ingest["Ingest"]73 direction LR74 Sources["Upstream MCP registries<br/>(official + optional)"]:::mono75 Sync["Sync + normalize<br/>(stable schema)"]:::mono76 Catalog["Enriched catalog<br/>(servers + versions)"]:::mono77 Sources --> Sync --> Catalog78 end7980 subgraph Enrich["Enrich (adds value)"]81 direction LR82 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"]:::mono83 Trust["Trust signals (lightweight)<br/>status, reachability,<br/>schema stability, reports"]:::mono84 end8586 Catalog --> Cap87 Catalog --> Trust88 end89 end9091 subgraph Selection["Selection (the added value)"]92 direction LR93 Router["Router<br/>match + rank + explain"]:::mono94 Ranked["Ranked candidates<br/>+ reasons + connect info"]:::mono95 Retrieval["Chosen retrieval MCP server(s)<br/>(do retrieval)"]:::mono96 Router --> Ranked --> Retrieval97 end9899 Tools --> Router100 Catalog --> Router101102 %% Keep the layout without adding a third visible "box" around Inputs.103 style Inputs fill:#ffffff,stroke:#ffffff,stroke-width:0px104```105106</details>107108## Monorepo layout109110- `apps/api`: REST API + MCP registry-compatible endpoints + ingestion worker111- `apps/mcp-remote`: Remote MCP server (Streamable HTTP)112- `packages/mcp-local`: Local MCP server (stdio)113- `packages/shared`: Zod schemas + shared types114- `docs`: docs + Firebase Hosting static assets115116## Local dev117118```bash119cp .env.example .env120corepack enable121pnpm -r install122pnpm -r dev123```124125Optional: set `OPENAI_API_KEY` in `.env` (see `.env.example`) to enable **semantic search** locally; `GET /health` will show `"embeddings": true`.126127API: `http://localhost:3000`128MCP remote: `http://localhost:4000/mcp`129130## Ingest131132```bash133curl -X POST http://localhost:3000/internal/ingest/run \134 -H "Content-Type: application/json" \135 -H "X-Ingest-Token: $INGEST_TOKEN" \136 -d '{"mode":"full"}'137```138139## MCP usage140141Remote (Streamable HTTP):142143```bash144claude mcp add --transport http ragmap https://<your-mcp-domain>/mcp145```146147Local (stdio, npm):148149```bash150npx -y @khalidsaidi/ragmap-mcp@latest151```152153Local (stdio):154155```bash156pnpm -C packages/mcp-local dev157```158159## Key endpoints160161- `GET /embed` — embeddable “Search RAG MCP servers” widget (iframe; query params: `q`, `limit`)162- `GET /health` (includes `embeddings: true|false` when semantic search is on/off)163- `GET /readyz`164- `GET /v0.1/servers`165- `GET /v0.1/servers/:serverName/versions`166- `GET /v0.1/servers/:serverName/versions/:version` (supports `latest`)167- `GET /rag/search`168- `GET /rag/categories`169- `GET /api/stats` (public usage aggregates; no PII)170- `GET /api/usage-graph` (HTML chart of usage)171- `POST /internal/ingest/run` (protected)172173For hosted `ragmap-api.web.app`, `/internal/*` routes are not exposed publicly.174175`GET /rag/search` query params:176- `q` (string)177- `categories` (comma-separated)178- `minScore` (0-100)179- `transport` (`stdio` or `streamable-http`)180- `registryType` (string)181- `hasRemote` (`true` or `false` — only servers with a remote endpoint)182- `reachable` (`true` — only servers whose streamable-http URL passed a HEAD check)183- `citations` (`true` — only servers that mention citations/grounding in metadata)184- `localOnly` (`true` — only stdio, no remote)185186## Smoke tests187188```bash189API_BASE_URL=https://ragmap-api.web.app ./scripts/smoke-public.sh190MCP_URL=https://ragmap-api.web.app/mcp ./scripts/smoke-mcp.sh191```192193## Docs194195- `docs/DISCOVERY-LINK-CONVENTION.md` — optional `discoveryService` in server.json so clients can show “Discover more”196- `docs/AGENT-USAGE.md` — **for agents:** discovery, REST API, MCP install (no human intervention)197- `docs/DEPLOYMENT.md`198- `docs/OVERVIEW.md`199- `docs/DATA_MODEL.md`200- `docs/PRIVACY.md`201- `docs/PUBLISHING.md`202- `docs/GLAMA-CHECKLIST.md`203- `docs/GLAMA-DOCKERFILE.md`204- `scripts/glama-score-status.sh` — print public Glama score flags (inspectable/release/usage)205
Full transparency — inspect the skill content before installing.