将提供商注册与客户端访问分离
托管账户和使用您 MCP 端点的人员属于不同层级。最低限度的托管注册并不足以支撑一个可公开写入的工具服务器。请定义哪些客户端身份可以调用哪些工具。
签发范围狭窄的凭据
优先使用可独立撤销、用途受限的凭据。请私密存储、定期轮换,并防止其出现在 URL 或日志中。在允许影响客户资源或资金的操作之前,请考虑先采用只读工具集。
让结果可见
跟踪操作标识符和状态。验证工具架构、处理取消,并确保重试不会静默重复具有后果的操作。为需要审批的操作提供清晰的审批路径。
只发布已存在的内容
连接客户端前,请检查支持的协议版本、端点、身份验证和限制。目前不提供托管的 KoalaVPS MCP 端点和官方可下载软件包。
最小化的账户仍可拥有强大的访问控制
身份最小化可与限定范围的 API 凭据及经过身份验证的 HTTPS 端点兼容。请将账户恢复与客户端授权区分开。电子邮件地址并非建立 API 身份的唯一方式,但所选流程需对密钥丢失和客户端被入侵有明确应对。
上线验收测试
验证 TLS、协议协商、模式验证、受限作用域和取消。尝试重复的创建请求并确认其解析为单一操作。拒绝针对凭据边界之外资源的请求。检查错误和日志不包含令牌或私有工具输入。
官方文档:MCP 授权
为每一层构建独立的身份映射
将提供商账户、支付钱包、MCP 客户端身份、工具服务凭据和下游 API 账户记录为不同的主体。给它们一个共享的管理密钥会使撤销和归因更加困难。最小化提供商注册并不能隐藏公共端点的 IP 地址、DNS 名称或外部 API 使用情况。选择在每个边界最小化哪些数据,并说明哪些记录仍然必要。
- 为每个客户端提供狭窄且可撤销的访问路径,并指明其允许访问的资源。
- 当 MCP 服务调用另一个 API 时使用单独的凭据;客户端的 MCP 访问令牌不是通用的下游令牌。
- 将生产工作进程和实验性工作进程分开,尤其是在工具可以动用资金或发送消息的情况下。
- 仅在存在后发布受支持的版本和经过验证的端点。KoalaVPS 目前不运营公开托管的 MCP 服务。
官方文档:MCP:安全最佳实践
设计密钥丢失和访问吊销演练
创建一个一次性客户端凭据,调用一个允许的读取操作,撤销该凭据并重复调用。验证任何缓存的权限或应用租约是否遵守撤销策略。用一个客户端从未拥有的资源重复测试。保留结果记录,但不保留完整提示或工具参数。如果未授权调用成功,请停止授予写入工具,直到服务器端资源检查得到修正。
- 不要将协议会话或请求标识符作为用户身份的证明。
- 对于 HTTP OAuth,请针对你实际部署的版本测试文档所述的 401/403 行为和发现机制。
- 拒绝未知的工具参数,并限制结果大小、请求时长和并发数。
- 在模拟网络中断后测试一次重试,并验证一项关键操作,而非两项。