码道代码智能体 MCP 支持实测:到底能不能当主力 Agent 用?
码道代码智能体 MCP 支持实测:到底能不能当主力 Agent 用?
试了两周码道体验版的 MCP 功能,把配置方式、实际效果、踩的坑都记下来了。这篇主要回答一个问题:码道的 MCP 支持到什么程度了,值不值得把日常工具链接到上面。
1. 先说结论
码道代码智能体(CodeArts Doer)对 MCP 的支持体验版即可用,但和 Hermes Agent 这类原生 Agent 框架的方案走的是完全不同的路线:
- 码道把 MCP 当成插件系统——写一个 MCP server,注册到码道,AI 在对话中能调用你的工具
- Hermes Agent 把 MCP 当成核心通信协议——Agent 的内部编排(工具调用、任务拆解、多 step 推理)天然通过 MCP 实现
两条路各有取舍。码道的优势是上手快,在 IDE 里无缝使用;Hermes Agent 的优势是编排能力强,适合复杂的自动化工作流。
下面是我的实测过程和判断依据。
2. 码道的 MCP 怎么配
第一步:装好码道
码道目前三套使用方式:macOS 原生客户端(AI IDE)、VS Code 插件、JetBrains 插件。MCP 在三种模式下都支持。
体验版免费额度 500 万 tokens/月,够你跑十几轮带有工具调用的对话。下载地址:
https://codearts.huaweicloud.com/download.html
第二步:启动 MCP server
比如你写了一个简单的 Python MCP server,查华为云 OBS 的存储桶列表:
import json
import subprocess
from mcp.server import Server, stdio_server
server = Server("obs-lister")
@server.tool()
def list_obs_buckets(region: str = "cn-north-4") -> str:
"""列出指定区域的 OBS 存储桶"""
result = subprocess.run(
["hcloud", "OBS", "ListBuckets",
"--cli-region=" + region],
capture_output=True, text=True
)
if result.returncode != 0:
return f"[!] 查询失败: {result.stderr}"
return result.stdout
@server.tool()
def get_bucket_info(bucket_name: str, region: str = "cn-north-4") -> str:
"""查询指定 OBS 桶的详细信息"""
result = subprocess.run(
["hcloud", "OBS", "GetBucketStorageInfo",
"--bucket_name=" + bucket_name,
"--cli-region=" + region],
capture_output=True, text=True
)
if result.returncode != 0:
return f"[!] 查询失败: {result.stderr}"
return result.stdout
if __name__ == "__main__":
server.run(stdio_server())
注意几个坑:
- hcloud CLI 必须提前配置好——用
hcloud configure配好 AK/SK 和默认 region,不然 MCP server 内部的 subprocess 调用会报错 - MCP 的 stdio transport 要求码道能启动子进程,如果你的 hcloud 配置了 long-term token,子进程继承的环境变量可能不全,建议在启动脚本里显式 export
- Python 的
pip install mcp装的是modelcontextprotocol/python-sdk的官方包,但早期有个同名的旧包占了mcp这个名字,如果你遇到ModuleNotFoundError,先检查装的是不是对的版本
第三步:在码道中注册 MCP server
在码道客户端的 MCP 配置管理页面(AI IDE 的 Settings -> MCP Servers),添加一个 stdio 模式的 server:
{
"mcpServers": {
"obs-lister": {
"command": "python3",
"args": ["/path/to/obs-lister-server.py"],
"env": {
"HCLOUD_ACCESS_KEY": "your-ak",
"HCLOUD_SECRET_KEY": "your-sk"
}
}
}
}
点保存,码道会自动检测 MCP server 是否启动成功。成功后,在对话中就可以用自然语言调用了:
“帮我查一下北京区域的 OBS 存储桶”
码道会意识到 list_obs_buckets 这个工具可用,自动调它并返回结果。实测从发出请求到拿到结果大约 3-5 秒(含模型推理 + 工具执行)。
3. 实测效果:一个完整的例子
我搭了一个完全针对华为云运维场景的 MCP server,注册了三个工具:
- 查 ECS 实例列表(调 hcloud ECS ListServers)
- 查 OBS 桶列表和容量
- 查安全组规则并做安全分析
用自然语言试了几个场景:
| 场景 | 效果 | 耗时 |
|---|---|---|
| “列出北京区域所有运行中的 ECS” | 正确调用并格式化输出 | 4s |
| “检查安全组 sg-xxx 有没有高危端口” | 正确拉取规则,AI 自行分析 0.0.0.0/0 的 3306 端口 | 6s |
| “统计所有 OBS 桶的存储容量” | 循环调 get_bucket_info,但只列了前 3 个 | 12s |
| “帮我把 ECS 列表和 OBS 容量写到一个 JSON 里” | 先后调了两个工具,但 JSON 拼接格式不对 | 8s |
问题很明显:工具调用正确率不错,但跨工具的编排能力偏弱。 多个工具串起来的时候,码道倾向于独立处理每次调用,而不是形成完整的工作流状态机。
4. 和 Hermes Agent 的 MCP 方案对比
Hermes Agent 对 MCP 的用法完全不同——它本身就是以 MCP 协议作为 Agent 内部编排的通信基础。在 Hermes 里,MCP 不是"插件系统",而是 Agent 的核心基础设施。
| 对比维度 | 码道 + MCP | Hermes Agent + MCP |
|---|---|---|
| 使用场景 | IDE 内编程辅助 + 简单工具调用 | 自动化工作流、多步推理、后台任务 |
| MCP 定位 | 外部工具接入接口 | 核心 Agent 编排协议 |
| 多工具编排 | 弱,每次调用相对独立 | 强,支持多步、分支、条件 |
| 环境依赖 | 需要 IDE/客户端运行 | 可在 CLI/后台运行,无 GUI 依赖 |
| 上手成本 | 低,IDE 中点一点就能配 | 中,需要理解 Hermes 的配置体系 |
| 工具复用性 | 同一个 MCP server 可在多个 MCP 客户端复用 | 同左,标准 MCP 协议保证互操作性 |
| 执行环境 | 依赖码道 IDE 进程 | 独立进程,可后台持续运行 |
举例:同样的"巡检华为云资源"任务
码道方案:打开 AI IDE -> 对话中输入"巡检我的 ECS 和 OBS 资源状态" -> AI 依次调两个工具 -> 返回文本结果。依赖 IDE 保持打开。
Hermes 方案:写一个 cron 任务 -> Agent 自动启动 -> 调 MCP server 查 ECS + OBS -> 发现异常自动发飞书通知。全程无人值守。
两个方案不冲突。我现在的姿势是:
码道(代码辅助 + 快速查询)
└── 共享 MCP server
└── Hermes Agent(自动化巡检 + 编排 + 定时任务)
同一个 MCP server(obs-lister)在两个 Agent 中都能用,不需要各写一套。
5. 必须说的实话
[+] 觉得不错的点
- MCP 配置比我想象中简单——写一个 Python 脚本 + 一段 JSON 配置,5 分钟就能跑通。码道对 MCP 协议的实现基本符合 spec,没有魔改
- 工具发现能力好——你注册了哪些 tool、每个 tool 的参数是什么,码道都能正确感知,不会出现"明明有这个工具但 AI 不用"的情况
- 免费额度够用——500 万 tokens/月,日常测十几个 MCP 工具调用绰绰有余
[!] 需要改进的点
- 多工具编排弱——跨工具的复杂工作流容易断,AI 有时会漏调中间步骤
- 错误处理不透明——MCP server 内部报错时,码道有时只显示"工具调用失败",不告诉你具体是 hcloud 超时还是参数传错了
- MCP server 重启问题——码道客户端关闭再打开后,之前的 MCP server 配置还在,但需要手动重启,没有自动重连机制
- 日志太少——MCP 通信日志默认不输出,排错只能靠猜。需要手动设环境变量
MCP_LOG_LEVEL=debug才能在 stderr 里看到
[x] 踩过的坑
- hcloud 配置路径问题——MCP server 的子进程默认继承码道客户端的 PATH,如果你的 hcloud 装在自定义目录,MCP server 里找不到 hcloud 命令。解决:在 server 配置的
env里显式设PATH - Python SDK 版本——
pip install mcp默认装的版本可能和码道兼容性有问题。建议指定版本:pip install "mcp>=1.2.0" - 中文路径问题——MCP server 路径带中文时,码道客户端在某些版本下解析 JSON 配置会出错。建议 MCP server 放在纯英文路径
6. 总结
码道体验版对 MCP 的支持不是"尝鲜画饼"——它是能用的(工具发现、参数映射、调用执行都对),但不适合做复杂的自动化编排。最佳定位是:IDE 里的轻量工具扩展,用来查资源、跑脚本、快速操作。
如果你的场景是写代码时随手查一下云资源、调个 API,码道 + MCP 已经够用。如果你的场景是定时巡检、异常告警、多步自动化,建议用 Hermes Agent + MCP,把码道留给编程辅助。
最后列一下我个人的 MCP server 模板目录结构,供参考:
~/mcp-servers/
├── obs-lister/ # 查 OBS 桶信息
│ ├── server.py
│ └── README.md
├── ecs-inspector/ # 查 ECS 实例和健康检查
│ ├── server.py
│ └── config.json
└── common/ # 共享工具函数
└── hcloud_utils.py
同一个 server 注册到码道是 IDE 工具,注册到 Hermes 就是自动化 Agent 的能力。MCP 协议让这一步复用成为可能——这是它最值钱的地方。
参考链接:
- 码道代码智能体产品页:https://codearts.huaweicloud.com/
- 码道下载:https://codearts.huaweicloud.com/download.html
- 华为云 KooCLI 文档:https://support.huaweicloud.com/cli/
- 华为云 AI Shell 产品页:https://www.huaweicloud.com/product/aishell.html
- 点赞
- 收藏
- 关注作者
评论(0)