一、理解 MCP 的边界
MCP Server 向客户端暴露工具、资源或提示模板。模型可以提出调用建议,但客户端和 Server 仍然负责认证、授权、参数校验和实际执行。
二、先列出能力清单
Server: project-tools
Tools: read_file, list_files
Resources: project://docs
Network: disabled by default
Write access: requires confirmation能力清单应与真实配置一致。不要因为某个 Server 名称看起来可信,就默认授予全部文件或网络权限。
三、限制工具和资源
- 使用允许的根目录和资源 URI 白名单。
- 限制返回大小、执行时间和并发调用数。
- 写入、删除、发送消息和部署动作需要额外确认。
- Server 使用独立身份和最小权限凭据。
四、处理错误与断开
客户端应区分未知工具、参数错误、超时、权限拒绝和 Server 不可用。错误响应应稳定且不泄露令牌、内部路径或完整堆栈。
五、验证集成
- 检查握手和能力列表。
- 用合法参数执行一个只读工具。
- 分别测试缺失参数、越权资源、超时和未知工具。
- 确认日志包含调用 ID,但不包含敏感值。
- 测试 Server 重启或断开后的恢复行为。
MCP 客户端、Server 配置和协议能力会持续演进。本文是通用安全集成方法,具体配置应以目标实现的当前文档为准。