医生qa-mcp
用于基于本地文档的问答的MCP/REST服务器。\ 收听并索引文档,并提供包含搜索结果作为依据(citation)的答案。
1.主要功能
- MCP工具
- health_check - index_documents - list_sources - search_chunks - ask_with_citations
- REST API
- POST /api/index - POST /api/index-text - POST /api/index-upload - POST /api/index/reset - GET /api/index/storage - GET /api/sources - POST /api/search - POST /api/ask - POST /api/ask-stream - POST /api/summarize
- 搜索/回答模式
- 搜索: lexical, hybrid(使用矢量时) - 回答: client_llm, ollama
2.快速开始
npm install
npm run dev默认地址
- UI:
http://localhost:3000/ - 健康检查:
http://localhost:3000/healthz - MCP端点:
http://localhost:3000/mcp
3.环境变量
.env.example复制 .env请制作。
MCP_TRANSPORT=http
MCP_HOST=0.0.0.0
MCP_PORT=3000
PERSIST_INMEMORY_INDEX=true
INMEMORY_INDEX_PATH=.data/inmemory-index.json
MAX_INMEMORY_INDEX_BYTES=20971520
ENABLE_PGVECTOR=false
DATABASE_URL=postgres://mcp:mcp@localhost:5432/mcp_doc_qa
OPENAI_API_KEY=
OPENAI_EMBEDDING_MODEL=text-embedding-3-small
EMBEDDING_PROVIDER=none
ANSWER_MODE=client_llm
OLLAMA_BASE_URL=http://127.0.0.1:11434
OLLAMA_CHAT_MODEL=qwen2.5:7b-instruct
OLLAMA_EMBEDDING_MODEL=nomic-embed-text
VECTOR_DIMENSION=1536推荐模式
- 本地完全RAG
- EMBEDDING_PROVIDER=ollama - ANSWER_MODE=ollama
- 最低配置(MVP)
- EMBEDDING_PROVIDER=none - ANSWER_MODE=client_llm
4.基于Ollama运行
准备型号
ollama pull qwen2.5:7b-instruct
ollama pull nomic-embed-text运行服务器
npm run dev5.使用顺序
- 文档索引
- 路径索引:
POST /api/index - 文本索引:
POST /api/index-text - 文件上载索引:
POST /api/index-upload
- 确认搜索
POST /api/search
- 问答
- 一般:
POST /api/ask - 流:
POST /api/ask-stream - 完整摘要:
POST /api/summarize
- 操作验证
- 源列表:
GET /api/sources - 存储库信息:
GET /api/index/storage - 初始化索引:
POST /api/index/reset
6.测试/评估/平台
npm run test
npm run eval
BENCH_QUESTION="테이블 목록 알려줘" npm run benchtest:单位/集成测试eval:输出简单质量指标bench:API延迟/TTFT基准
7.注意事项
lexical在模式中,文档语言和提问语言不同可能会降低性能。- 结构查询(表/菜单/列表)优先使用决定性提取路径。
- 在生产环境中,
/api/index建议对路径输入应用访问控制/allowlist。
8.连接ChatGPT连接器
- 运行服务器(
MCP_TRANSPORT=http) - 准备公开URL(ngrok/Cloudflare Tunnel)
- 连接器 `https://
/mcp` 注册
请参见
- ChatGPT订阅和OpenAI API收费是分开的。
ANSWER_MODE=client_llm反面客户端LLM生成最终语句。ANSWER_MODE=ollama如果是,服务器将生成最后一句话。
9.投资组合资料
- 产品组合摘要(体系结构/指标):
docs/portfolio/overview.md - 3分钟演示脚本:
docs/portfolio/demo-script.md - 安全和操作说明:
docs/portfolio/security-ops.md
