返回目录 / MCP 服务端
为MCP工具建立稳定错误契约
区分可重试、输入拒绝和内部故障,并保证错误不泄露服务端秘密。
目标
让MCP客户端能据错误类型采取安全且可预期的下一步。
步骤
- 列出工具可能遇到的参数错误、权限拒绝、依赖不可用和未知异常。 [mcp-errors] [mcp-tools]
- 对模型可纠正的查询失败抛
ToolError;对client必须处理的协议拒绝抛MCPError(code, message, data)。 [mcp-errors] [mcp-tools] - 不要return错误字符串;异常工具错误需检查
CallToolResult.is_error,未知崩溃细节留在服务端日志。 [mcp-errors] [mcp-tools] - 服务端记录受控诊断ID,将完整内部异常留在受保护日志中。 [mcp-errors] [mcp-tools]
- 注入各类故障并验证客户端响应、重试行为及日志脱敏。 [mcp-errors] [mcp-tools]
验证方式
每类错误都有可预测响应;堆栈、令牌和连接信息不会出现在客户端响应或普通日志。
故障处理
若错误泄露内部细节,收紧异常映射,并将受保护服务端日志与客户端错误分离。
权限边界
前置条件
- Python 3.10+、固定提交兼容的Model Context Protocol Python SDK
权限边界
- 只在本地或隔离测试环境操作;涉及外部数据或副作用时使用最小权限并先审批
限制
SDK行为可能随版本变化;固定来源仅说明其提交中的实现,不代表其他Agent或客户端完全兼容。生产环境需独立审阅数据保留、授权和副作用。
固定上游来源
- 仓库
- modelcontextprotocol/python-sdk
- 文件路径
- docs/servers/handling-errors.md
- 固定提交
754254c08fe1c3eda18b69da3d336106fe8d72d6- 来源检查
- 2026-10-14 · 已按固定上游来源核对
仓库指标
以下数字属于上游仓库整体,不代表单个 Skill 或指南的点赞/热度。
- Stars
- 未取得
- Forks
- 未取得
- 观测时间
- 未取得
尚未取得指标快照。
许可证: MIT