审查 MCP 权限与变更
MCP 把外部能力带入 Ghast,也把对话数据和 Tool 参数带给外部 Server。安全审查要覆盖四层:Plugin 或配置来源、Server 进程/域名、连接账号与权限、每次 Tool 的真实副作用。
连接前检查
本地 stdio
- 谁发布了要运行的程序或包?
- 命令是否固定版本?
- 工作目录和参数允许访问哪些文件?
- 环境变量包含哪些凭证?
- 进程是否需要联网?会把什么发送出去?
- 停止 Ghast 后是否还有子进程或外部状态?
远程 MCP
- URL 是否为提供方的官方 HTTPS 域名?
- 登录的是哪个账号和组织?
- OAuth 请求了哪些 Scope?
- Headers 中的 Token 有什么权限和有效期?
- 服务是否保留输入、输出或文件内容?
- 如何断开并在远端撤销?
不要把凭证放进聊天消息、Skill、Plugin 文案、截图或日志。优先使用 OAuth 或 Plugin 凭证库。自定义 MCP 的环境变量和 Headers 是明文输入区,编辑时会重新显示现有值;不要在屏幕共享或录屏时打开含凭证的配置。
按副作用审查 Tools
| 类别 | 示例 | 最低核对 |
|---|---|---|
| 只读 | 搜索、列出、获取详情 | 账号、工作区、时间范围、分页是否完整。 |
| 创建 | 新建文档、Issue、任务 | 标题、位置、可见性、默认成员、是否重复。 |
| 更新 | 修改记录、状态、权限 | 目标 ID、旧值、新值、并发覆盖风险。 |
| 发送/发布 | 邮件、消息、评论、公开内容 | 收件人、频道、最终正文、附件、公开范围。 |
| 删除/撤销 | 删除文件、取消事件、撤销授权 | 是否可恢复、影响对象、关联数据和替代方案。 |
| 资金与交易 | 下单、支付、转账 | 网络、资产、金额、费用、滑点、目标地址和最终回执。 |
第一次使用一个 Server 时,只启用必要 Tool,并从只读动作开始。任何高风险动作都应在调用前要求明确参数,在调用后到目标系统确认结果。
Tool 描述变更审查
MCP Server 可以在升级后改变 Tool 的说明或输入 Schema。Ghast 检测到实质变化时,会把该 Tool 暂停在待审查区:
- 打开 Plugins → 连接管理;
- 找到 Tool 变更提醒;
- 选择审查;
- 对比之前与之后的说明或输入 Schema;
- 只有确认含义、参数和副作用后才批准。
批准是对新描述的接受,不是对未来所有调用的永久授权。命令授权、Tool 选择和远端权限仍分别生效。
OAuth 与 Token
- OAuth 优先于手工长期 Token,因为 Scope 和撤销通常更清晰。
- 浏览器授权时确认域名,防止在仿冒页面输入凭证。
- 同一服务的测试与生产账号使用不同连接名称。
- 断开 Ghast 连接后,根据界面提示到服务商处检查远端授权。
- 怀疑泄露时先在服务商处撤销或轮换,再更新 Ghast 配置。
切勿把“已连接”理解为“已验证全部 Scope”。用只读 Tool 确认当前身份和数据范围,再进行写入。
Resources 的数据边界
Resource 内容来自 Server,可能包含文档、数据库记录或文件。打开 Resource 会把内容显示在 Ghast 中;把它用于对话可能继续发送给所选模型提供方。
读取前确认:
- Resource 属于哪个 Server 和账号;
- 是否包含个人信息、客户数据或内部链接;
- 当前模型提供方是否允许接收这些数据;
- 是否只需要其中一小部分。
连接诊断怎么读
Server 卡片可能显示失败连接或受限连接。展开后保留完整错误并按层定位:
- 命令不存在 / 进程退出:本地运行时或参数;
- DNS、TLS、超时:网络、代理或 URL;
- 401、unauthorized、missing credential:OAuth 或 Token;
- 协议/握手错误:端点或传输方式;
- Tool 不可用:Server 能力发现或描述审查;
- 调用成功但业务失败:Tool 参数或远端业务规则。
不要通过关闭错误提示、改成完全访问或扩大 Token 权限来“修复”未知原因。先确定失败层,再做最小改动。
断开、删除与撤销
三种动作不同,而且入口并不相同:
- 断开连接:Plugin Connection 可在连接管理中断开;自定义 MCP Server 当前没有对应 OAuth 断开按钮;
- 删除 Server:移除 Ghast 中的自定义配置;
- 远端撤销:在服务商处使 Token 或 OAuth Grant 失效。
要彻底停止访问,Plugin Connection 通常要在 Ghast 断开并在服务商处撤销;自定义 MCP 则删除配置并在服务商处撤销。已由 Tool 创建或修改的数据不会自动回滚。
上线前检查表
- 来源、作者、版本和完整性可核对。
- 使用正确的测试或生产账号。
- OAuth Scope 或 Token 权限最小化。
- Tool 名称、说明和输入 Schema 已检查。
- Resources 不包含不应发送给模型的数据。
- 只读调用已成功并确认身份。
- 写入动作有明确参数与验收方式。
- 断开、撤销和回滚路径已记录。
- 日志和截图不会泄露凭证或客户数据。