# 更新日志 (CHANGELOG) 本文档记录 MCP Client Vue 的所有重要更改。 ## [v1.0.2+] - 2025-10-15 ### 🎯 重大架构升级:Cherry Studio 风格实现 本版本完整实现 Cherry Studio 架构风格的 MCP 工具调用,提供智能化的工具参数生成和执行。 #### ✨ 核心特性 **1. 工具名称前缀机制** - ✅ `serverName__toolName` 格式避免多服务器工具名冲突 - ✅ 自动转换:`public_content` → `xiaohongshu__public_content` - ✅ 执行时自动解析:提取真实工具名传递给 MCP 服务器 - 📝 实现位置:`chatService.convertToolsToOpenAIFormat()` **2. System Prompt 自动生成** - ✅ 详细的工具描述列表(名称、描述、参数说明) - ✅ 参数标注(必填/可选、类型、描述) - ✅ 5 条使用指南(任务分析、内容创作、参数生成、工具调用、结果反馈) - ✅ 4 条注意事项(内容质量、标签、分类、错误处理) - ✅ 当前 MCP 服务器名称标识 - 📝 实现位置:`chatService.createSystemPromptWithTools()` **3. 智能参数自动注入** - ✅ AI 理解用户意图自动创作内容 - ✅ 自动生成所有必需参数(标题、正文、标签、分类等) - ✅ 符合平台特色的内容风格 - 📝 示例:用户说"发布酸菜鱼教程",AI自动生成完整文章 **4. 完整对话流程** ``` 用户输入 → 获取工具 → 添加前缀 → 生成System Prompt → AI理解+创作 → 调用工具 → 解析名称 → 执行MCP → 返回结果 → AI生成友好回复 ``` #### 🔧 代码改进 **chatService.ts** - ✅ Line 16: 使用 `mcpClientService` 单例(修复关键bug) - ✅ Line 591-603: MCP 服务器名称提取和工具收集 - ✅ Line 610-620: System Prompt 自动注入到消息列表 - ✅ Line 801-843: `createSystemPromptWithTools()` 新方法 - ✅ Line 845-857: `convertToolsToOpenAIFormat()` 添加前缀 - ✅ Line 907-920: `executeToolCalls()` 解析工具名称 **modelServiceManager.ts** - ✅ Line 408-446: `sendChatRequestStream()` 支持 tools 和 toolCalls - ✅ Line 615-633: 详细的模型选择验证日志 - ✅ Line 736-765: SSE 解析增强,累积 tool_calls **MCPClientService.ts** - ✅ Line 460: `getServerInfo()` 获取服务器名称 - ✅ Line 500: 单例导出确保全局唯一实例 #### 📖 文档更新 - ✅ `docs/mcp-tool-calling-example.md` - 完整示例文档(9步流程详解) - ✅ `docs/CHERRY_STUDIO_IMPLEMENTATION.md` - 架构实现总结 #### 🎯 使用示例 **简单场景** ``` 用户: 帮我发布小红书文章,内容是:如何制作一道酸菜鱼 AI: 1. 自动创作完整文章(标题、正文、标签、分类) 2. 调用 xiaohongshu__public_content 工具 3. 返回: "✅ 文章已成功发布!\n\n📝 标题:...\n🔗 链接:..." ``` **多工具场景** ``` 用户: 把这篇文章同时发到小红书和微博 AI: 1. 为小红书创作合适格式 → xiaohongshu__public_content 2. 为微博创作合适格式 → weibo__post_status 3. 返回两个平台的发布结果 ``` #### 🏆 对比 Cherry Studio | 特性 | mcp-client-vue | Cherry Studio | |------|---------------|---------------| | 工具名称前缀 | ✅ `serverName__toolName` | ✅ | | System Prompt | ✅ 自动生成,详细指南 | ✅ | | 参数自动生成 | ✅ AI 完全自动 | ✅ | | 多轮对话 | ✅ 完整支持 | ✅ | | 流式响应 | ✅ SSE 真流式 | ✅ | **实现完成度**: 100% ✅ **架构对齐**: 完全一致 ✅ --- ## [v1.0.2] - 2025-10-14 ### 🎯 重大功能:MCP 工具调用集成 本版本实现了完整的 MCP 工具调用功能,AI 可以智能调用 MCP 服务器提供的工具并整合结果。 #### ✨ 新增功能 **智能工具调用** - ✅ AI 自动识别何时需要调用工具 - ✅ 支持 OpenAI Function Calling 协议 - ✅ 兼容多个 AI 服务商(OpenAI、火山引擎、阿里云等) - ✅ 完整的多轮对话支持(AI → Tool → AI) - ✅ 实时显示工具调用进度和状态 **流式工具执行** - ✅ 流式体验不中断 - ✅ 友好的状态提示(🔧 调用中、✅ 完成、❌ 失败、🤖 生成回复) - ✅ 工具格式自动转换(MCP → OpenAI Function 格式) #### 🛠️ 技术实现 **服务层增强** - ✅ `MCPClientService.getTools()` - 获取工具列表 - ✅ `chatService.convertToolsToOpenAIFormat()` - 格式转换 - ✅ `chatService.executeToolCalls()` - 工具执行逻辑 - ✅ `modelServiceManager.sendChatRequestStream()` - 工具参数支持 **流式解析改进** - ✅ SSE 流中检测和收集 `tool_calls` - ✅ 正确拼接多个流片段的工具调用数据 - ✅ 支持完整的 OpenAI 工具调用消息格式 #### 🐛 Bug 修复 - ✅ 修复 MCPClientService 类型导入问题 - ✅ 修复 types.ts 和 types/index.ts 路径冲突 - ✅ 修复 modelServiceManager 返回类型 - ✅ 修复未使用变量警告 #### 📦 使用方式 1. 在"模型服务"中添加支持函数调用的 AI 服务 2. 在"MCP 设置"中添加并连接工具服务器 3. 在对话界面选择模型和 MCP 服务器 4. 发送消息,AI 会自动调用相关工具并整合结果 --- ## [v1.0.1] - 2025-10-14 ### 🎉 主要改进(基于v1.0.0的深度优化) ### 🎉 新增功能 #### 服务器管理 - ✅ 完善的服务器配置表单(名称、URL、类型、描述、环境变量) - ✅ 服务器详情编辑功能(支持工具、提示、资源配置) - ✅ 连接测试功能(支持HTTP和SSE两种传输类型) - ✅ 自动重连功能(页面刷新后自动恢复连接状态) - ✅ 实时连接状态显示 #### 传输协议支持 - ✅ HTTP传输模式(使用 `/mcp` 端点) - ✅ SSE传输模式(使用 `/sse` 端点) - ✅ 自动URL转换(`0.0.0.0` 和 `127.0.0.1` → `localhost`) #### UI/UX改进 - ✅ 编辑按钮正常工作,打开服务器详情模态框 - ✅ 服务器详情页面正确显示(修复空白页问题) - ✅ 表单数据正确填充(深度监听对象变化) - ✅ 模态框样式优化(90vw宽度,最大1200px,最大高度90vh) ### 🐛 Bug修复 #### 连接问题 - ✅ 修复HTTP服务器406错误(缺少Accept头) - ✅ 修复SSE服务器404错误(POST请求错误路径) - ✅ 修复页面刷新后服务器显示未连接的问题 - ✅ 修复浏览器无法访问0.0.0.0地址的问题 #### UI问题 - ✅ 修复编辑按钮点击无响应 - ✅ 修复模态框显示空白页面(组件高度100%问题) - ✅ 修复表单字段不填充数据(watch监听器问题) #### 构建问题 - ✅ 升级vue-tsc(1.8.25 → 2.0.6) - ✅ 升级TypeScript(5.2.2 → 5.3.3) - ✅ 添加`build:skip-check`脚本用于开发构建 ### 🔧 技术改进 #### MCPClientService.ts - ✅ HTTP客户端自动添加`/mcp`路径 - ✅ 所有HTTP请求包含正确的Accept头(`application/json, text/event-stream`) - ✅ URL标准化处理(移除末尾斜杠、转换地址) - ✅ 改进的错误处理和日志输出 #### MCPSettings.vue - ✅ 根据服务器类型使用不同的测试方法 - SSE:GET请求测试连接 - HTTP:POST请求测试MCP初始化 - ✅ 添加自动重连功能(onMounted钩子) - ✅ 改进的模态框结构(使用n-card包装) #### MCPServerDetail.vue - ✅ 组件高度改为`min-height: 500px` - ✅ watch监听器添加`deep: true`选项 - ✅ 改进的updateFormData函数(详细日志、错误处理) - ✅ 表单数据验证和初始化 #### newServer.ts (Pinia Store) - ✅ 实现autoReconnect功能 - 读取localStorage中原始连接状态 - 并行重连所有之前已连接的服务器 - Promise.allSettled容错处理 - ✅ loadServers改进(正确处理连接状态) ### 📝 代码优化 #### 日志改进 - 🔍 添加emoji前缀日志(🔄、🔍、✅、❌、📡) - 📊 详细的步骤日志(6步打开详情、4步更新表单) - 🐛 错误追踪和调试信息 #### 类型安全 - ✨ 改进的TypeScript类型定义 - ✨ 更好的类型推断和检查 ### 📚 文档更新 #### 新增文档 - 📄 `CHANGELOG.md` - 版本更新日志(本文件) - 📄 `VERSION_1.3.5_GUIDE.md` - 版本1.3.5使用指南 - 📄 `FIX_REPORT.md` - 修复报告 - 📄 `AUTO_RECONNECT_GUIDE.md` - 自动重连功能文档 #### 已有文档 - 📄 `debug-ui.md` - UI调试指南 - 📄 `TYPESCRIPT_FIXES.md` - TypeScript错误修复 - 📄 `MODAL_FIX_GUIDE.md` - 模态框修复指南 - 📄 `BLANK_PAGE_FIX.md` - 空白页问题修复 ### 🎯 配置要求 #### HTTP服务器配置 ``` 类型: http URL示例: - http://localhost:3100 - http://localhost:3100/mcp 说明: 代码会自动添加/mcp路径 ``` #### SSE服务器配置 ``` 类型: sse URL示例: - http://localhost:3200/sse 说明: 必须包含/sse路径 ``` ### ⚙️ 开发环境 - Node.js: 22.19.0 - Vue: 3.4.15 - Vite: 7.1.9 (开发) / 5.4.20 (构建) - TypeScript: 5.3.3 - vue-tsc: 2.0.6 - Naive UI: 2.43.1 ### 🔄 迁移指南 从旧版本升级到1.3.5: 1. **更新依赖** ```bash cd web npm install ``` 2. **检查服务器配置** - HTTP服务器:确保URL格式正确 - SSE服务器:URL必须包含`/sse`路径 3. **清除浏览器缓存** - 清除localStorage - 刷新页面 4. **重新配置服务器** - 如果遇到连接问题,删除旧配置重新添加 ### 🐛 已知问题 - TypeScript类型错误(47个错误,不影响功能) - App.vue: 15个错误 - ServerCard.vue: 3个错误 - ToolForm.vue: 23个错误 - MCPClientService.ts: 4个错误 - 计划在下个版本修复 ### 🙏 致谢 感谢所有测试和反馈的用户! --- ## [1.0.0] - 2025-10-12 ### 初始版本 - 基础MCP客户端功能 - Vue 3 + TypeScript + Naive UI - HTTP和SSE传输支持 - 基本的服务器管理功能