MCP 权限风险检查清单
MCP Server 以本地进程运行,拥有你授予的系统权限。接入任何 MCP Server 前,请逐项确认以下检查清单,降低安全风险。
接入前必查项
| 检查项 | Description | Risk |
|---|---|---|
| Sources可信度 | 是否来自官方仓库或知名开发者?Star 数和维护频率如何? | 高 |
| 权限范围 | Server 声明了哪些工具?是否超出你的实际需求? | 高 |
| 文件系统访问 | 是否Required读写文件?访问范围是否限定在特定目录? | 中-高 |
| 网络访问 | 是否Required访问外部网络?连接哪些域名? | 中 |
| 命令执行 | 是否能执行 Shell 命令?是否有命令白名单限制? | 高 |
| API Key 需求 | Required哪些凭据?这些凭据的权限范围是什么? | 中 |
| 数据传输 | 是否会将本地数据发送到外部服务? | 高 |
权限范围评估
Low Risk特征
- 只读操作(如查询天气、搜索文档)
- Not Required API Key
- 不访问文件系统或仅访问指定目录
- 不执行 Shell 命令
- 开源且有活跃社区审查
High Risk特征
- 可执行任意 Shell 命令
- 访问整个文件系统(根目录
/) - Required高权限 API Key(如 GitHub 的 repo 写权限)
- 可发送网络请求到任意域名
- 闭源或缺乏社区审查
- 能修改系统配置或安装软件
凭据保护
- API Key 只在配置文件的 env 字段中设置,不要硬编码在其他地方
- 为每个服务创建专用的 API Key,使用最小权限原则
- 定期轮换 Key,尤其是在怀疑泄露时
- 不要把包含 Key 的配置文件提交到公开仓库
- 将配置文件路径加入
.gitignore
# .gitignore
.cursor/mcp.json
claude_desktop_config.json
.env
企业环境额外检查
- 连接公司内部系统前,需经过团队安全审核
- 不要将生产数据库的凭据配置到 MCP Server
- 使用只读账号连接数据库类 Server
- 确认 Server 不会将公司数据发送到外部
- 在沙箱环境中先测试,确认行为符合预期后再用于正式环境
Important Notes
- MCP Server 的权限等同于你的用户权限,它能做的事你都能做,反之亦然。
- AI 模型可能在对话中被诱导调用危险工具,限制 Server 的权限范围是最有效的防护。
- 定期检查已安装的 Server 列表,移除不再使用的。
- 关注 Server 仓库的安全公告和版本更新。
FAQ
- 如何限制 filesystem Server 的访问范围?
- 在 args 中只指定Required访问的目录路径,不要指定根目录。例如
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/name/projects"]只允许访问 projects 目录。 - 第三方 Is MCP Server safe?
- 取决于具体项目。优先选择官方维护的 Server(@modelcontextprotocol 组织下的包)。第三方 Server 建议检查源码、Star 数、最近更新时间和 Issue 中是否有安全相关讨论。
- 发现 MCP Server 有安全问题怎么办?
- 立即从配置中移除该 Server 并重启Clients。如果涉及 API Key,立即轮换相关凭据。向 Server 仓库提交安全 Issue。