基于 MCP 的 AI Agent 应用开发实践

理解 MCP 协议

MCP 协议是一种模型上下文协议,旨在解耦工具提供方与应用研发者,为 AI Agent 应用开发提供标准化的协议支持。它允许将工具服务器(MCP Server)与 Agent 应用分离,Agent 无需关注工具的具体实现细节,通过 MCP 协议即可调用各种工具。

开发环境搭建

  • 安装 Node.js 和 npm :确保本地有 Node.js 环境和 npm 包管理工具,以便后续安装和管理相关依赖。
  • 创建项目目录 :创建一个用于开发基于 MCP 的 AI Agent 应用的项目目录,并初始化 npm 项目。
  • 安装必要的依赖 :根据项目需求,安装如 @modelcontextprotocol/inspectorzodopenai 等依赖包,这些工具分别用于调试 MCP Server、定义工具的输入输出格式以及与 OpenAI 等大语言模型进行交互。

MCP Server 开发

  • 定义工具 :使用 JSON Schema 约束工具的输入、输出格式,推荐使用 zod 来定义 Zod Schema,然后将其转换为 JSON Schema 导出。例如,定义一个浏览器导航工具 browser_navigate 和一个页面滚动工具 browser_scroll,分别指定它们的输入参数和返回值格式。
  • 实现工具逻辑 :为每个工具编写具体的实现逻辑,如在 browser_navigate 工具中,根据输入的 URL 进行页面导航,并返回导航后的页面信息和可点击元素;在 browser_scroll 工具中,根据输入的滚动像素值进行页面滚动,并返回滚动后的页面状态。
  • 配置 package.json :编写 package.json 文件,指定通过 stdio 调用的入口文件、通过 Function Call 同进程调用的入口文件等信息,以便 MCP Server 能够正确启动和运行。
  • 编写启动入口文件 :在入口文件中,导出 listToolscallToolclose 等共用方法,用于列举所有函数、调用具体函数以及 Server 不使用后的清理工作。同时,支持 Stdio 调用方式,以便在不同场景下使用 MCP Server。

开发调试

  • 使用 Inspector :通过运行 npm run dev 启动 MCP Inspector,它会提供一个 Playground,包含 MCP Server 可调试的功能,如 Prompts、Resources、Tools 等。在 Inspector 中,可以方便地测试和调试 MCP Server 的各项功能,但需注意在 Inspector 调试时 console.log 无法显示。
  • 单步调试 :在开发工具的实现逻辑时,可以使用断点调试等单步调试方法,深入分析工具的执行流程和数据传递情况,确保工具的正确性和稳定性。

MCP Client 集成

  • 创建 MCP Client 实例 :在 Agent 应用中,创建 MCP Client 实例,并将开发好的 MCP Server 配置信息添加到 Client 中。例如,对于内置的 MCP Server,可以通过指定其名称、描述以及 localClient 等属性来进行配置。
  • 调用 MCP Server 的工具 :通过 MCP Client 提供的 listTools 方法获取 MCP Server 中可用的工具列表,然后根据需要调用具体的工具。例如,在与 OpenAI 的 Chat Completions API 交互时,可以将 MCP Server 的工具信息转换为模型能够理解的格式,并设置 tool_choice 参数为 ‘auto’,让模型自动选择合适的工具进行调用。

远程调用与云化

  • FaaS 转换 :如果是 Web 应用无法使用 Stdio MCP Server,可以利用 FaaS 将 Stdio 转成 SSE MCP Server,实现 MCP Servers 的云化。这样,就可以在 Function Call 的基础上无缝支持 MCP 类型的 Tools,使得 Web 应用也能够方便地使用 MCP Server 提供的功能。
  • 调用远程 MCP Server :在代码中,通过相应的客户端库或自定义实现,与远程的 MCP Server 进行通信。例如,使用 Python 的 aiohttp 库或 JavaScript 的 fetch API 等,向远程 MCP Server 发送请求并接收响应,从而实现对远程工具的调用。

代码示例

以下是一个基于 MCP 的 AI Agent 应用开发的简单示例:

  • MCP Server 定义工具
import 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI方案2025

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值