Mcp Go Client开发示例
在mcp协议解析文章中,我们已经了解了mcp协议的基本概念,以及如何使用mcp协议来开发一个mcp server。本文将介绍如何使用mcp协议来开发一个mcp client。 我们使用 mcp-go来开发,并且模型调用基于阿里云百炼平台。 源码可以参考这里。 整体的步骤可以描述如下: 初始化 mcp client, 由于使用 stdio transport 方式,通过 command 方式,启动一个mcp server。 mcp client 初始化之后,通过 list tools 接口获取所有的工具信息。 处理用户请求的信息,把 prompt 和 tools 信息传递给大模型。我们使用了qwen-plus 模型,本身支持 function call 功能,我们直接使用 tools 把工具信息传递给大模型。 大模型返回结果后,解析结果,判断是否调用了工具。如果没有使用工具,直接返回大模型的结果。如果使用了工具,大模型返回的 ToolCalls 信息包含了工具名称以及调用工具需要的参数信息。 根据ToolCalls 返回的信息,mcp client 通过 call tool 接口,调用工具。 拿到相应的工具返回的结果后,把用户的 prompt 和工具的结果传递给大模型。 拿到大模型的结果后,返回给用户。 首先在 pairec-mcp-demo 目录下进行编译,生成 pairec-mcp-demo 二进制文件, 然后 copy 到 client 目录下。 初始化mcp client 这里 serverPath 就是 pairec-mcp-demo 二进制文件的路径。 首先通过 Initialize 接口初始化mcp client。 func connectToServer(serverPath string) (*client....