本指南适用于 macOS。其他平台的指南即将推出。
调试工具概览
MCP 提供了多种不同级别的调试工具-
MCP 检查器
- 交互式调试界面
- 直接服务器测试
- 详情请参阅 Inspector 指南
-
Claude Desktop 开发者工具
- 集成测试
- 日志收集
- Chrome 开发者工具集成
-
服务器日志
- 自定义日志实现
- 错误追踪
- 性能监控
在 Claude Desktop 中调试
检查服务器状态
Claude.app 界面提供基础的服务器状态信息-
点击
图标查看
- 已连接的服务器
- 可用的提示词和资源
-
点击“搜索与工具”
图标查看
- 提供给模型的工具
查看日志
检查 Claude Desktop 生成的详细 MCP 日志- 服务器连接事件
- 配置问题
- 运行时错误
- 消息交换
使用 Chrome 开发者工具
在 Claude Desktop 内访问 Chrome 开发者工具以排查客户端错误- 创建一个
developer_settings.json文件,并将allowDevTools设置为 true
- 打开开发者工具:
Command-Option-Shift-i
- 主内容窗口
- 应用标题栏窗口
- 消息负载
- 连接耗时
常见问题
工作目录
在 Claude Desktop 中使用 MCP 服务器时- 通过
claude_desktop_config.json启动的服务器,其工作目录可能是未定义的(例如 macOS 上的/),因为 Claude Desktop 可能从任何位置启动 - 请始终在配置文件和
.env文件中使用绝对路径,以确保操作的可靠性 - 如果是直接通过命令行测试服务器,工作目录将是你运行命令的当前位置
claude_desktop_config.json 中使用:
./data 这样的相对路径
环境变量
MCP 服务器只会自动继承部分环境变量,如USER、HOME 和 PATH。 若要覆盖默认变量或提供自定义变量,可以在 claude_desktop_config.json 中指定 env 键:服务器初始化
常见初始化问题-
路径问题
- 服务器可执行文件路径错误
- 缺少必要文件
- 权限问题
- 尝试为
command使用绝对路径
-
配置错误
- 无效的 JSON 语法
- 缺少必填字段
- 类型不匹配
-
环境问题
- 缺少环境变量
- 变量值不正确
- 权限限制
连接问题
当服务器连接失败时- 检查 Claude Desktop 日志
- 验证服务器进程是否正在运行
- 使用 Inspector 进行独立测试
- 验证协议兼容性
实现日志记录
服务端日志
在构建使用本地 stdio 传输层 的服务器时,所有记录到 stderr(标准错误)的消息都将被宿主应用程序(如 Claude Desktop)自动捕获。 对于所有 传输层,你还可以通过发送日志消息通知向客户端提供日志- 初始化步骤
- 资源访问
- 工具执行
- 错误条件
- 性能指标
客户端日志
在客户端应用程序中- 启用调试日志
- 监控网络流量
- 追踪消息交换
- 记录错误状态
调试工作流
开发周期
-
初期开发
- 使用 Inspector 进行基础测试
- 实现核心功能
- 添加日志埋点
-
集成测试
- 在 Claude Desktop 中测试
- 监控日志
- 检查错误处理
测试变更
为了高效测试变更- 配置变更:重启 Claude Desktop
- 服务器代码变更:使用 Command-R 重新加载
- 快速迭代:开发期间使用 Inspector
最佳实践
日志策略
-
结构化日志
- 使用一致的格式
- 包含上下文信息
- 添加时间戳
- 追踪请求 ID
-
错误处理
- 记录堆栈追踪
- 包含错误上下文
- 追踪错误模式
- 监控恢复情况
-
性能追踪
- 记录操作耗时
- 监控资源使用情况
- 追踪消息大小
- 测量延迟
安全考虑
进行调试时-
敏感数据
- 脱敏日志内容
- 保护凭据信息
- 掩盖个人信息
-
访问控制
- 验证权限
- 检查身份验证
- 监控访问模式
获取帮助
遇到问题时-
第一步
- 检查服务器日志
- 使用 Inspector 测试
- 检查配置
- 验证环境
-
支持渠道
- GitHub issues
- GitHub discussions
-
提供信息
- 日志片段
- 配置文件
- 复现步骤
- 环境详情