mcp-swagger-server/docs/improvement-plan.md

5.2 KiB

MCP Swagger Server CLI 工具发布改进计划

🎯 总体评估

当前状态: 可以发布,但需要关键配置调整

mcp-swagger-server 项目已经具备了完整的 CLI 功能实现,包括:

  • 完善的命令行参数解析
  • 多种传输协议支持 (stdio, http, sse, streamable)
  • 文件监控和自动重载
  • 进程管理和自动重启
  • 环境变量配置支持

但要作为 NPM CLI 工具发布,还需要完成以下关键配置。


🔧 必需改进 (发布前必须完成)

1. 添加 bin 字段配置

问题: 缺少 NPM CLI 工具的核心配置

解决方案: 在 packages/mcp-swagger-server/package.json 中添加:

{
  "bin": {
    "mcp-swagger-server": "./dist/cli.js",
    "mcp-swagger": "./dist/cli.js"
  }
}

2. 确保 CLI 文件可执行

问题: 编译后的 CLI 文件需要 shebang 和执行权限

解决方案:

  • 确保 src/cli.ts 顶部有 #!/usr/bin/env node
  • 构建后验证 dist/cli.js 的 shebang 完整性

3. 调整 package.json 发布配置

当前配置:

{
  "main": "dist/index.js",
  "scripts": {
    "start": "node dist/index.js"
  }
}

建议改进:

{
  "main": "dist/index.js",
  "types": "dist/types/index.d.ts",
  "bin": {
    "mcp-swagger-server": "./dist/cli.js",
    "mcp-swagger": "./dist/cli.js"
  },
  "files": [
    "dist/**/*",
    "!dist/**/*.map",
    "README.md"
  ],
  "engines": {
    "node": ">=16.0.0"
  },
  "publishConfig": {
    "access": "public"
  }
}

4. 创建 README.md

问题: 缺少包级别的 README 文档

解决方案: 在 packages/mcp-swagger-server/ 创建 README.md


🚀 发布准备步骤

步骤 1: 配置调整

# 1. 修改 package.json 添加 bin 字段
# 2. 确保 TypeScript 编译正确
# 3. 验证 dist 目录结构

步骤 2: 构建验证

# 清理重建
cd packages/mcp-swagger-server
pnpm run build

# 检查编译产物
ls -la dist/
cat dist/cli.js | head -1  # 应该显示 #!/usr/bin/env node

步骤 3: 本地测试

# 打包测试
npm pack

# 临时安装测试
npm install -g ./mcp-swagger-server-1.0.0.tgz

# 测试命令
mcp-swagger-server --help
mcp-swagger --help

# 功能测试
mcp-swagger-server --transport stdio --openapi https://petstore.swagger.io/v2/swagger.json

步骤 4: 发布

# 登录 NPM
npm login

# 发布
npm publish

# 验证发布
npm info mcp-swagger-server

📈 发布后使用流程

全局安装使用

# 用户安装
npm install -g mcp-swagger-server

# 直接使用
mcp-swagger-server --transport streamable --port 3322 --openapi https://api.github.com/openapi.json

# 查看帮助
mcp-swagger-server --help

项目依赖使用

# 项目中安装
npm install mcp-swagger-server

# 编程式使用
const { createMcpServer } = require('mcp-swagger-server');

🔄 后续改进计划

短期改进 (v1.1.0)

  1. 配置文件支持

    # 支持 .mcprc.json 配置文件
    mcp-swagger-server  # 自动读取配置
    
  2. 增强的错误处理

    • 更友好的错误提示
    • 详细的调试信息
    • 自动问题诊断
  3. 性能优化

    • OpenAPI 规范缓存
    • 增量解析更新
    • 内存使用优化

中期改进 (v1.2.0)

  1. 插件系统

    # 支持自定义转换插件
    mcp-swagger-server --plugin ./my-transformer.js
    
  2. 多实例管理

    # 管理多个 API 实例
    mcp-swagger-server --config ./multi-api.json
    
  3. 监控和日志

    • 集成 Prometheus 指标
    • 结构化日志输出
    • 健康检查端点

长期改进 (v2.0.0)

  1. Web 管理界面

    • 可视化配置管理
    • 实时监控面板
    • API 测试工具
  2. 企业级功能

    • 身份认证支持
    • 访问控制列表
    • 审计日志
  3. 生态系统集成

    • Docker 官方镜像
    • Kubernetes Helm Chart
    • CI/CD 集成插件

🎯 发布建议

版本策略

  • v1.0.0: 基础 CLI 功能 (当前)
  • v1.1.0: 配置文件支持 + 错误处理改进
  • v1.2.0: 插件系统 + 监控功能
  • v2.0.0: Web 界面 + 企业级功能

发布渠道

  1. NPM 公共仓库 (主要)
  2. GitHub Releases (附加)
  3. Docker Hub (未来)

文档维护

  • 保持 README.md 更新
  • 维护 CHANGELOG.md
  • 提供详细的 API 文档
  • 创建使用示例和教程

📊 成功指标

发布成功标准

  • NPM 包成功发布
  • 全局命令 mcp-swagger-server 可用
  • 基本功能测试通过
  • 文档完整可用

用户采用指标

  • NPM 下载量
  • GitHub Stars 数量
  • 社区反馈和 Issues
  • 功能请求和贡献

🎉 结论

mcp-swagger-server 已经具备了发布到 NPM 的所有核心功能,只需要添加 bin 字段配置就可以作为 CLI 工具使用。

推荐立即发布,理由:

  1. 功能完整 - 支持多种传输协议
  2. 代码质量高 - TypeScript + 完整类型定义
  3. 架构清晰 - 良好的模块化设计
  4. 易于使用 - 丰富的命令行选项
  5. 文档齐全 - 完整的使用指南

这个工具将极大地简化 OpenAPI 到 MCP 的转换过程,为 AI 生态系统提供重要的基础设施支持。