
Enterprise Internal Knowledge Base: Production-Ready RAG + MCP
io.github.kimsb2429由 GitHub 账号 kimsb2429 发布v0.1.0更新于 Oct 24, 2026
Production-ready RAG + MCP demo: eval-in-CI merge gate, Langfuse traces, structure-aware chunking.
概览
一个本地 RAG 演示型 MCP 服务器,基于公开的退伍军人事务部教育手册语料回答问题,返回带引用的排序片段。
- 可以做什么
- 通过单个 query 工具和按来源 ID 访问的文档资源,在 pgvector 存储的 VA 教育手册语料中检索并返回带引用的排序片段。提供引用提示词,便于把回答建立在检索到的片段上。
- 适用场景
- 适合体验或研究带评估、追踪和结构化切分的生产级 RAG 流程,或就内置的 VA 教育手册示例语料提问。
- 运行要求
- 以 Python 脚本通过 stdio 在本机运行。需要 Python 及仓库依赖、Docker 运行监听 5433 端口的 Postgres 加 pgvector,并恢复固定数据库转储。生成使用 Claude Sonnet,意味着需要 Anthropic API 密钥;追踪使用 Langfuse Cloud。
安装
在 SourceWeft 中
- 打开 控制台中的 Enterprise Internal Knowledge Base: Production-Ready RAG + MCP,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Enterprise Internal Knowledge Base — Production-Ready RAG + MCP
A public Retrieval-Augmented Generation pipeline exposed as an MCP server. Sample content from Veterans Affairs education manuals.
The repo implements evaluation, observability, and structure-aware ingestion. Cost/latency tuning, tenant-level access control, and other production concerns are discussed in the article linked below.
📖 Full writeup in Towards AI: Enterprise Internal Knowledge Base RAG MCP: POC-to-Production
Why this exists
RAG demos tend to focus on the quality of the retrieval pipeline, without recognizing that production RAG fails on the next ten steps: prompt or model changes that pass code review but tank answer quality, cost and latency drift that cannot be traced to specific queries, cross-tenant leakage that only surfaces in audit. This repo shows what catching them looks like in practice.
The corpus is public (VA Education manuals — 238 documents, 9,000+ chunks) so anyone can clone, run, and adapt the pipeline.
Quickstart
Consuming from Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
Then ask Claude things like "What RPO handles GI Bill claims in Texas?" — the MCP server returns ranked chunks with citations.
Architecture
Ingestion (one-time per corpus):
Query (per MCP tool call):
Stack:
- Vector store: Postgres + pgvector (Docker, port 5433);
content_tsvGIN index for hybrid-ready - Embeddings: mxbai-embed-large (1024 dims, local via sentence-transformers) — $0 API cost
- Reranker: mxbai-rerank-base-v2 (full eval) / FlashRank MiniLM (CI fast mode, 22M ONNX, ~2s/query)
- Generation: Claude Sonnet
- MCP server: FastMCP 3.2.4 — Tools (
query), Resources (document://{source_id}), Prompts (cite_from_chunks) - Observability: Langfuse Cloud, per-trace public sharing
- Eval: DeepEval + 110-query golden set + GitHub Actions merge gate
Eval scores
Full 110-question golden set, contextualized chunks + reranker:
🔗 Live Langfuse trace (public, no login).
Notable result: Anthropic's Contextual Retrieval pattern produced modest lift on top of reranking (+4.8pp AnsRel, +4.1pp CtxPrec) at this scale — well short of the +35% recall their published numbers suggested. Reported as found; juiced numbers would defeat the point.
Eval-in-CI as a merge gate
Every PR runs the golden set in fast mode (FlashRank reranker, ~3-4 min wall, $0.30 in Sonnet calls) against a fixture DB. PRs that regress more than ±5pp on top1/topk/keyword_recall, or +10pp on idk_rate, are blocked.
Forever-artifact: PR #5 — a deliberate failing-then-passing PR. Red CI catches a 20pp top1 regression; green CI confirms the fix. The Actions tab is the proof.
Workflow: .github/workflows/eval-gate.yml.
What this repo doesn't cover
A few production-shape items are seams, not implementations:
- Multi-tenant scoping —
auth_contextparameter present on every MCP tool, typed, currently unused (labels the SSO/ACL seam) - Ingestion concurrency — single-threaded chunker + embedder; production would use a modulus-distributed worker pool
- Hybrid search wiring —
content_tsvGIN index is live; BM25 + RRF fusion at query time stays a post-launch addition
The writeup linked above covers these topics.
Repo layout
Reproducing from raw corpus (~30 min)
Each script is idempotent and resume-safe.
Then python scripts/run_eval.py --fast to verify the eval baseline reproduces.
Further reading
- Full demo writeup: Enterprise Internal Knowledge Base RAG MCP: POC-to-Production (Towards AI, Medium)
docs/2026-04-11-engineering-rag-evidence-and-howtos.md— engineering analysis, evidence base, Zero-to-MCP plandocs/2026-04-12-rag-pipeline-buy-vs-build.md— buy-vs-build map per pipeline stagedocs/deep-dive/2026-04-16-docs-vs-code-rag-adjudication.md— when unified RAG stops working
License
MIT — see LICENSE.
来源:README.md,提交 e1bd519
工具
0版本历史
1- v0.1.0最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分