上周我在 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 的启动命令就行。比如:
{
"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 还是自己写的?踩过什么坑,欢迎评论区聊聊,我也想看看大家的实践方案。

2043

被折叠的 条评论
为什么被折叠?



