{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_9w6rs9kgxw9d","handle":"grounded-rag-mcp","url":"https://wellknown.network/agents/grounded-rag-mcp","links":{"self":"https://wellknown.network/agents/grounded-rag-mcp/record.json","html":"https://wellknown.network/agents/grounded-rag-mcp","markdown":"https://wellknown.network/agents/grounded-rag-mcp/record.md","api":"https://wellknown.network/api/v1/agents/grounded-rag-mcp","status":"https://wellknown.network/api/v1/agents/grounded-rag-mcp/status","claim":"https://wellknown.network/agents/grounded-rag-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/grounded-rag-mcp/claim.json","badge":"https://wellknown.network/agents/grounded-rag-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/grounded-rag-mcp/history","tools":"https://wellknown.network/api/v1/agents/grounded-rag-mcp/tools"},"ard":{"identifier":"urn:air::server:grounded-rag-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"grounded-rag-mcp","summary":"An MCP server that gives any LLM host grounded, cited retrieval over your own documents — hybrid BM25 + dense retrieval, cross-encoder reranking, and built-in eval.","description":"# grounded-rag-mcp\n\nAn **MCP server that gives any LLM host grounded, cited retrieval over your own documents** — hybrid retrieval (BM25 + dense), cross-encoder reranking, citations, and a built-in eval harness.\n\n> Point it at a folder of documents. Your MCP host (Claude Desktop, an IDE, a custom agent) can then `search` and `answer` over them — grounded in the real text, with citations, and an honest \"not in the documents\" path.\n\n[![CI](https://github.com/chetan1521/grounded-rag-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/chetan1521/grounded-rag-mcp/actions/workflows/ci.yml)\n\n---\n\n## Why\n\nMost RAG-over-MCP examples are toys. This one is built production-flavored:\n\n- **Hybrid retrieval** — BM25 (exact terms) + dense (semantics), fused with Reciprocal Rank Fusion.\n- **Cross-encoder reranking** — precision on the top candidates without blowing latency.\n- **Grounding + citations** — answers cite their sources; if the answer isn't in the docs, it says so.\n- **Built-in eval** — measure retrieval quality (recall@k, MRR, hit-rate), not just vibes.\n- **Local-first** — the default path runs with no external services or API keys.\n- **Both transports** — stdio and Streamable HTTP.\n\n## Status\n\n🚧 Early development. Building in public, phase by phase (see `PROJECT_REQUIREMENTS.md`).\n\n- [x] Phase 0 — scaffold, packaging, CI\n- [x] Phase 1 — core retrieval (chunk → embed → BM25 + dense → RRF)\n- [x] Phase 2 — MCP server (stdio) with `ingest` / `search`\n- [x] Phase 3 — rerank + grounding + `answer` (via MCP sampling)\n- [x] Phase 4 — tests, types, docs, resource + prompt\n- [x] Phase 5 — Streamable HTTP transport + `evaluate_retrieval`\n- [ ] Phase 6 — publish to PyPI\n\n## Install\n\n```bash\npip install grounded-rag-mcp            # lean, local-first default (no torch)\npip install \"grounded-rag-mcp[st]\"      # + sentence-transformers for semantic embeddings & reranking\n```\n\n## Tools\n\n| Tool | What it does |\n|---|---|\n| `ingest_documents` | Chunk, embed, and index files or …","publisher":{"name":"Chetan C","url":null},"homepage":"https://github.com/chetan1521/grounded-rag-mcp","repository":"https://github.com/chetan1521/grounded-rag-mcp","version":"0.1.0","license":"MIT","protocols":["mcp"],"tags":["embeddings","hybrid-search","llm","mcp","rag","reranking","retrieval"],"pricing":null,"endpoints":[{"url":"pypi:grounded-rag-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"data.vector-search","name":"Vector Search","confidence":1,"provenance":"declared"}],"categories":["data"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"grounded-rag-mcp","registry":"pypi","observedAt":"2026-11-09T06:27:48.626Z","publishedAt":"2026-09-08T17:06:27.420224Z","latestVersion":"0.1.0"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"grounded-rag-mcp","url":"https://pypi.org/project/grounded-rag-mcp/","firstSeenAt":"2026-09-09T16:25:01.298Z","fetchedAt":"2026-11-09T06:26:23.401Z","normalizedAt":"2026-11-09T06:26:23.401Z"}]},"firstSeenAt":"2026-09-09T16:25:01.298Z","updatedAt":"2026-11-09T06:27:48.626Z"}