错误信息
在 ~/.config/opencode/opencode.jsonc 里配置 MCP server 时,如果只写了 command 和 args,启动 OpenCode 会报:
Configuration is invalid at ...opencode.jsonc
↳ Expected { readonly "type": "local", ... } | { readonly "type": "remote", ... },
got {"my-server":{"command":"node","args":["dist/index.js"]}} mcp.servers
↳ Missing key mcp.servers.enabled
旧写法 vs 新写法
旧版本格式(现在会报错):
{
"mcp": {
"servers": {
"my-server": {
"command": "node",
"args": ["dist/index.js"]
}
}
}
}
新版本要求每个 server 必须包含 type 和 enabled:
{
"mcp": {
"servers": {
"my-server": {
"type": "local",
"enabled": true,
"command": "node",
"args": ["dist/index.js"]
}
}
}
}
type 的两个合法值
| type | 用途 | 必填字段 |
|---|---|---|
"local" | 本机可执行文件,由 OpenCode 直接 fork 进程 | command、args |
"remote" | 远程 HTTP/HTTPS MCP 端点 | url |
local 示例(Node.js 脚本):
{
"mcp": {
"servers": {
"my-mcp": {
"type": "local",
"enabled": true,
"command": "node",
"args": ["D:\\project\\my-mcp\\dist\\index.js"]
}
}
}
}
remote 示例(HTTP 端点):
{
"mcp": {
"servers": {
"remote-mcp": {
"type": "remote",
"enabled": true,
"url": "http://localhost:3001/mcp"
}
}
}
}
多个 server 示例
{
"mcp": {
"servers": {
"database-tools": {
"type": "local",
"enabled": true,
"command": "node",
"args": ["dist/db-mcp.js"]
},
"file-tools": {
"type": "local",
"enabled": false,
"command": "python",
"args": ["-m", "file_mcp"]
}
}
}
}
enabled: false 可以临时禁用某个 server 而不删除配置。
Windows 路径注意
Windows 路径中反斜杠在 JSON 里需要转义:
"args": ["D:\\project\\dist\\index.js"]
或者用正斜杠(Node.js 和大多数 CLI 工具都支持):
"args": ["D:/project/dist/index.js"]