AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建

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相关的功能:

  1. MCP服务:可以将FastGPT应用以MCP协议对外提供
  2. 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工具集

  1. 登录FastGPT平台

  2. 在工作台中选择"新建应用",然后选择"MCP工具集"

    创建MCP工具集

  3. 在弹出窗口中填入MCP服务地址

  4. 点击"解析"按钮,系统会自动解析出该MCP服务提供的一系列工具

  5. 点击"创建"按钮完成MCP工具集的创建

三、测试MCP工具

创建完MCP工具集后,您可以对工具集中的单个工具进行测试:

  1. 进入MCP工具集详情页面

  2. 选择需要测试的具体工具,例如maps_weather(天气查询工具)

    测试MCP工具

  3. 输入测试参数,如城市名称"杭州"

  4. 点击"运行"按钮,查看工具返回的结果

  5. 系统会显示该城市的具体天气信息

四、AI模型调用MCP工具

FastGPT支持两种方式让AI模型调用MCP工具:

1. 调用单个工具

  1. 在工作流中添加"工具调用"节点

  2. 选择之前创建的特定MCP工具,例如选择maps_weathermaps_text_search

    调用单个工具

  3. 连接工作流节点,让AI模型能够调用这些工具

  4. 测试效果:分别提问天气和地点相关问题

    左图:AI调用天气查询工具 | 右图:AI调用地点搜索工具

    天气查询结果 地点搜索结果

2. 调用整个工具集

FastGPT还支持让AI自动选择合适的工具进行调用:

  1. 在工作流中添加"MCP工具集"节点

  2. 使用"工具调用"节点连接该工具集

    工具集配置 调用效果

  3. 此时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中使用:

  1. 在FastGPT工作台中选择"新建应用",然后选择"MCP工具集"
  2. 在MCP地址框中填入MCP-Proxy的地址,例如https://mcp.example.com:5678/amap/ssehttps://mcp.example.com:5678/github/ssehttps://mcp.example.com:5678/fetch/sse
  3. 点击"解析",系统会自动解析出该服务提供的所有工具
  4. 点击"创建"完成工具集创建

5. 高级配置

MCP-Proxy提供了丰富的高级配置,包括:

  • 工具过滤:可以设置允许或阻止特定工具
"options": {
  "toolFilter": {
    "mode": "block",
    "list": ["create_or_update_file"]
  }
}
  • 认证令牌:可以为每个服务设置不同的认证令牌
"options": {
  "authTokens": ["SpecificTokens"]
}
  • 多种通信协议:支持stdio、sse和streamable-http三种通信协议

七、最佳实践建议

  1. 工具组合:不同类型的MCP工具可以组合使用,例如将地图查询与天气查询结合,为用户提供更全面的信息。

  2. 参数调试:在正式使用前,建议对每个工具进行充分测试,了解其参数要求和返回结果格式。

  3. 错误处理:在工作流设计中,考虑添加错误处理节点,处理工具调用可能出现的异常情况。

  4. 提示词优化:为AI模型提供清晰的指引,说明何时应该调用哪些工具,以及如何解析工具返回的结果。

八、总结

FastGPT的MCP工具集成功能极大地扩展了平台的能力边界,通过统一的MCP协议,使FastGPT能够轻松对接各种外部服务和工具。不管是地图服务、天气查询,还是其他各类API服务,都可以通过MCP协议集成到FastGPT中,让AI模型能够获取实时、准确的外部信息,为用户提供更加智能、全面的服务。

而mcp-proxy的集成使用,则可以让FastGPT平台上的智能体应用,快速接入海量的开源mcp组件,从而实现更加丰富的应用场景。两者结合实现了AI开源生态集成的闭环。

随着越来越多的服务提供商支持MCP协议,FastGPT的MCP工具集将变得更加丰富和强大,为用户带来更多可能性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值