调试
在开发 MCP 服务器或将其与应用程序集成时,进行有效的调试至关重要。本指南涵盖了 MCP 生态系统中可用的调试工具和方法。
调试工具概述
MCP 提供了多种不同级别的调试工具:
MCP Inspector
- 交互式调试界面
- 直接服务器测试
- 详情请参阅 Inspector 指南
Claude 桌面开发者工具
- 集成测试
- 日志收集
- Chrome DevTools 集成
服务器日志
- 自定义日志实现
- 错误跟踪
- 性能监控
在 Claude 桌面中调试
检查服务器状态
Claude.app 界面提供基本的服务器状态信息:
点击 <img src="/images/claude-desktop-mcp-plug-icon.svg" style={{display: ‘inline’, margin: 0, height: ‘1.3em’}} /> 图标查看:
- 已连接的服务器
- 可用的提示和资源
点击 <img src="/images/claude-desktop-mcp-hammer-icon.svg" style={{display: ‘inline’, margin: 0, height: ‘1.3em’}} /> 图标查看:
- 模型可用的工具
查看日志
从 Claude 桌面查看详细的 MCP 日志:
# 实时跟踪日志
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
日志捕获:
- 服务器连接事件
- 配置问题
- 运行时错误
- 消息交换
使用 Chrome DevTools
在 Claude 桌面中访问 Chrome 的开发者工具以调查客户端错误:
- 启用 DevTools:
jq '.allowDevTools = true' ~/Library/Application\ Support/Claude/developer_settings.json > tmp.json \
&& mv tmp.json ~/Library/Application\ Support/Claude/developer_settings.json
- 打开 DevTools:
Command-Option-Shift-i
注意:您将看到两个 DevTools 窗口:
- 主内容窗口
- 应用程序标题栏窗口
使用 Console 面板检查客户端错误。
使用 Network 面板检查:
- 消息负载
- 连接时间
常见问题
环境变量
MCP 服务器仅自动继承一部分环境变量,如 USER
、HOME
和 PATH
。
要覆盖默认变量或提供自定义变量,可以在 claude_desktop_config.json
中指定 env
键:
{
"myserver": {
"command": "mcp-server-myapp",
"env": {
"MYAPP_API_KEY": "some_key",
}
}
}
服务器初始化
常见的初始化问题:
路径问题
- 服务器可执行文件路径不正确
- 缺少必需文件
- 权限问题
配置错误
- JSON 语法无效
- 缺少必需字段
- 类型不匹配
环境问题
- 缺少环境变量
- 变量值不正确
- 权限限制
连接问题
当服务器无法连接时:
- 检查 Claude 桌面日志
- 验证服务器进程是否正在运行
- 使用 Inspector 独立测试
- 验证协议兼容性
实现日志记录
服务器端日志
构建使用本地 stdio 传输 的服务器时,所有记录到 stderr(标准错误)的消息将自动被主机应用程序(例如 Claude 桌面)捕获。
对于所有 传输,您还可以通过发送日志消息通知向客户端提供日志记录:
重要事件记录:
- 初始化步骤
- 资源访问
- 工具执行
- 错误条件
- 性能指标
客户端日志
在客户端应用程序中:
- 启用调试日志
- 监控网络流量
- 跟踪消息交换
- 记录错误状态
调试工作流程
开发周期
初始开发
- 使用 Inspector 进行基本测试
- 实现核心功能
- 添加日志记录点
集成测试
- 在 Claude 桌面中测试
- 监控日志
- 检查错误处理
测试更改
高效测试更改:
- 配置更改:重启 Claude 桌面
- 服务器代码更改:使用 Command-R 重新加载
- 快速迭代:在开发过程中使用 Inspector
最佳实践
日志策略
结构化日志
- 使用一致的格式
- 包含上下文
- 添加时间戳
- 跟踪请求 ID
错误处理
- 记录堆栈跟踪
- 包含错误上下文
- 跟踪错误模式
- 监控恢复
性能跟踪
- 记录操作时间
- 监控资源使用
- 跟踪消息大小
- 测量延迟
安全考虑
调试时:
敏感数据
- 清理日志
- 保护凭据
- 屏蔽个人信息
访问控制
- 验证权限
- 检查身份验证
- 监控访问模式
获取帮助
遇到问题时:
第一步
- 检查服务器日志
- 使用 Inspector 测试
- 查看配置
- 验证环境
支持渠道
- GitHub 问题
- GitHub 讨论
提供信息
- 日志摘录
- 配置文件
- 重现步骤
- 环境详情