Ragmap
FreeNot checkedMapRag is a discovery + routing layer for retrieval. It indexes RAG-capable MCP servers, enriches them with structured metadata, and helps agents (and humans) q
About
MapRag is a discovery + routing layer for retrieval. It indexes RAG-capable MCP servers, enriches them with structured metadata, and helps agents (and humans) quickly find the right retrieval server for a task under constraints like citations, freshness, privacy, domain, and latency. MapRag does not do RAG itself. It helps you choose the best RAG tool/server to do the retrieval.
README
Release Deploy monitor-freshness Glama
Try it: https://ragmap-api.web.app/browse/ Start here: https://github.com/khalidsaidi/ragmap/discussions/17
RAGMap is a lightweight MCP Registry-compatible subregistry + MCP server focused on RAG-related MCP servers.
It:
- 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 (RAGMap)
MapRag is a discovery + routing layer for retrieval. It helps agents and humans answer: which retrieval MCP server should I use for this task, given my constraints?
RAGMap does not do retrieval itself. It indexes and enriches retrieval-capable servers, then routes you to the right tool/server.
What you get after install (plain English)
- You get discovery/routing tools (
rag_find_servers,rag_get_server,rag_list_categories,rag_explain_score). - RAGMap helps you find the best retrieval server for your task and constraints.
- Your agent then connects to that chosen server to do the actual retrieval.
RAGMap does not:
- Ingest your private documents automatically.
- Host your personal vector database.
- Replace your end-to-end RAG pipeline.
If you need retrieval over your own data, use a retrieval server from RAGMap results (or your own server) that supports your ingest/index flow.
Freshness and ingest
- Hosted RAGMap updates its index on a schedule. Newly published/changed servers may appear with some delay.
- Most users do not run ingest themselves when using the hosted service.
- If you need tighter freshness control or private indexing behavior, self-host and run your own ingest schedule (
docs/DEPLOYMENT.md).
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 (probe-checked for streamable-http/SSE), citations, localOnly, transport, minScore, categories. Human browse UI at 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.
Quickstart
Requirements:
curlandjq
1) Top reachable retrievers (checked within 24h)
curl -s "https://ragmap-api.web.app/rag/top?hasRemote=true&reachable=true&reachableMaxAgeHours=24&serverKind=retriever&limit=25" | jq .
2) Search with trust filter (reachable recently)
curl -s "https://ragmap-api.web.app/rag/search?q=rag&hasRemote=true&reachable=true&reachableMaxAgeHours=24&limit=10" | jq .
3) Get install config for a server
Tip: URL-encode names that contain /.
curl -s "https://ragmap-api.web.app/rag/install?name=ai.filegraph%2Fdocument-processing" | jq .
4) Inspect freshness and coverage
curl -s "https://ragmap-api.web.app/rag/stats" | jq .
5) Usage telemetry summary
curl -s "https://ragmap-api.web.app/api/stats" | jq .
Full overview: docs/OVERVIEW.md
Release history: CHANGELOG.md
Architecture

Mermaid source
%%{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
Monorepo layout
apps/api: REST API + MCP registry-compatible endpoints + ingestion workerapps/mcp-remote: Remote MCP server (Streamable HTTP)packages/mcp-local: Local MCP server (stdio)packages/shared: Zod schemas + shared typesdocs: docs + Firebase Hosting static assets
Local dev
cp .env.example .env
corepack enable
pnpm -r install
pnpm -r dev
Optional: set OPENAI_API_KEY in .env (see .env.example) to enable semantic search locally; GET /health will show "embeddings": true.
API: http://localhost:3000
MCP remote: http://localhost:4000/mcp
Ingest
curl -X POST http://localhost:3000/internal/ingest/run \
-H "Content-Type: application/json" \
-H "X-Ingest-Token: $INGEST_TOKEN" \
-d '{"mode":"full"}'
MCP usage
Remote (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
Key endpoints
GET /embed— embeddable “Search RAG MCP servers” widget (iframe; query params:q,limit)GET /health(includesembeddings: true|falsewhen semantic search is on/off)GET /readyzGET /v0.1/serversGET /v0.1/servers/:serverName/versionsGET /v0.1/servers/:serverName/versions/:version(supportslatest)GET /rag/searchGET /rag/top(default sorted recommendations;limitmax50)GET /rag/installGET /rag/statsGET /rag/categoriesGET /api/stats(public usage aggregates; no PII)GET /api/usage-graph(HTML chart of usage)POST /internal/ingest/run(protected)
For hosted ragmap-api.web.app, /internal/* routes are not exposed publicly.
GET /rag/search query params:
q(string)categories(comma-separated)minScore(0-100)transport(stdioorstreamable-http)registryType(string)hasRemote(trueorfalse— only servers with a remote endpoint)reachable(true— only servers that were recently probe-checked as reachable via streamable-http/SSE)reachableMaxAgeHours(optional, only withreachable=true— keep only results checked within N hours)citations(true— only servers that mention citations/grounding in metadata)localOnly(true— only stdio, no remote)
Smoke tests
API_BASE_URL=https://ragmap-api.web.app ./scripts/smoke-public.sh
MCP_URL=https://ragmap-api.web.app/mcp ./scripts/smoke-mcp.sh
Docs
docs/DISCOVERY-LINK-CONVENTION.md— optionaldiscoveryServicein server.json so clients can show “Discover more”docs/AGENT-USAGE.md— for agents: discovery, REST API, MCP install (no human intervention)docs/DEPLOYMENT.mddocs/OVERVIEW.mddocs/DATA_MODEL.mddocs/PRIVACY.mddocs/PUBLISHING.mddocs/GLAMA-CHECKLIST.mddocs/GLAMA-DOCKERFILE.mdscripts/glama-score-status.sh— print public Glama score flags (inspectable/release/usage)
Installing Ragmap
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/khalidsaidi/ragmapFAQ
Is Ragmap MCP free?
Yes, Ragmap MCP is free — one-click install via Unyly at no cost.
Does Ragmap need an API key?
No, Ragmap runs without API keys or environment variables.
Is Ragmap hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Ragmap in Claude Desktop, Claude Code or Cursor?
Open Ragmap on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Notion
Read and write pages in your workspace
by NotionLinear
Issues, cycles, triage — from Claude
by LinearGoogle Drive
Search and read your Drive files
by Googlemindsdb/mindsdb
Connect and unify data across various platforms and databases with [MindsDB as a single MCP server](https://docs.mindsdb.com/mcp/overview).
by mindsdbfulcradynamics/fulcra-context-mcp
MCP server for accessing personal health and biometric data including sleep stages, heart rate, HRV, glucose, workouts, calendar, and location via the Fulcra Li
by fulcradynamicsaymericzip/intlayer
A MCP Server that enhance your IDE with AI-powered assistance for Intlayer i18n / CMS tool: smart CLI access, access to the docs.
by aymericziprinadelph/Agent-MCP
A framework for creating multi-agent systems using MCP for coordinated AI collaboration, featuring task management, shared context, and RAG capabilities.
by rinadelphWhenLabs-org/when
Developer toolkit: auto-detect stack for AI context files, catch port conflicts, validate .env schemas, spot docs drift, audit dependency licenses, and time cod
by WhenLabs-orgBeltran12138/wecom-docs-mcp-server
WeCom (Enterprise WeChat) document operations via MCP: create, read, and edit Docs and Smartsheets (9 tools). Fills the doc-CRUD gap — existing WeCom MCP server
by Beltran12138madbonez/caldav-mcp
Universal MCP server for CalDAV protocol integration. Works with any CalDAV-compatible calendar server including Yandex Calendar, Google Calendar (via CalDAV),
by madbonezCompare Ragmap with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All productivity MCPs
