接入 MCP 前,先查清它能读写哪些数据
让 Agent 查询一个项目,通常不需要整个账户的写权限。接入前把账户、数据范围和允许动作列出来,比只在提示词里写“只读”可靠。
权限限制要落在账户、接口和执行端。提示词可以指导模型,不能代替实际的读写限制。
相关信息
- 适用对象
- 接入外部工具的 Agent 与 MCP 客户端/服务端
- 起点
- 身份、资源范围、允许动作、失败与撤销
- 关注风险
- 令牌受众错误、代理混淆、不可信内容诱导
“只查询”要在权限里兑现
以查询一个项目的问题列表为例,需要的是读取这个项目,而不是修改所有项目。接入时先查底层凭证实际能访问什么,再查工具暴露了哪些操作。
如果凭证和接口仍允许写入,单靠提示词中的“只读”就留下了缺口。授权应尽量限定到任务所需的项目、文件或业务对象。
| 接入前检查 | 需要明确的内容 |
|---|---|
| 账户 | 使用谁的身份,凭证面向哪个服务 |
| 数据 | 允许访问哪些项目、文件或业务对象 |
| 动作 | 读取、写入、删除和执行分别是否允许 |
| 限制 | 由账户、服务端或执行端中的哪一层拦截 |
| 撤销 | 如何收回权限,如何确认已经失效 |
网页和工具返回都可能夹带指令
Agent 读到的网页、仓库说明或日志里,可能出现要求它改配置、上传文件或发送凭据的文字。这些内容来自待处理资料,不能据此扩展原来的授权。
执行工具调用时,应校验实际操作、目标资源和参数是否符合当前任务;需要受控的动作,要在执行端实施限制。
令牌还要检查是发给谁的
MCP 官方安全文档明确反对未经正确验证就把客户端令牌透传给下游 API。接收一个 token,并不意味着它可以用于任意服务。
接入 OAuth 代理时,检查令牌受众、允许范围及下游身份关系。调试日志可以记录调用结果,但不应记录真实凭据。
用最小任务走完一次调用和撤销
先选一个范围明确的任务,检查允许的调用能否完成,越权调用能否被拒绝,然后撤回权限再确认访问已经停止。保留操作与结果,日志里去掉凭据和不必要的敏感内容。
以后增加工具、扩大数据范围或加入写操作时,再检查新增的能力。这份表用于接入审查,不是对某个产品的安全认证。
资料来源
依据文末资料整理,未做环境实测。编辑与更正说明。
修订记录
2026-10-26:首次发布。
2026-10-27:编辑修订:重写标题、导语和正文,删去重复提示,保留技术范围、来源与原发布时间。