|
| 1 | +# 开发说明 |
| 2 | + |
| 3 | +## 项目架构 |
| 4 | + |
| 5 | +### 模块划分 |
| 6 | + |
| 7 | +``` |
| 8 | +mcp-inspector |
| 9 | +├── main.rs - 应用入口,CLI 参数解析 |
| 10 | +├── mcp/ - MCP 客户端模块 |
| 11 | +│ ├── client.rs - 核心客户端实现 |
| 12 | +│ └── ... - 各功能模块 |
| 13 | +├── logging/ - 日志系统 |
| 14 | +│ ├── collector.rs - 日志收集 |
| 15 | +│ ├── formatter.rs - 日志格式化 |
| 16 | +│ └── storage.rs - 日志存储 |
| 17 | +└── ui/ - 用户界面 |
| 18 | + ├── app.rs - TUI 主应用 |
| 19 | + └── components/ - UI 组件 |
| 20 | +``` |
| 21 | + |
| 22 | +### 关键设计决策 |
| 23 | + |
| 24 | +1. **异步架构**: 使用 Tokio 异步运行时,支持高效的 I/O 操作 |
| 25 | +2. **模块化设计**: 清晰的模块划分,便于维护和扩展 |
| 26 | +3. **类型安全**: 充分利用 Rust 的类型系统,减少运行时错误 |
| 27 | +4. **错误处理**: 使用 `anyhow` 和 `Result` 类型,统一错误处理 |
| 28 | + |
| 29 | +## 扩展指南 |
| 30 | + |
| 31 | +### 添加新的 MCP 功能 |
| 32 | + |
| 33 | +1. 在 `src/mcp/client.rs` 中添加新方法 |
| 34 | +2. 在 UI 中添加对应的显示逻辑 |
| 35 | +3. 更新文档 |
| 36 | + |
| 37 | +### 添加新的 UI 组件 |
| 38 | + |
| 39 | +1. 在 `src/ui/components/` 中创建新文件 |
| 40 | +2. 在 `src/ui/app.rs` 中集成组件 |
| 41 | +3. 添加键盘快捷键支持 |
| 42 | + |
| 43 | +### 自定义日志格式 |
| 44 | + |
| 45 | +修改 `src/logging/formatter.rs` 中的 `format` 方法 |
| 46 | + |
| 47 | +## 性能优化建议 |
| 48 | + |
| 49 | +1. **日志缓冲**: 当前限制为 1000 条,可根据需要调整 |
| 50 | +2. **UI 刷新率**: 当前为 100ms,可根据性能需求调整 |
| 51 | +3. **发布构建**: 使用 `--release` 标志获得最佳性能 |
| 52 | + |
| 53 | +## 调试技巧 |
| 54 | + |
| 55 | +### 启用详细日志 |
| 56 | + |
| 57 | +```bash |
| 58 | +RUST_LOG=trace ./target/debug/mcp-inspector --server ... |
| 59 | +``` |
| 60 | + |
| 61 | +### 使用 Rust 调试器 |
| 62 | + |
| 63 | +```bash |
| 64 | +rust-gdb ./target/debug/mcp-inspector |
| 65 | +``` |
| 66 | + |
| 67 | +## 常见问题 |
| 68 | + |
| 69 | +### Q: 如何支持新的传输协议? |
| 70 | + |
| 71 | +A: 在 `src/mcp/client.rs` 中的 `McpClient::new_from_command` 方法中添加新的传输类型支持。 |
| 72 | + |
| 73 | +### Q: 如何添加新的标签页? |
| 74 | + |
| 75 | +A: |
| 76 | +1. 在 `Tab` 枚举中添加新变体 |
| 77 | +2. 更新 `titles()` 和转换方法 |
| 78 | +3. 在 `render()` 方法中添加渲染逻辑 |
| 79 | + |
| 80 | +### Q: 如何自定义 UI 主题? |
| 81 | + |
| 82 | +A: 修改 `src/ui/app.rs` 中的 `Style` 定义,使用不同的颜色和样式。 |
| 83 | + |
| 84 | +## 贡献指南 |
| 85 | + |
| 86 | +1. Fork 项目 |
| 87 | +2. 创建特性分支 (`git checkout -b feature/amazing-feature`) |
| 88 | +3. 提交更改 (`git commit -m 'Add amazing feature'`) |
| 89 | +4. 推送到分支 (`git push origin feature/amazing-feature`) |
| 90 | +5. 创建 Pull Request |
| 91 | + |
| 92 | +## 代码风格 |
| 93 | + |
| 94 | +- 使用 `cargo fmt` 格式化代码 |
| 95 | +- 使用 `cargo clippy` 检查代码质量 |
| 96 | +- 遵循 Rust 官方风格指南 |
0 commit comments