MCP
MCP(Model Context Protocol)是一种让 Axiomate 连接外部工具服务的方式。MCP server 可以把工具、提示词和资源暴露给 Axiomate;连接成功后,Axiomate 会把这些能力加入当前会话可用的工具池。
简单理解:普通工具是 Axiomate 自带的能力,MCP 是把外部系统接进来。例如内部接口、搜索服务、数据库只读查询、设计系统、监控平台等,都可以通过 MCP server 暴露给 Axiomate。
什么时候需要 MCP
适合使用 MCP 的场景包括:
- 需要访问某个外部系统,但不想把复杂接口直接写进提示词。
- 团队已有内部工具,希望让 Axiomate 能安全调用。
- 某些信息不在代码仓库里,例如监控、工单、知识库或业务后台。
- 想把一组工具以统一方式提供给 Axiomate,而不是每次手动复制数据。
如果只是让 Axiomate 读写当前项目文件、运行本地命令,通常不需要 MCP。
MCP server 怎么连接
Axiomate 常用三种 MCP transport:
| 类型 | 含义 | 适合场景 |
|---|---|---|
stdio | Axiomate 启动一个本地子进程,通过标准输入输出通信。 | 本机工具、npm 包、本地脚本。 |
http | 连接远端 HTTP MCP endpoint。 | 云服务、团队内部服务。 |
sse | 连接使用 SSE 的远端 MCP endpoint。 | 仍使用 SSE 协议的旧 server 或特定服务。 |
不指定 --transport 时,axiomate mcp add 默认按 stdio 处理。因此添加 URL 类型 server 时,应明确写 --transport http 或 --transport sse。
添加 MCP server
添加本地 stdio server:
axiomate mcp add my-server -- npx my-mcp-server
命令里的 -- 用来分隔 Axiomate 参数和 server 启动命令;-- 后面的内容会作为 MCP server 命令和参数。
添加 HTTP server:
axiomate mcp add --transport http my-api https://example.com/mcp
添加 SSE server:
axiomate mcp add --transport sse search https://example.com/sse
为 stdio server 传环境变量:
axiomate mcp add -e API_KEY=xxx my-server -- node server.js
为 HTTP server 传请求头:
axiomate mcp add --transport http my-api https://example.com/mcp -H "Authorization: Bearer xxx"
配置保存在哪里
axiomate mcp add 默认写入 local scope。也可以用 -s 指定保存范围:
| scope | 命令示例 | 适合场景 |
|---|---|---|
local | axiomate mcp add -s local ... | 当前项目里仅自己使用,适合本机路径、私有 token、临时配置。 |
user | axiomate mcp add -s user ... | 写入用户全局配置,多个项目都可使用。 |
project | axiomate mcp add -s project ... | 写入当前项目的 .mcp.json,适合团队共享。 |
项目共享的 .mcp.json 不会静默连接。第一次看到 project scope server 时,Axiomate 会要求用户批准或拒绝。
不要把密钥直接提交到 .mcp.json。团队共享配置应优先引用环境变量,让每个用户在本机设置自己的 token。
在对话里管理 MCP
进入 Axiomate 后,可以使用:
/mcp
它会打开 MCP 管理界面,用于查看 server 状态、认证状态、暴露的工具数量、prompts 和 resources。
常用命令:
| 命令 | 作用 |
|---|---|
/mcp | 打开 MCP 管理界面。 |
/mcp reconnect <server-name> | 重连指定 server。 |
/mcp disable <server-name> | 禁用指定 server。 |
/mcp enable <server-name> | 重新启用指定 server。 |
命令行也可以查看和删除配置:
axiomate mcp list
axiomate mcp get <name>
axiomate mcp remove <name>
axiomate mcp list 和 axiomate mcp get 会为了健康检查实际连接 server,可能启动 .mcp.json 里的 stdio server。只在信任的项目目录里运行这些命令。
认证和权限
HTTP 或 SSE server 如果需要 OAuth,Axiomate 会在 /mcp 里显示认证入口。完成认证后,server 暴露的工具才会进入可用状态。
MCP server 暴露工具后,工具调用仍然会经过 Axiomate 的权限和审批流程。也就是说,连接 MCP 不等于所有 MCP 工具都可以绕过确认直接执行。
实务建议:
- 只添加可信 MCP server。
- 不要运行来源不明的 stdio command。
- 不要把 token 写进仓库。
- 团队共享配置优先使用环境变量和最小权限 token。
常见问题
| 现象 | 检查点 |
|---|---|
/mcp 里没有 server | 运行 axiomate mcp list,确认配置写入了正确 scope;如果是 .mcp.json,确认已经批准。 |
| URL server 连接失败 | 确认添加时写了 --transport http 或 --transport sse。 |
显示 needs-auth | 进入 /mcp 完成认证;如果 token 失效,重新认证或删除后重加。 |
Windows 上 npx server 启动失败 | 可把命令改成 cmd,参数用 ["/c", "npx", ...] 包装。 |