MCP (Model Context Protocol)
把外部工具和数据源接进 CrabCode 的开放协议。支持 stdio、SSE、HTTP 三类 server,含 OAuth 与 acosmi.com 内置代理。
是什么
MCP 是一个开放协议,让 CrabCode 把"工具"和"数据"外接出去:你跑一个 MCP server(比如 Slack、GitHub、文件系统、内部数据库),把它注册进配置,CrabCode 就能在对话里调用它的工具、读它的资源。
何时会看到这个文档
/mcp命令展示了 server 列表crabcode mcp addCLI 提示参数错误.mcp.json解析失败时的错误链接settings.json里 MCP 相关字段校验失败
配置位置
| 文件 | 作用域 |
|---|---|
~/.crabcode/settings.json(mcpServers 字段) | 用户全局 |
[repo]/.mcp.json | 项目共享(提交 git) |
[repo]/.crabcode/settings.json | 项目本地(不提交) |
[repo]/.crabcode/settings.local.json | 本地覆盖(gitignored) |
加载顺序:user → project → local → policy;同名 server 后加载的覆盖前面的。
配置示例
{
"mcpServers": {
"filesystem": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/code"],
"env": { "LOG_LEVEL": "info" }
},
"sentry": {
"type": "http",
"url": "https://mcp.sentry.dev/mcp",
"headers": { "Authorization": "Bearer ${SENTRY_TOKEN}" }
},
"internal-sse": {
"type": "sse",
"url": "https://internal.example.com/sse"
}
}
}{
"mcpServers": {
"filesystem": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/code"],
"env": { "LOG_LEVEL": "info" }
},
"sentry": {
"type": "http",
"url": "https://mcp.sentry.dev/mcp",
"headers": { "Authorization": "Bearer ${SENTRY_TOKEN}" }
},
"internal-sse": {
"type": "sse",
"url": "https://internal.example.com/sse"
}
}
}支持的 type:stdio / http / sse(IDE 扩展内部还用 sse-ide / ws-ide,外部不必关心)。
Windows 注意
Windows 下直接 command: "npx" 会找不到执行文件,必须走 cmd:
{
"mcpServers": {
"filesystem": {
"type": "stdio",
"command": "cmd",
"args": ["/c", "npx", "-y", "@modelcontextprotocol/server-filesystem", "C:\\code"]
}
}
}{
"mcpServers": {
"filesystem": {
"type": "stdio",
"command": "cmd",
"args": ["/c", "npx", "-y", "@modelcontextprotocol/server-filesystem", "C:\\code"]
}
}
}CLI 命令
crabcode mcp 是非交互的运维入口:
| 命令 | 用途 |
|---|---|
crabcode mcp list | 列出所有 MCP server(含 scope 与状态) |
crabcode mcp get [name] | 看某个 server 的完整配置 |
crabcode mcp add [name] -- [cmd] [args...] | 加 stdio server |
crabcode mcp add --transport http [name] [url] | 加 HTTP server(--transport sse 同理) |
crabcode mcp add --header "Authorization: Bearer ..." ... | 带认证头 |
crabcode mcp add -e KEY=VAL ... -- [cmd] | 注环境变量 |
crabcode mcp add-json [name] [json] | 直接粘贴一段 JSON 配置 |
crabcode mcp remove [name] [-s user/project/local] | 删 server |
crabcode mcp reset-project-choices | 重置 .mcp.json 信任选择(重新弹审批) |
crabcode mcp serve | 把 CrabCode 自己当 MCP server 启动(被别的 MCP 客户端调用) |
crabcode mcp xaa setup / login | 配置 Cross-App Access(SEP-990)IdP 连接 |
启动参数
--mcp-config <file>—— 临时挂额外配置文件(可多次/空格分隔)--strict-mcp-config—— 只用--mcp-config来的,忽略 user/project/local 配置--mcp-debug—— 已废弃,用--debug
Slash 命令
| 命令 | 用途 |
|---|---|
/mcp | 列所有 server 的实时状态,进入条目可启停 |
/mcp enable/disable [name] 或 all | 启用 / 停用 server |
/mcp reconnect [name] | 强制重连 |
OAuth 与 acosmi.com 内置 server
- OAuth:
sse/http类型 server 配置里可放oauth块(含clientId/callbackPort/authServerMetadataUrl);首次调用工具时 CrabCode 会弹浏览器走授权,token 缓存在本地 keychain 槽里 - Cross-App Access (XAA):企业 IdP 一次性
crabcode mcp xaa setup,之后启用了 XAA 的 server 就走统一身份,不必每个 server 单独登录 - acosmi.com 代理 server:登录 Acosmi 账号后自动出现一组
acosmi.com <Name>前缀的 server,由网关代为转发,无需手动配置——/mcp列表里直接可见
限制与注意
- stdio server 进程长寿:CrabCode 启动时 spawn,会话退出时 kill;崩溃要在下次启动才会复活
- headers 环境变量插值:
Bearer ${TOKEN}、$TOKEN都支持,未定义时被替换为空串 .mcp.json信任:项目级.mcp.json首次加载会弹审批;批准过的选择缓存在 local,reset-project-choices可重置- 同名覆盖:后加载的覆盖前面的;同一 scope 内
crabcode mcp add同名会拒绝 - 作用域:默认加进
user;用-s project加到.mcp.json(团队共享),-s local加到本地