AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建
AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建
作者:高瑞冬
本文目录
- AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建
- 一、MCP协议简介
- 二、创建MCP工具集
- 1. 获取MCP服务地址
- 2. 在FastGPT中创建MCP工具集
- 三、测试MCP工具
- 四、AI模型调用MCP工具
- 1. 调用单个工具
- 2. 调用整个工具集
- 五、私有化部署支持
- 1. 环境准备
- 2. 修改docker-compose.yml文件
- 3. 修改FastGPT配置
- 4. 重启服务
- 六、使用MCP-Proxy集成多个MCP服务
- 1. MCP-Proxy简介
- 2. 安装MCP-Proxy
- 3. 配置MCP-Proxy
- 4. 将MCP-Proxy与FastGPT集成
- 5. 高级配置
- 七、最佳实践建议
- 八、总结
一、MCP协议简介
MCP协议(Model Context Protocol)是由Anthropic在2024年11月初发布的一种协议,旨在统一AI模型与外部系统之间的通信方式,简化它们之间的交互问题。随着OpenAI官方宣布支持MCP协议,越来越多的AI厂商也开始支持这一协议。
MCP协议主要包含Client和Server两部分:
- Client(客户端):使用AI模型的一方,通过MCP Client可以为模型提供调用外部系统的能力
- Server(服务端):提供外部系统调用的一方,实际运行外部系统的主体
FastGPT从v4.9.6版本开始,新增了两种MCP相关的功能:
- MCP服务:可以将FastGPT应用以MCP协议对外提供
- MCP工具集:可以导入外部MCP服务,让FastGPT使用外部工具
mcp-proxy是开源的mcp协议聚合代理,可以聚合多个mcp服务,并提供统一的mcp服务地址。
本文将重点介绍如何在FastGPT中集成和使用MCP工具集。另外,对于私有化部署的fastgpt,本文给出了mcp服务聚合的解决方案。从而实现海量的开源mcp组件能够快速接入Fastgpt平台,为平台上的智能体应用提供丰富的集成能力。给出了开源mcp社区和fastgpt社区资源和平台的完整对接路径。
二、创建MCP工具集
1. 获取MCP服务地址
首先,您需要获取一个支持MCP协议的服务地址。这里以高德地图的MCP服务为例,访问高德地图MCP Server获取MCP地址,格式如:https://mcp.amap.com/sse?key=xxx
。
2. 在FastGPT中创建MCP工具集
-
登录FastGPT平台
-
在工作台中选择"新建应用",然后选择"MCP工具集"
-
在弹出窗口中填入MCP服务地址
-
点击"解析"按钮,系统会自动解析出该MCP服务提供的一系列工具
-
点击"创建"按钮完成MCP工具集的创建
三、测试MCP工具
创建完MCP工具集后,您可以对工具集中的单个工具进行测试:
-
进入MCP工具集详情页面
-
选择需要测试的具体工具,例如
maps_weather
(天气查询工具) -
输入测试参数,如城市名称"杭州"
-
点击"运行"按钮,查看工具返回的结果
-
系统会显示该城市的具体天气信息
四、AI模型调用MCP工具
FastGPT支持两种方式让AI模型调用MCP工具:
1. 调用单个工具
-
在工作流中添加"工具调用"节点
-
选择之前创建的特定MCP工具,例如选择
maps_weather
和maps_text_search
-
连接工作流节点,让AI模型能够调用这些工具
-
测试效果:分别提问天气和地点相关问题
左图:AI调用天气查询工具 | 右图:AI调用地点搜索工具
2. 调用整个工具集
FastGPT还支持让AI自动选择合适的工具进行调用:
-
在工作流中添加"MCP工具集"节点
-
使用"工具调用"节点连接该工具集
-
此时AI会根据用户问题智能选择合适的工具,获取所需信息后回答问题
五、私有化部署支持
如果您使用的是FastGPT私有化部署版本,需要以下步骤来支持MCP功能:
1. 环境准备
确保您的FastGPT版本升级到v4.9.6
或更高版本。
2. 修改docker-compose.yml文件
在您的docker-compose.yml
文件中添加fastgpt-mcp-server
服务:
fastgpt-mcp-server:container_name: fastgpt-mcp-serverimage: ghcr.io/labring/fastgpt-mcp_server:v4.9.6ports:- 3005:3000networks:- fastgptrestart: alwaysenvironment:- FASTGPT_ENDPOINT=http://fastgpt:3000
3. 修改FastGPT配置
编辑config.json
配置文件,添加以下配置(末尾不要携带"/"):
{"feConfigs": {"lafEnv": "https://laf.dev","mcpServerProxyEndpoint": "https://mcp.您的域名.com" }
}
4. 重启服务
执行以下命令重启服务:
docker-compose down
docker-compose up -d
重启完成后,您就可以在工作台看到MCP服务和MCP工具集选项了。
六、使用MCP-Proxy集成多个MCP服务
在实际应用场景中,我们可能需要使用多个MCP服务,这就需要一个聚合代理来整合这些服务。MCP-Proxy是一个开源工具,它可以将多个MCP资源服务器聚合并通过单一HTTP服务器提供。
1. MCP-Proxy简介
MCP-Proxy具有以下特点:
- 代理多个MCP客户端:连接多个MCP资源服务器并聚合它们的工具和功能
- SSE支持:提供SSE(Server-Sent Events)服务器以实现实时更新
- 灵活配置:支持多种客户端类型(stdio、sse或streamable-http),可自定义设置
2. 安装MCP-Proxy
有多种方式可以安装MCP-Proxy:
通过Docker安装(推荐):
docker run -d -p 9090:9090 -v /path/to/config.json:/config/config.json ghcr.io/tbxark/mcp-proxy:latest
从源码构建:
git clone https://github.com/TBXark/mcp-proxy.git
cd mcp-proxy
make build
./build/mcp-proxy --config path/to/config.json
通过Go安装:
go install github.com/TBXark/mcp-proxy@latest
3. 配置MCP-Proxy
创建一个config.json
文件,内容如下:
{"mcpProxy": {"baseURL": "https://mcp.example.com:5678","addr": ":9090","name": "MCP Proxy","version": "1.0.0","options": {"panicIfInvalid": false,"logEnabled": true,"authTokens": ["DefaultTokens"]}},"mcpServers": {"github": {"command": "npx","args": ["-y","@modelcontextprotocol/server-github"],"env": {"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"}},"fetch": {"command": "uvx","args": ["mcp-server-fetch"]},"amap": {"url": "https://mcp.amap.com/sse?key=<YOUR_TOKEN>"}}
}
注意:1,为了方便测试,配置文件的authTokens部分可以删除
2,baseURL需要填写外部可以访问的MCP-Proxy的地址(包含端口)(比如使用frpc内网穿透后的外部访问地址),例如https://mcp.example.com:5678
这个配置文件定义了三个MCP服务:
- github:使用@modelcontextprotocol/server-github提供GitHub功能
- fetch:使用mcp-server-fetch提供网络请求功能
- amap:使用高德地图的MCP服务提供位置服务
4. 将MCP-Proxy与FastGPT集成
完成MCP-Proxy配置和部署后,您将得到一个统一的MCP服务地址,例如https://mcp.example.com:5678/{clientName}/sse
。这个地址可以直接在FastGPT中使用:
- 在FastGPT工作台中选择"新建应用",然后选择"MCP工具集"
- 在MCP地址框中填入MCP-Proxy的地址,例如
https://mcp.example.com:5678/amap/sse
、https://mcp.example.com:5678/github/sse
或https://mcp.example.com:5678/fetch/sse
- 点击"解析",系统会自动解析出该服务提供的所有工具
- 点击"创建"完成工具集创建
5. 高级配置
MCP-Proxy提供了丰富的高级配置,包括:
- 工具过滤:可以设置允许或阻止特定工具
"options": {"toolFilter": {"mode": "block","list": ["create_or_update_file"]}
}
- 认证令牌:可以为每个服务设置不同的认证令牌
"options": {"authTokens": ["SpecificTokens"]
}
- 多种通信协议:支持stdio、sse和streamable-http三种通信协议
七、最佳实践建议
-
工具组合:不同类型的MCP工具可以组合使用,例如将地图查询与天气查询结合,为用户提供更全面的信息。
-
参数调试:在正式使用前,建议对每个工具进行充分测试,了解其参数要求和返回结果格式。
-
错误处理:在工作流设计中,考虑添加错误处理节点,处理工具调用可能出现的异常情况。
-
提示词优化:为AI模型提供清晰的指引,说明何时应该调用哪些工具,以及如何解析工具返回的结果。
八、总结
FastGPT的MCP工具集成功能极大地扩展了平台的能力边界,通过统一的MCP协议,使FastGPT能够轻松对接各种外部服务和工具。不管是地图服务、天气查询,还是其他各类API服务,都可以通过MCP协议集成到FastGPT中,让AI模型能够获取实时、准确的外部信息,为用户提供更加智能、全面的服务。
而mcp-proxy的集成使用,则可以让FastGPT平台上的智能体应用,快速接入海量的开源mcp组件,从而实现更加丰富的应用场景。两者结合实现了AI开源生态集成的闭环。
随着越来越多的服务提供商支持MCP协议,FastGPT的MCP工具集将变得更加丰富和强大,为用户带来更多可能性。