AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建
作者:高瑞冬
一、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-server
image: ghcr.io/labring/fastgpt-mcp_server:v4.9.6
ports:
- 3005:3000
networks:
- fastgpt
restart: always
environment:
- 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工具集将变得更加丰富和强大,为用户带来更多可能性。