# MCP Client Vue 开发指南 ## 📋 目录 - [当前状态](#当前状态) - [快速开始](#快速开始) - [功能详解](#功能详解) - [配置指南](#配置指南) - [常见问题](#常见问题) - [故障排除](#故障排除) ## 🎉 当前状态 基于v1.0.0的重要稳定性和功能改进,主要完成了以下工作: ### ✨ 主要改进 1. **完善的服务器管理** 🖥️ - 编辑功能完全可用 - 表单数据正确填充 - 模态框显示正常 2. **可靠的连接功能** 🔗 - HTTP和SSE双协议支持 - 自动URL转换 - 智能连接测试 3. **自动重连机制** 🔄 - 页面刷新自动恢复连接 - 并行重连多个服务器 - 错误容错处理 4. **改进的用户体验** 🎨 - 美观的界面设计 - 实时状态显示 - 详细的错误提示 ## 🚀 快速开始 ### 1. 启动开发服务器 ```bash # 进入web目录 cd mcp-client-vue/web # 启动开发服务器(默认端口5173) npm run dev # 或指定端口 npx vite --port 5174 ``` ### 2. 访问应用 打开浏览器访问:`http://localhost:5173` ### 3. 添加MCP服务器 #### 添加HTTP服务器 1. 点击"添加服务器"按钮 2. 填写配置信息: ``` 名称: XHS HTTP Server 类型: http URL: http://localhost:3100 描述: XHS登录服务器(HTTP模式) ``` 3. 点击"保存" 4. 点击"连接"按钮 #### 添加SSE服务器 1. 点击"添加服务器"按钮 2. 填写配置信息: ``` 名称: XHS SSE Server 类型: sse URL: http://localhost:3200/sse 描述: XHS登录服务器(SSE模式) ``` 3. 点击"保存" 4. 点击"连接"按钮 ## 📖 功能详解 ### 服务器管理 #### 添加服务器 支持两种传输协议: **HTTP模式** - 使用标准的HTTP请求/响应 - 端点:`/mcp` - 适合短连接、无状态场景 **SSE模式** - 使用Server-Sent Events长连接 - 端点:`/sse` - 适合需要服务器推送的场景 #### 编辑服务器 1. 点击服务器卡片上的"编辑"按钮 2. 在弹出的详情页面中修改配置 3. 配置工具、提示、资源的启用状态 4. 点击"保存"保存更改 #### 连接测试 点击服务器卡片上的"测试"图标: - **HTTP服务器**:发送MCP初始化请求 - **SSE服务器**:建立EventSource连接测试 #### 删除服务器 1. 如果服务器已连接,先点击"断开" 2. 点击"删除"按钮 3. 确认删除操作 ### 自动重连功能 **工作原理:** 1. 页面加载时,从localStorage读取服务器配置 2. 识别之前已连接的服务器 3. 自动并行重连所有服务器 4. 显示连接结果 **日志输出:** ``` 🚀 MCPSettings 组件已挂载,开始自动重连... 🔄 开始自动重连... 📝 从存储加载的服务器: 2 个 🔍 发现之前已连接的服务器: ["xhs-http", "xhs-sse"] 📡 开始重连服务器: xhs-http 📡 开始重连服务器: xhs-sse ✅ 服务器重连成功: xhs-http ✅ 服务器重连成功: xhs-sse ✅ 自动重连完成,成功: 2, 失败: 0 ``` ### 连接状态管理 **状态类型:** - 🔴 **未连接** (disconnected) - 🟡 **连接中** (connecting) - 🟢 **已连接** (connected) - ❌ **连接失败** (error) **状态持久化:** - 连接状态保存在localStorage - 页面刷新后自动恢复 - 断开连接会清除状态 ## ⚙️ 配置指南 ### URL配置规则 #### HTTP服务器 **支持的格式:** ``` ✅ http://localhost:3100 ✅ http://localhost:3100/mcp ✅ http://0.0.0.0:3100 ✅ http://127.0.0.1:3100 ``` **自动处理:** - 自动添加`/mcp`路径(如果没有) - 自动转换`0.0.0.0` → `localhost` - 自动转换`127.0.0.1` → `localhost` **最终请求URL:** ``` 输入: http://localhost:3100 实际: http://localhost:3100/mcp 输入: http://0.0.0.0:3100 实际: http://localhost:3100/mcp ``` #### SSE服务器 **支持的格式:** ``` ✅ http://localhost:3200/sse ✅ http://0.0.0.0:3200/sse ✅ http://127.0.0.1:3200/sse ``` **注意事项:** - ⚠️ 必须包含`/sse`路径 - ⚠️ 不会自动添加路径 - ✅ 会自动转换地址 **最终请求URL:** ``` 输入: http://localhost:3200/sse 实际: http://localhost:3200/sse 输入: http://0.0.0.0:3200/sse 实际: http://localhost:3200/sse ``` ### 环境变量配置 在服务器配置中,可以添加环境变量: ```json { "env": { "API_KEY": "your-api-key", "DEBUG": "true", "TIMEOUT": "30000" } } ``` ## ❓ 常见问题 ### Q1: 为什么编辑按钮点击没反应? **A:** 这个问题已在v1.3.5中修复。如果仍然遇到问题: 1. 清除浏览器缓存 2. 刷新页面 3. 检查浏览器控制台是否有错误 ### Q2: 为什么模态框显示空白? **A:** 这个问题已在v1.3.5中修复。组件高度已改为`min-height: 500px`。 ### Q3: 为什么表单字段不显示数据? **A:** 这个问题已在v1.3.5中修复。watch监听器现在使用`deep: true`选项。 ### Q4: 为什么页面刷新后服务器显示未连接? **A:** v1.3.5新增了自动重连功能,页面加载时会自动恢复连接状态。 ### Q5: HTTP服务器连接失败,提示406错误? **A:** 这个问题已在v1.3.5中修复。所有HTTP请求现在包含正确的Accept头: ``` Accept: application/json, text/event-stream ``` ### Q6: SSE服务器连接失败,提示404错误? **A:** 检查URL是否包含`/sse`路径: ``` ❌ 错误: http://localhost:3200 ❌ 错误: http://localhost:3200/mcp ✅ 正确: http://localhost:3200/sse ``` ### Q7: 为什么使用0.0.0.0地址连接失败? **A:** 浏览器无法直接访问`0.0.0.0`地址。v1.3.5会自动转换: ``` 0.0.0.0 → localhost 127.0.0.1 → localhost ``` ## 🔧 故障排除 ### 连接问题 #### 症状:连接测试失败 **检查清单:** 1. ✅ MCP服务器是否正在运行? ```bash # 检查HTTP服务器(端口3100) lsof -ti:3100 # 检查SSE服务器(端口3200) lsof -ti:3200 ``` 2. ✅ URL配置是否正确? - HTTP: 包含`/mcp`路径或让系统自动添加 - SSE: 必须包含`/sse`路径 3. ✅ 是否有CORS问题? - 打开浏览器开发者工具 - 查看Network标签 - 检查是否有CORS错误 4. ✅ 服务器日志有错误吗? - 查看MCP服务器的控制台输出 - 检查是否有404、406等错误 #### 症状:自动重连失败 **检查清单:** 1. ✅ 打开浏览器控制台,查看日志 2. ✅ 检查localStorage中是否有服务器配置 ```javascript // 在控制台执行 console.log(localStorage.getItem('mcp_servers')) ``` 3. ✅ 确认服务器之前的连接状态是"connected" ### UI问题 #### 症状:编辑按钮无响应 **解决方案:** 1. 清除浏览器缓存 2. 刷新页面(Ctrl/Cmd + Shift + R) 3. 检查控制台是否有JavaScript错误 #### 症状:模态框空白 **解决方案:** 1. 确保已更新到v1.3.5 2. 检查组件样式是否正确加载 3. 查看控制台是否有CSS错误 ### 构建问题 #### 症状:TypeScript编译错误 **解决方案:** 使用跳过类型检查的构建命令: ```bash npm run build:skip-check ``` 或者正常构建(会有警告但不影响功能): ```bash npm run build ``` ## 📊 调试技巧 ### 查看详细日志 所有关键操作都有emoji日志: - 🔍 调试信息 - ✅ 成功操作 - ❌ 错误信息 - 🔄 转换/处理 - 📡 网络请求 ### 检查网络请求 1. 打开开发者工具(F12) 2. 切换到Network标签 3. 筛选XHR/Fetch请求 4. 查看请求头、响应内容 ### 检查存储状态 ```javascript // 查看服务器配置 console.log(localStorage.getItem('mcp_servers')) // 查看连接状态 console.log(localStorage.getItem('mcp_connections')) ``` ## 🎯 最佳实践 1. **服务器命名**:使用有意义的名称,便于识别 2. **URL格式**:使用localhost而不是0.0.0.0 3. **定期测试**:使用连接测试功能验证服务器状态 4. **查看日志**:遇到问题先查看浏览器控制台 5. **保存配置**:修改后记得点击保存按钮 ## 📞 获取帮助 如果遇到问题: 1. 查看本文档的[常见问题](#常见问题)章节 2. 查看浏览器控制台的错误信息 3. 查看MCP服务器的日志输出 4. 查阅项目其他文档: - `CHANGELOG.md` - 版本更新记录 - `README.md` - 项目总览 - `debug-ui.md` - UI调试指南 --- **祝您使用愉快!** 🚀