mcp-swagger-server/docs/quick-start-guide.md

5.8 KiB
Raw Blame History

MCP Swagger Server - 快速入门指南

项目概述

本项目是一个基于 monorepo 架构的 OpenAPI/Swagger 到 MCP (Model Context Protocol) 转换工具集,包含解析器、服务器和前端界面三个主要组件。

项目结构

mcp-swagger-server/
├── packages/
│   ├── mcp-swagger-parser/    # 核心解析器包
│   ├── mcp-swagger-server/    # MCP 服务器
│   └── mcp-swagger-ui/        # Vue.js 前端界面
├── scripts/
│   ├── build.js              # 统一构建脚本
│   ├── dev.js                # 开发环境脚本
│   ├── clean.js              # 清理脚本
│   └── diagnostic.js         # 诊断脚本
├── docs/                     # 技术文档
└── README.md

环境要求

  • Node.js: >=18.0.0
  • pnpm: 最新版本(推荐使用 pnpm 作为包管理器)
  • 操作系统: macOS, Linux, Windows

安装指南

1. 安装 pnpm

选择以下任一方式安装 pnpm

方式一:使用 HomebrewmacOS 推荐)

brew install pnpm

方式二:使用 npm

# 配置 npm 全局目录(避免权限问题)
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc
source ~/.zshrc

# 安装 pnpm
npm install -g pnpm

方式三:使用 CorepackNode.js 16.10+

corepack enable
corepack prepare pnpm@latest --activate

2. 克隆并安装项目

# 克隆项目
git clone <repository-url>
cd mcp-swagger-server

# 安装依赖(会自动构建依赖包)
pnpm install

开发指南

快速启动开发环境

# 启动完整开发环境
pnpm run dev

这个命令会:

  1. 构建所有依赖包
  2. 启动依赖包的 watch 模式
  3. 启动前端开发服务器

仅启动前端开发

# 仅启动 UI 开发服务器
pnpm run dev:ui

构建项目

# 构建所有包
pnpm run build

# 仅构建依赖包(不包括前端)
pnpm run build:packages

清理项目

# 清理所有构建产物和 node_modules
pnpm run clean

# 仅清理构建产物
pnpm run clean:build

项目诊断

# 运行项目健康检查
pnpm run diagnostic

包管理说明

依赖关系图

mcp-swagger-ui
    ↓ depends on
mcp-swagger-parser
    ↓ depends on
External packages (axios, swagger-parser, etc.)

为什么需要预先构建

  1. TypeScript 编译链: 源码在 src/,但包入口指向编译后的 dist/
  2. 模块解析机制: Vite 等构建工具需要找到实际的入口文件
  3. 类型检查: TypeScript 需要 .d.ts 类型定义文件

自动化构建的优势

  • 依赖拓扑排序: 自动按正确顺序构建包
  • 并行优化: 无依赖关系的包可并行构建
  • 增量构建: 只构建变更的包及其依赖者
  • 错误处理: 构建失败时提供详细诊断信息

开发最佳实践

1. 开发新功能

# 1. 确保环境干净
pnpm run clean:build

# 2. 安装最新依赖
pnpm install

# 3. 启动开发环境
pnpm run dev

2. 添加新包

  1. packages/ 目录下创建新包
  2. 添加 package.json 文件
  3. 如果有构建需求,确保包含 build 脚本
  4. 运行 pnpm run diagnostic 验证配置

3. 处理依赖问题

# 1. 运行诊断
pnpm run diagnostic

# 2. 检查特定包的构建状态
cd packages/mcp-swagger-parser
pnpm run build

# 3. 清理并重新构建
pnpm run clean
pnpm install

4. 性能优化

  • 使用 pnpm run build:packages 跳过前端构建
  • 利用 watch 模式进行增量编译
  • 定期清理构建缓存

故障排除

常见问题

1. 权限错误

Error: EACCES: permission denied

解决方案: 使用 Homebrew 安装 pnpm 或配置 npm 全局目录

2. 依赖解析失败

Failed to resolve entry for package "mcp-swagger-parser"

解决方案:

pnpm run build:packages

3. 类型检查错误

Cannot find module 'mcp-swagger-parser'

解决方案: 确保包已构建并生成类型定义文件

4. 开发服务器启动失败

解决方案:

# 重置环境
pnpm run clean
pnpm install
pnpm run dev

调试技巧

  1. 使用诊断脚本:

    pnpm run diagnostic
    
  2. 检查构建日志:

    pnpm run build --verbose
    
  3. 逐包调试:

    cd packages/specific-package
    pnpm run build
    

部署指南

生产构建

# 清理环境
pnpm run clean

# 安装生产依赖
pnpm install --frozen-lockfile

# 构建所有包
pnpm run build

Docker 部署

FROM node:18-alpine

# 安装 pnpm
RUN npm install -g pnpm

WORKDIR /app

# 复制依赖文件
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
COPY packages/*/package.json ./packages/*/

# 安装依赖
RUN pnpm install --frozen-lockfile

# 复制源码
COPY . .

# 构建项目
RUN pnpm run build

EXPOSE 3000

CMD ["pnpm", "start"]

脚本说明

build.js

  • 智能包发现和依赖分析
  • 拓扑排序确保正确构建顺序
  • 支持选择性构建(--non-ui

dev.js

  • 自动构建依赖包
  • 启动 watch 模式
  • 启动开发服务器

clean.js

  • 清理构建产物
  • 支持选择性清理(--build-only

diagnostic.js

  • 项目结构检查
  • 依赖完整性验证
  • 构建产物验证
  • 脚本可用性检查

贡献指南

  1. Fork 项目
  2. 创建功能分支: git checkout -b feature/amazing-feature
  3. 提交更改: git commit -m 'Add amazing feature'
  4. 推送分支: git push origin feature/amazing-feature
  5. 创建 Pull Request

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。


本指南持续更新,如有问题请提交 Issue。