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