Swagger MCP Server

by tuskermanshu
Verified
# Swagger MCP 服务器开发路线图 ## 项目概述 开发一个MCP服务器,能够根据用户提供的Swagger/OpenAPI地址,解析API定义,并自动生成对应的接口代码和TypeScript类型约束。 ## 开发路线 ### 第一阶段:基础设施搭建 - [x] 1.1 创建项目结构和配置文件 - [x] 1.2 实现请求适配器接口及Axios实现 - [x] 1.3 实现Swagger解析器,能够解析API定义 - [x] 1.4 创建MCP服务器基础实现 - [x] 1.5 配置环境(包括测试和调试环境) ### 第二阶段:代码生成器开发 - [x] 2.1 设计代码生成器接口 - [x] 2.2 实现TypeScript类型定义生成器 - [x] 2.2.1 分析Swagger模式定义 - [x] 2.2.2 转换为TypeScript接口/类型 - [x] 2.2.3 生成类型文件 - [x] 2.3 实现API接口代码生成器 - [x] 2.3.1 设计API接口模板 - [x] 2.3.2 根据API操作生成接口函数 - [x] 2.3.3 生成完整的API客户端代码 ### 第三阶段:MCP工具实现 - [x] 3.1 实现解析Swagger文档的MCP工具 - [x] 3.1.1 实现基本解析功能 - [x] 3.1.2 处理不同版本的OpenAPI规范 - [x] 3.1.3 添加参数过滤(按标签、路径等) - [x] 3.1.4 优化返回结果格式 - [x] 3.2 实现生成TypeScript类型的MCP工具 - [x] 3.2.1 集成类型生成器 - [x] 3.2.2 添加类型生成选项 - [x] 3.2.3 支持不同的模式解析策略 - [x] 3.3 实现生成API接口代码的MCP工具 - [x] 3.3.1 集成API客户端生成器 - [x] 3.3.2 支持多种框架(Axios、Fetch、React Query) - [x] 3.3.3 添加代码生成选项 - [x] 3.4 实现文件读写的MCP工具集成 ### 第四阶段:性能优化与大型文档处理 - [x] 4.1 实现高效的缓存机制 - [x] 4.1.1 添加内存缓存层 - [x] 4.1.2 实现文件系统缓存 - [x] 4.1.3 添加缓存版本控制和TTL机制 - [x] 4.2 实现异步和并行处理 - [x] 4.2.1 使用Worker线程进行文档解析 - [x] 4.2.2 实现解析任务队列 - [x] 4.2.3 添加取消和超时机制 - [x] 4.3 优化大型文档解析 - [x] 4.3.1 实现懒加载解析策略 - [x] 4.3.2 增量解析与部分结果返回 - [x] 4.3.3 添加进度反馈机制 - [x] 4.4 提高解析稳定性 - [x] 4.4.1 增强错误处理和容错能力 - [x] 4.4.2 添加自动重试和降级策略 - [x] 4.4.3 改进非标准API文档支持 ### 第五阶段:高级功能与框架支持 - [ ] 5.1 添加模板自定义功能 - [ ] 5.1.1 设计模板系统 - [ ] 5.1.2 支持自定义模板引入 - [ ] 5.1.3 添加模板编辑工具 - [ ] 5.2 扩展框架支持 - [ ] 5.2.1 添加SWR支持 - [ ] 5.2.2 添加TanStack Query (React Query) 支持 - [ ] 5.2.3 添加Vue与Angular客户端支持 - [ ] 5.3 实现多语言支持 - [ ] 5.3.1 Python客户端生成 - [ ] 5.3.2 Java客户端生成 - [ ] 5.3.3 Go客户端生成 - [ ] 5.4 添加批量生成和项目集成 - [ ] 5.4.1 批量处理多个API端点 - [ ] 5.4.2 集成到现有项目结构 - [ ] 5.4.3 添加代码风格适配 ### 第六阶段:测试、文档和部署 - [ ] 6.1 编写单元测试和集成测试 - [ ] 6.1.1 解析器测试 - [ ] 6.1.2 生成器测试 - [ ] 6.1.3 性能测试 - [ ] 6.2 编写用户文档和API文档 - [ ] 6.2.1 使用指南 - [ ] 6.2.2 API参考 - [ ] 6.2.3 示例和最佳实践 - [ ] 6.3 准备容器化部署配置 - [ ] 6.3.1 创建Docker配置 - [ ] 6.3.2 设置Kubernetes部署 - [ ] 6.3.3 配置云服务部署 - [ ] 6.4 设置CI/CD流程 - [ ] 6.4.1 自动构建 - [ ] 6.4.2 自动测试 - [ ] 6.4.3 自动部署 - [ ] 6.5 发布和维护 - [ ] 6.5.1 版本控制 - [ ] 6.5.2 更新机制 - [ ] 6.5.3 用户反馈处理 ## 当前进度 目前已完成第一阶段和第二阶段,部分实现了第三阶段和第四阶段: 1. 基础设施搭建 - 创建了项目结构和配置文件 - 实现了请求适配器接口及Axios实现 - 实现了Swagger解析器,能够解析API定义 - 创建了MCP服务器基础实现 - 配置了测试和调试环境 2. 代码生成器开发 - 设计了代码生成器接口 - 实现了TypeScript类型定义生成器,能够分析Swagger模式并生成对应的TypeScript类型 - 实现了API接口代码生成器,能够生成基于不同框架(如Axios、Fetch、React Query)的API客户端代码 - 集成了fs mcp工具实现文件读写功能 3. MCP工具实现(完成) - 实现了文件读写的MCP工具集成(3.4) - 实现了解析Swagger文档的MCP工具(3.1) - 实现了TypeScript类型生成MCP工具(3.2) - 标准版和优化版两种工具 - 支持缓存和懒加载等性能优化选项 - 支持过滤和自定义类型生成 - 实现了API客户端生成MCP工具(3.3) - 标准版和优化版两种工具 - 支持多种框架(Axios、Fetch、React Query) - 提供性能优化选项如缓存和懒加载 - 添加进度反馈机制 - 新增了优化版解析工具,支持各种高级选项 4. 性能优化与大型文档处理(已完成) - 实现了内存和文件系统缓存机制(4.1) - 添加了懒加载解析策略,支持大型文档(4.3) - 实现了进度反馈机制(4.3.3) - 提高了解析稳定性和容错能力(4.4) - 添加了轻量级解析模式,专为大型文档优化 ## 当前问题 1. **大型Swagger文档解析性能问题** - 解析大型文档时会导致服务卡顿 - 缺少缓存机制,每次请求都重新解析 - 解析过程是同步的,阻塞主线程 - 缺少分步解析和进度反馈 2. **MCP工具实现不完整** - 解析Swagger工具需要完善 - 类型生成和API客户端生成工具尚未实现 3. **错误处理和稳定性问题** - 解析非标准API文档时容错性不足 - 错误处理机制简单 ## 下一步计划 1. 优先实现第四阶段的性能优化,特别是缓存机制和异步处理 2. 改进Swagger解析工具,增加对大型文档的处理能力 3. 完成剩余MCP工具的实现 4. 提高整体稳定性和错误处理