上周我在 Harness 里跑了一个多 Agent 工作流,任务拆得漂漂亮亮的,Agent 们各司其职,结果到最后一步卡住了------它需要把产出的报告自动提交到公司的 Jira 工单上,我折腾了整整一个下午。你猜怎么着?Harness 本身没有直接对接 Jira 的能力。当时我差点就放弃了,心想"这玩意儿好看是好用,但进不了生产环境啊"。
后来我翻了一下 Harness 的插件接口文档,发现我漏了一个关键的东西------MCP。如果你还不知道 MCP 是什么,简单说,它就是 AI 应用和外部工具之间的"万能插座"。你不需要为每个工具写一套独立的集成代码,只要工具暴露了 MCP Server,Agent 就能直接调用它。Harness 的插件机制天然支持 MCP------这意味着,你只需要写一次 MCP 配置,Harness 就能访问你公司里的任何工具。
你别说,我一开始也没当回事。不就是又一个协议嘛。但当我真正试了一次之后,我发现这玩意儿比我想象的实用得多。
先说最简单的场景。我公司的代码仓库是 GitLab 自托管,没有公网访问。以前要让 Agent 看代码,我得写个 Python 脚本把仓库拉下来,再让 Agent 读本地文件。用 MCP 的话,只需要启动一个 GitLab MCP Server,告诉它仓库地址和 Token,Harness 里的插件就能直接调用 gitlab.get_file、gitlab.list_issues 这些方法。你想想,这省了多少代码量。
再说一个我踩过的坑------MCP Server 的启动方式。我第一次跑的时候,直接把 MCP Server 放在 Harness 的同一个容器里,结果端口冲突了。后来翻文档才发现,Harness 的插件和 MCP Server 是通过 stdio 通信的,不是网络端口。也就是说,你不需要操心端口分配,直接在插件配置里指定 MCP Server 的启动命令就行。比如:
json
{
"mcp_servers": {
"gitlab": {
"command": "node",
"args": ["mcp-gitlab-server", "--token", "xxx"]
}
}
}
然后插件里直接 call_mcp("gitlab", "get_file", {path: "src/main.py"}) 就行了。简单到让我有点怀疑之前为集成 GitLab 写的那些胶水代码到底值不值。
说实话,最让我兴奋的不是单个工具的集成,而是"组合拳"。我试了一个场景:让 Agent 先通过 MCP 查 Jira 上当前 Sprint 的 Bug 列表,然后通过 GitLab MCP 拉取相关代码,分析完以后自动在 Jira 上创建评论。整个流程跑下来 3 分钟,比我手动处理快太多。而且因为 MCP 是标准化协议,你换一个工具只要换 MCP Server 就行,Agent 的逻辑完全不用改。
但也有坑。MCP 的生态目前还在早期,很多工具没有官方的 MCP Server。我当时要接飞书文档,发现没有现成的,只能自己写一个。写一个 MCP Server 其实不复杂,本质上就是一个符合 MCP 协议的 HTTP 服务或者 stdio 程序。问题是------你得自己维护。万一飞书 API 升级了,你的 MCP Server 也得跟着升级。Harness 本身不帮你管这事。
笑死,我写第一个 MCP Server 的时候,搞混了 Tool 和 Resource 的概念。MCP 里 Tool 是"动作"(比如发消息、创建文档),Resource 是"数据"(比如读取文档内容)。我一开始把 Resource 当 Tool 用,结果 Agent 调用的时候一直报参数错误。后来才搞清楚,Tool 是 Agent 主动调用的,Resource 是 Agent 按需读取的------这两个分开设计是有道理的,但第一次接触确实容易搞混。
我觉得 Harness + MCP 的组合,最大的价值不是"让 Agent 能调用工具",而是"让企业不需要重复造轮子"。你公司可能已经有一套工具链------Jira、Confluence、GitLab、Jenkins、飞书、钉钉......如果每个都要跟 Harness 做深度集成,开发量是巨大的。但通过 MCP,你只需要一个轻量级的适配层,就能让 Harness 里的所有 Agent 访问所有工具。
不过话说回来,MCP 也不是银弹。它的性能瓶颈在于 MCP Server 本身的处理能力,如果你把几十个 Agent 同时指向同一个 MCP Server,它可能会成为瓶颈。还有就是安全问题------MCP Server 能访问什么,Agent 就能访问什么,权限控制完全靠 MCP Server 自己实现。Harness 目前没有在插件层做细粒度的权限拦截。
你目前在用 MCP 吗?如果你们公司已经接了 MCP 生态,是用现成的 Server 还是自己写的?踩过什么坑,欢迎评论区聊聊,我也想看看大家的实践方案。