Technical Guide

19. MCP 实战:接一个只读外部服务

用低风险方式接入 MCP:先验证 server、工具列表和权限,再把结果放进研究型 Agent 流程。

实战目标

这一篇只接只读 MCP。

不要一开始接写数据库、发消息、删文件这类高风险能力。

目标是:让研究型 Agent 能通过 MCP 查询一个外部资料源。

先验证 MCP server

在接入 DeerFlow 前,先单独确认 server 能运行。

你需要知道:

启动命令是什么
需要哪些环境变量
暴露哪些工具
工具输入输出是什么

这一步不要跳过。否则后面出错时,很难判断是 MCP server 问题,还是 DeerFlow 接入问题。

配置到 DeerFlow

MCP 配置以官方 config.example.yaml 为准。

重点检查:

server 名称
transport 类型
command / args
env
是否需要 OAuth

不要把密钥写进教程或仓库。

验证工具列表

接入后先看工具是否被发现。

不要直接跑完整研究任务。

先确认:

MCP server 启动成功
工具列表能被读取
工具 metadata 正常
调用一个只读工具能返回结果

放进研究型 Agent

确认 MCP 可用后,再让 Agent 在研究任务里调用它。

例如:

先用搜索找公开资料
再用 MCP 查询内部只读资料
最后合并成报告

这一篇你要记住

MCP 实战的顺序是:

先验证 server
再接入 DeerFlow
再验证工具列表
最后放进 Agent 任务

不要反过来。

验收 MCP 接入

接好后不要只看“没有报错”。

至少验证:

server 进程能启动
DeerFlow 能发现工具
工具 schema 正确
调用结果能返回
失败时有错误信息

每一步都要单独确认。

研究型 Agent 里怎么用

可以给 Agent 一个明确规则:

公开资料优先用搜索。
内部或特定资料再用 MCP。
报告里标注来源类型。

这样读者能看出来哪些信息来自公开网页,哪些来自外部服务。

常见问题

最常见的是环境变量没传进去。

其次是 MCP server 本身能跑,但 DeerFlow 里的 command / args 配错。

第三是工具返回太复杂,Agent 不知道怎么用。