MCP

MCP

概念

Model Context Protocol (MCP)​ ​ 是一种用于增强大型语言模型(LLM)上下文理解和管理能力的协议或框架。它旨在通过结构化方式整合模型的输入、历史交互、外部知识库以及用户意图,从而优化模型输出的相关性和准确性。

通过标准化方式调用大模型工具箱

与之前技术对比

  • Function Call
    • 模型专属:不同模型(GPT/Claude/DeepSeek)的调用规则不同,协议碎片化:需为每个模型单独开发适配层
    • 功能扩展难:新增工具需重新训练模型或调整接口
  • RAG(分片,向量化存储,相似度匹配,大模型总结)
    • 检索精度不足:首先,RAG 最核心的就是先将知识转换成 "向量" ,导入 "向量数据库",然后在将用户输入的信息也转换成 "向量" ,然后再去向量数据库匹配出相似的 "向量",最后再由大模型去总结检索到的内容。
    • 生成内容不完整:由于 RAG 处理的是文档的切片,而切片的局部性注定了它无法看到整篇文档的信息,因此在回答诸如"列举XXX""总结XXX"等问题时,一般回答是不完整的。
    • 缺乏大局观:RAG 无法判断需要多少个切片才能回答问题,也无法判断文档间的联系。
    • 多轮检索能力弱:RAG 缺乏执行多轮、多查询检索的能力,而这对推理任务来说是必不可少的。

MCP服务器mcp.so

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:123456@127.0.0.1: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

操作步骤:

  1. 导入知识库
  1. 对比,人工对比原文和markdown,纠正自动转化中的错误(包含文字错误和层级关系错误)
  1. 导出markdown文档

操作步骤:

  1. 创建项目
  1. 导入上一步导出的markdown文件,并将文档分块
  1. 将每一块逐个交给大模型生成问题,人工审核问题是否正确,是否有遗漏的问题
  1. 批量生成答案, 人工审核答案是否是基于文档回答的,回答的是否正确
  1. 检查无误后,导出QA对
  1. 导入dify知识库
相关推荐
知识分享小能手3 小时前
Vue3 学习教程,从入门到精通,Axios 在 Vue 3 中的使用指南(37)
前端·javascript·vue.js·学习·typescript·vue·vue3
程序员码歌5 小时前
【零代码AI编程实战】AI灯塔导航-总结篇
android·前端·后端
用户21411832636026 小时前
免费玩转 AI 编程!Claude Code Router + Qwen3-Code 实战教程
前端
小小愿望7 小时前
前端无法获取响应头(如 Content-Disposition)的原因与解决方案
前端·后端
小小愿望7 小时前
项目启功需要添加SKIP_PREFLIGHT_CHECK=true该怎么办?
前端
烛阴7 小时前
精简之道:TypeScript 参数属性 (Parameter Properties) 详解
前端·javascript·typescript
海上彼尚8 小时前
使用 npm-run-all2 简化你的 npm 脚本工作流
前端·npm·node.js
开发者小天9 小时前
为什么 /deep/ 现在不推荐使用?
前端·javascript·node.js
如白驹过隙9 小时前
cloudflare缓存配置
前端·缓存
excel9 小时前
JavaScript 异步编程全解析:Promise、Async/Await 与进阶技巧
前端