MCP 服务器
接入 Model Context Protocol 服务器:本地 stdio 与远程 http / sse,OAuth 授权,工具如何注入 AI 与权限如何生效。
MCP(Model Context Protocol)是让 AI 调用外部工具的开放协议。接入一个 MCP 服务器,AI 就能获得一组原本没有的工具,例如查询数据库、调用内部接口、读取公司文档。
入口:设置 → 集成 → MCP 服务器。页面顶部的总开关「启用 MCP 服务器」只对新的对话生效。
添加服务器
点「添加服务器」,填这些字段:
| 字段 | 说明 |
|---|---|
| 类型 | stdio(本地进程)/ http / sse(远程) |
| 名称 | 工具名前缀,建议短、只用字母数字与下划线 |
| 命令 / 参数 | 仅 stdio:要启动的可执行文件与参数 |
| URL | 仅远程:服务器地址 |
| autoApprove | 只读工具是否免确认(见下文权限) |
保存后点「测试连接」验证;列表里每一项都有状态点:已连接 / 需授权 / 连接失败 / 连接中 / 未连接。
stdio 的命令会经过与终端相同的安全护栏:危险或高风险命令会被拒绝,不能借 MCP 绕过终端限制。
远程服务器与 OAuth
http / sse 服务器如果要求授权,状态会变成「需授权」:
- 点「授权」,软件打开系统浏览器;
- 在浏览器里完成登录与同意;
- 回调到本机(只监听
127.0.0.1的随机端口,只接受/callback,带一次性 state,5 分钟超时),拿到令牌后自动重连。
授权信息加密保存在本机配置里,不会出现在界面上,也不会传给模型。之后可以「重新授权」或「清除授权」。
指向内网地址的服务器会被拒绝,只接受公网地址。
工具是怎么注入的
- 工具名统一为
mcp__<服务器名>__<工具名>,避免和内置工具重名; - 名称里有非法字符时会自动清理并追加一段哈希,保证不同服务器之间不撞名;
- 被插件「认领」的服务器,其工具会以
plugin_<插件>_<工具>注册,避免同一个工具出现两份。
服务端返回的结果超过 100,000 字符时,会先保存到文件,只把路径交给 AI,避免占用过多上下文。
权限:什么时候需要你点确认
优先级从高到低:
- 单个工具的规则(
toolRules):allow免确认,ask/deny需确认,deny的工具不会暴露给模型、调用时直接拒绝; - autoApprove 开关:打开后,只有「名字明显是只读」的工具免确认(如
get_*、list_*、search_*),写操作和执行类仍需确认; - 默认:所有 MCP 工具按「需要确认」处理。
目前
toolRules需要在配置文件中手工配置,设置页只提供 autoApprove 开关。
超时与重试:单次调用 60 秒;连接超时远程 20 秒、本地 180 秒;连接失败后 15 秒内不重复重试。
与定时任务的关系
定时任务里 MCP 工具一律不可用,只读档与可写档都是如此:无人值守的任务不会调用外部服务。
常见问题
Q:加了服务器但 AI 还是不会用? 总开关只对新对话生效,先新开一个会话;再看列表里的状态是不是「已连接」。
Q:需要授权的服务器点了没反应? 浏览器被系统拦截时不会自动跳转,可以复制授权链接手动打开;也可以点「重新授权」。
Q:能同时接多个服务器吗? 可以,工具会全部注册进来;名字冲突时会自动加哈希区分。
Q:MCP 工具会消耗积分吗? 工具本身不扣积分;但它返回的内容会进入对话上下文,后续的模型调用会按 token 计费。