本文介绍如何将自有系统接入大模型,借助 MCP 通过 prompt 来查询自有系统服务的能力,文章目录大概结构如下:
- 什么是 MCP
- 为什么用 MCP
- 自有系统接入 MCP Server
- Cline 接入 MCP Server
1、什么是 MCP
MCP(Model Context Protocol)是一个开放协议,标准化应用程序如何为 LLM 提供上下文。将 MCP 视为 AI 应用程序的 USB-C 端口。正如 USB-C 提供了一种将设备连接到各种外围设备和配件的标准化方法一样,MCP 也提供了一种将 AI 模型连接到不同数据源和工具的标准化方法。官方给的架构如下:
2、为什么要用 MCP
大模型训练的数据是滞后的,如果要求大模型查询今日天气、应用最新版本等你会发现他无法给出结果,对于当前时刻所发生的事情,大模型无法给出精确的回复:
为了解决这个问题,很多常见的 AI 助手都会有 联网搜索
的能力,AI 助手会将 prompt 发送给第三方搜索引擎,然后三方搜索引擎返回内容,AI 大模型再整合内容生成回答。这里的搜索引擎为 AI 大模型提供了额外的上下文信息。
对于公司内部自建数据来说,联网搜索
就无法支持了,这里就需要 MCP,将自建数据以一种通用协议的方式暴露出来,让 AI 助手知道这个功能是做什么的,通过 MCP 打通到内部系统中去,例如最近有开发者给 flomo 开发的 mcp-server-flomo,通过与 AI 助手的沟通,将好的灵感内容直接记录到 flomo 中
对于公司内部使用的 AI 助手来说,将自有系统接入大模型也是一件非常提效的事情,例如分析用户日志的步骤,内部操作的话,流程如下:
- 根据用户提供的账号,去账户系统查询 uid
- 拿到 uid 后去日志系统里面查询用户日志
- 下载日志,全局搜索日志是否有异常路径被记录
将用户系统与日志系统包装成 MCP Server 后,流程就变成了对答式了:
可能有的人觉得 MCP 并没有什么作用,但其实不然,MCP 最强的是将自建数据提供了上下文能力,相当于是把内部不同的系统建立了连接,这是自建服务不具有的能力
3、自有系统接入 MCP Server
这里以用户系统为例,自有系统提供通过用户 id 查询用户成绩的能力,我们把这个接口的访问通过 MCP Server 的方式包装起来供大模型使用,在示例仓库的 user-system-node 目录,是我简单开发的一个用户系统服务,提供了查询成绩的接口,执行 node index.js
启动服务,效果如下:
访问用户成绩的链接为 http://localhost:9898/scores?userId=2
,让我们记住这个链接
接下来我们使用 create-typescript-server 初始化 MCP Server 项目,执行命令:
npx @modelcontextprotocol/create-server mcp-server-user
按照提示内容创建 MCP Server 需要的信息:
完成上述指令后,可以执行调试工具服务的命令:
npm run inspector
打开上述的 url,查看调试工具页面:
点击 Connect 即可连接 MCP Server 进行调试,调试面板如下:
MCP 服务器调试面板右侧主要用于请求 MCP 服务器内部定义的资源(Resources)、提示词(Prompts)、工具(Tools)等内容。我们可以在右侧的 Tools
栏目点 List Tools
获取 MCP 服务器内部实现的所有工具(Tools)。这里的 create_note
是默认实现的 Tools,点击 Run Tool
即可查看调试结果。
对于我们自有系统来说, 我们来创建自己的 Tools,找到 src/index.ts 的 ListToolsRequestSchema,申明自己 Tools 的能力,并且我们的能力需要提供用户 id ,如下的 user_scores
就是我们申明的 Tools:
大模型会根据我们申明的 Tools 提供 uid 给我们,接下来,我们只需要在 CallToolRequestSchema 处理响应调用即可:
根据提供的 uid 我们请求了自有系统服务,拿到用户成绩并返回。
执行构建项目指令:
npm run build
启动 MCP 调试:
npm run inspector
我们可以看到 List Tool 已经可以看到我们的 user_scores,我们来运行这个 Tool 看下效果:
已经成功查询到用户 id 为 1 的成绩。
MCP Server 已经调试完成,接下来,我们就要使用 MCP Host 来调用,这里我准备使用 Cline 来完成
4、Cline 接入 MCP Server
打开 VS Code,安装 Cline 插件:
安装完成后,我们来配置下 MCP Server(这里会要求你登录 Cline,按照提示完成登录即可):
- 点击左侧的 Cline 图标
- 点击 MCP Server 的 icon
- 选择
Installed
选项卡 - 点击
Configure MCP Server
- 右边填入自己 MCP Server 的构建产物(build 路径下)
- 点击
Done
完成 MCP Server 的配置
然后我们在输入框输入 prompt :帮我查询用户 id 为 2 的成绩
:
Cline 已经识别到 user_scores 这个 MCP,我们点击 Approve
继续:
MCP 帮我们查询到了用户成绩,并且还做了整理的输出,然后继续输入提示词,帮我算下平均成绩
,大模型也能继续进行计算输出。
5、更换模型
Cline 默认绑定的是 claude 模型,虽然可以免费使用一下,但是也太贵了,在测试内部的查询系统时(数据量有点大),一次访问折算下来居然要 1 RMB,属实是消费不起:
这里我使用的是 Gemini,申请 API Key 链接:aistudio.google.com/apikey,在 Cline 进行绑定:
查询使用量: