本次提交主要集成了 MCP 服务器,为系统增加了用户提示词优化工具,并通过优化部署流程,提升了整体易用性。
具体变更内容包括:
* **功能增强:**
* 集成 MCP 服务器,提供用户和系统提示词优化工具,支持 stdio 和 HTTP 两种传输方式,并集成了 Claude Desktop。
* 实现基于会话的 HTTP 传输,允许多客户端连接,并为每个会话创建独立的 MCP 服务器实例,确保会话间的隔离性。
* **部署优化:**
* 将 MCP 服务器端口变更为与 Web 界面共享 80 端口,通过路径区分,简化了 Docker 部署配置,降低了部署复杂度。
* 优化 Docker 部署流程,使用 Supervisor 进行进程管理,并改进模板参数(使用枚举类型 + 默认值),同时提供了包含 MCP 服务器使用说明的 Docker 部署文档。
* **代码优化与重构:**
* 优化模型选择逻辑,提高模型选择的准确性。
* 优化日志记录功能,支持更灵活的日志级别设置,并添加了详细的错误提示和调试信息,方便问题排查。
* 重构代码,分离构建和启动入口,优化环境变量加载和模型初始化逻辑,提高了代码的可维护性和可扩展性,并解决了构建副作用问题。
* **文档更新:**
* 更新工具描述和使用说明,提供了用户和系统提示词工具的具体示例,并补充了迭代提示词工具的改进需求描述和使用场景。
* 更新 Docker 部署方案,包含了 `docker-compose.yml`、`Dockerfile` 和 `env.local.example` 配置示例,并更新了 README 文档以明确连接方式。
* 更新 `nginx.conf`,使用环境变量 `NGINX_PORT`,修改 `start-services.sh`,增加 nginx 配置处理,更新 `supervisord.conf`,调整 MCP 服务器启动方式,优化 `Dockerfile`,安装额外依赖并调整工作目录,调整环境变量加载机制,使用 `preload-env.cjs`。
* **其他:**
* 提供快速开始指南、环境变量配置和问题排除等文档,更新了相关文档链接和获取帮助指引,并完成了基础测试用例和开发/设计文档。
本次更新旨在提升用户在提示词优化方面的能力,并简化部署流程,提高系统的整体可用性和可维护性。
1.6 KiB
1.6 KiB
MCP Server 模块开发
📋 项目概述
- 项目编号: 120
- 项目名称: MCP Server 模块开发
- 时间: 2025-07-18 ~ 2025-07-26
- 状态: ✅ 已完成
🎯 项目目标
- 为 prompt-optimizer 项目新增 MCP (Model Context Protocol) server 模块
- 专注于提供提示词优化工具,使其能够被支持 MCP 的 LLM 应用和客户端直接使用
- 实现零侵入性设计,完全不修改 Core 模块代码
✅ 完成情况
- 核心功能完成情况: ✅ 已完成
- MCP Server 基础架构设计与实现
- 3个核心工具实现 (optimize-user-prompt, optimize-system-prompt, iterate-prompt)
- 双传输方式支持 (stdio 和 HTTP)
- 技术实现完成情况: ✅ 已完成
- Core 服务适配层
- 参数转换适配器
- 错误处理适配器
- 环境变量配置管理
🎉 主要成果
- 架构改进: 实现了零侵入性的 MCP Server 模块,完全复用 Core 模块功能
- 采用分层架构设计,职责清晰
- 使用适配器模式实现协议转换
- 保持与 Core 模块的完全解耦
- 稳定性提升: 解决了环境变量加载时机、构建时后台进程等关键问题
- 环境变量预加载机制
- 构建时副作用控制
- Windows 兼容性优化
- 开发体验优化: 提供了完整的文档和示例,便于其他开发者使用和集成
- 详细的技术实现文档
- 丰富的开发经验总结
- 完整的避坑指南
🚀 后续工作
- 已识别的待办事项:
- 测试与 Claude Desktop 的集成
- 完善错误处理和日志系统
- 编写使用文档和部署指南
- 性能优化和稳定性测试