MCP
概念
Model Context Protocol (MCP) 是一种用于增强大型语言模型(LLM)上下文理解和管理能力的协议或框架。它旨在通过结构化方式整合模型的输入、历史交互、外部知识库以及用户意图,从而优化模型输出的相关性和准确性。
通过标准化方式调用大模型工具箱
与之前技术对比
- Function Call
- 模型专属:不同模型(GPT/Claude/DeepSeek)的调用规则不同,协议碎片化:需为每个模型单独开发适配层
- 功能扩展难:新增工具需重新训练模型或调整接口
- RAG(分片,向量化存储,相似度匹配,大模型总结)
- 检索精度不足:首先,RAG 最核心的就是先将知识转换成 "向量" ,导入 "向量数据库",然后在将用户输入的信息也转换成 "向量" ,然后再去向量数据库匹配出相似的 "向量",最后再由大模型去总结检索到的内容。
- 生成内容不完整:由于 RAG 处理的是文档的切片,而切片的局部性注定了它无法看到整篇文档的信息,因此在回答诸如"列举XXX""总结XXX"等问题时,一般回答是不完整的。
- 缺乏大局观:RAG 无法判断需要多少个切片才能回答问题,也无法判断文档间的联系。
- 多轮检索能力弱:RAG 缺乏执行多轮、多查询检索的能力,而这对推理任务来说是必不可少的。
MCP服务器,mcp.so
- dbhub Universal database MCP server connecting to MySQL, PostgreSQL, SQLite, DuckDB and etc.
- mcp-mongo-server
- mcp-proxy
MCP客户端
cursor,cline,dify(mcp_sse)等
调用方式
- STDIO(本地使用比较方便)
bash
# Linux,Mac
npx -y mcp-mongo-server mongodb://muhammed:kilic@localhost:27017/database --read-only
# windows
cmd /c npx -y mcp-mongo-server mongodb://muhammed:kilic@localhost:27017/database --read-only
- SSE(共享服务)
bash
uv tool install mcp-proxy
mcp-proxy --sse-host 0.0.0.0 --sse-port 8080 -- npx -y mcp-mongo-server "mongodb://root:[email protected]:27017/difydb?authSource=admin"
dify配置sse
- 安装MCP_SSE插件
- 配置SSE服务器地址
- 可以配置多个sse服务器
json
{
"server_name":
{
"url": "http://10.60.5.50:8000/sse",
"headers":
{},
"timeout": 60,
"sse_read_timeout": 300
}
}
dify的sse存在的问题
- 仅支持SSE模式调用
- 配置服务器是全局的,不能跟随agent去设置
搭建服务器
- docker搭建mongo服务器
- 将excel导入mongo数据库
- 注意时间格式 2025/4/25
- 时间查询存在问题
数据QA分段
知识库转MARKDOWN
- mineru: http://10.60.5.50:5173/
操作步骤:
- 导入知识库

- 对比,人工对比原文和markdown,纠正自动转化中的错误(包含文字错误和层级关系错误)

- 导出markdown文档

- easy-database: http://10.60.5.50:1717/
操作步骤:
- 创建项目

- 导入上一步导出的markdown文件,并将文档分块

- 将每一块逐个交给大模型生成问题,人工审核问题是否正确,是否有遗漏的问题


- 批量生成答案, 人工审核答案是否是基于文档回答的,回答的是否正确

- 检查无误后,导出QA对

- 导入dify知识库