OpenCode
OpenCode 是一个开源的 AI 编程工具,对 espctl 有一流支持。
配置
写入项目目录下的 opencode.json,或者
~/.config/opencode/opencode.json 让 espctl 全局可用:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"espctl": {
"type": "local",
"command": ["/path/to/espctl", "mcp", "serve"],
"enabled": true,
"environment": {
"CONTROL_BASE_URL": "https://esphome.cloud",
"MCP_AUTH_SECRET": "your-access-key"
}
}
}
}
和基于 JSON 的 AI 工具相比,有四点要注意:
- 顶层 key 是
mcp,不是mcpServers。 command是一个数组,程序和所有参数都在一起,不是分开的command+args。- 环境变量 key 是
environment,不是env。 type必须是"local",因为 espctl 是在你电脑上启动的程序。
其他路径/值规则和 Claude Code 那一章一样。
看看是不是工作了
重启 OpenCode。在任意对话里:
你能调用哪些 espctl 工具?
应该看到标准的约 40 个工具列表。如果没有,OpenCode 的日志会显示
实际错误 —— Linux 上通常在 ~/.local/share/opencode/logs/,macOS
上在 ~/Library/Logs/opencode/。
OpenCode 特有注意事项
- OpenCode 支持每个服务自己的
cwd字段,和command同一层:"espctl": { "type": "local", "command": ["/path/to/espctl", "mcp", "serve"], "cwd": "/path/to/your/esp-idf/project", "enabled": true, "environment": { ... } } enabled标志可以让你保留 espctl 配置但临时禁用它,而不需要 删整个条目。
提示
问 OpenCode:
读取
install://opencode资源。
…espctl 会返回一段可粘贴的配置块。