Skip to main content
Glama
usage-guide.md9.28 kB
# MCP Swagger Server - 使用文档 > 🚀 将任何 OpenAPI/Swagger 规范转换为 MCP (Model Context Protocol) 工具,让 AI 助手轻松调用 REST API ## 📦 安装 ### 全局安装 (推荐) ```bash npm install -g mcp-swagger-server ``` ### 本地项目安装 ```bash npm install mcp-swagger-server ``` --- ## 🚀 快速开始 ### 命令行使用 #### 1. 基础命令 ```bash # 查看帮助信息 mcp-swagger-server --help mcp-swagger --help # 简短别名 # 从 GitHub API 启动 HTTP 服务器 mcp-swagger-server --transport http --port 3322 --openapi https://api.github.com/openapi.json # 从本地文件启动,并监控文件变化 mcp-swagger-server --transport streamable --openapi ./my-api.json --watch # STDIO 模式 (最适合 AI 客户端集成) mcp-swagger-server --transport stdio --openapi https://petstore.swagger.io/v2/swagger.json ``` #### 2. 完整命令选项 ```bash 选项: -t, --transport <type> 传输协议 (stdio|http|sse|streamable) [默认: stdio] -p, --port <port> 服务器端口 [默认: 3322] -e, --endpoint <url> 自定义端点 URL -o, --openapi <source> OpenAPI 规范源 (URL 或文件路径) -w, --watch 监控 OpenAPI 文件变化并自动重载 -m, --managed 托管模式 (进程管理) --auto-restart 自动重启 --max-retries <num> 最大重试次数 [默认: 5] --retry-delay <ms> 重试延迟 (毫秒) [默认: 5000] -h, --help 显示帮助信息 ``` #### 3. 使用示例 ```bash # 🌐 HTTP 服务器模式 - 适合 Web 应用集成 mcp-swagger-server --transport http --port 3322 --openapi https://api.github.com/openapi.json # 📡 SSE (Server-Sent Events) 模式 - 适合实时 Web 应用 mcp-swagger-server --transport sse --port 3323 --openapi ./openapi.yaml # 🔄 Streamable 模式 - 适合流式处理 mcp-swagger-server --transport streamable --port 3324 --openapi https://petstore.swagger.io/v2/swagger.json # 💻 STDIO 模式 - 最适合 AI 客户端 (Claude Desktop, VS Code 等) mcp-swagger-server --transport stdio --openapi https://api.example.com/v1/openapi.json # 👁️ 监控模式 - 自动重载配置变化 mcp-swagger-server --transport http --openapi ./api.yaml --watch # 🔧 托管模式 - 自动重启和错误恢复 mcp-swagger-server --transport streamable --openapi https://api.example.com/openapi.json --managed --auto-restart ``` ### 环境变量配置 ```bash # 设置默认配置 export MCP_PORT=3322 export MCP_TRANSPORT=streamable export MCP_OPENAPI_URL=https://api.github.com/openapi.json export MCP_AUTO_RELOAD=true # 然后直接运行 mcp-swagger-server ``` --- ## 🔌 集成使用 ### Claude Desktop 集成 1. **安装服务器**: ```bash npm install -g mcp-swagger-server ``` 2. **配置 Claude Desktop** (`claude_desktop_config.json`): ```json { "mcpServers": { "swagger-api": { "command": "mcp-swagger-server", "args": [ "--transport", "stdio", "--openapi", "https://api.github.com/openapi.json" ] } } } ``` 3. **重启 Claude Desktop** 即可使用 GitHub API 功能 ### VS Code MCP Extension 集成 ```json { "mcp.servers": [ { "name": "My API Server", "command": "mcp-swagger-server", "args": [ "--transport", "stdio", "--openapi", "./my-openapi.yaml" ] } ] } ``` ### 编程式集成 #### Node.js 项目集成 ```javascript const { createMcpServer, runStreamableServer } = require('mcp-swagger-server'); // 从 URL 加载 OpenAPI 规范 async function startMyAPIServer() { const openApiUrl = 'https://api.github.com/openapi.json'; // 创建 MCP 服务器 const server = await createMcpServer(openApiUrl); // 启动 Streamable 服务器 await runStreamableServer(server, { port: 3322, host: 'localhost' }); console.log('🚀 MCP Server running on port 3322'); } startMyAPIServer().catch(console.error); ``` #### TypeScript 项目集成 ```typescript import { createMcpServer, runStdioServer, runStreamableServer, ServerOptions } from 'mcp-swagger-server'; interface MyServerConfig { openApiSource: string; transport: 'stdio' | 'streamable' | 'sse' | 'http'; port?: number; } async function setupMcpServer(config: MyServerConfig) { const server = await createMcpServer(config.openApiSource); const options: ServerOptions = { port: config.port || 3322, host: '0.0.0.0' }; switch (config.transport) { case 'stdio': await runStdioServer(server); break; case 'streamable': await runStreamableServer(server, options); break; default: throw new Error(`Unsupported transport: ${config.transport}`); } } ``` --- ## 🎯 实际使用场景 ### 1. AI 助手 API 集成 **场景**: 让 Claude 或其他 AI 助手调用你的内部 API ```bash # 启动服务连接内部 API mcp-swagger-server --transport stdio --openapi https://internal-api.company.com/openapi.json # AI 助手现在可以: # - 查询用户信息 # - 创建订单 # - 更新数据 # - 执行业务逻辑 ``` ### 2. API 调试和测试 **场景**: 快速测试和验证 OpenAPI 规范 ```bash # 启动调试服务器 mcp-swagger-server --transport http --port 3322 --openapi ./my-api.yaml --watch # 访问 http://localhost:3322 进行交互式测试 # 修改 my-api.yaml 文件会自动重载 ``` ### 3. 微服务集成 **场景**: 将多个微服务的 API 统一为 MCP 接口 ```bash # 服务 A mcp-swagger-server --transport streamable --port 3001 --openapi https://service-a.com/openapi.json # 服务 B mcp-swagger-server --transport streamable --port 3002 --openapi https://service-b.com/openapi.json # 服务 C mcp-swagger-server --transport streamable --port 3003 --openapi https://service-c.com/openapi.json ``` ### 4. 开发环境自动化 **场景**: 开发环境中自动同步 API 变化 ```bash # 监控本地 OpenAPI 文件,自动重载 mcp-swagger-server --transport sse --openapi ./dev-api.yaml --watch --auto-restart # 配合 Git hooks 实现自动更新 # .git/hooks/post-merge #!/bin/bash pkill -f "mcp-swagger-server" mcp-swagger-server --transport streamable --openapi ./openapi.yaml --managed & ``` --- ## 🔧 配置文件支持 ### .mcprc.json 配置文件 在项目根目录创建 `.mcprc.json`: ```json { "transport": "streamable", "port": 3322, "host": "0.0.0.0", "openapi": "./openapi.yaml", "watch": true, "managed": true, "autoRestart": true, "maxRetries": 5, "retryDelay": 5000 } ``` 然后直接运行: ```bash mcp-swagger-server # 自动读取配置文件 ``` --- ## 🚨 故障排除 ### 常见问题 #### 1. 端口占用错误 ```bash # 检查端口占用 netstat -an | grep :3322 # 使用其他端口 mcp-swagger-server --port 3323 ``` #### 2. OpenAPI 规范解析失败 ```bash # 验证 OpenAPI 规范有效性 mcp-swagger-server --openapi ./api.yaml --validate-only # 查看详细错误信息 mcp-swagger-server --openapi ./api.yaml --verbose ``` #### 3. 网络连接问题 ```bash # 测试 URL 连通性 curl -I https://api.github.com/openapi.json # 使用代理 export HTTP_PROXY=http://proxy.company.com:8080 mcp-swagger-server --openapi https://api.github.com/openapi.json ``` ### 日志调试 ```bash # 启用详细日志 export DEBUG=mcp-swagger:* mcp-swagger-server --openapi ./api.yaml # 输出到文件 mcp-swagger-server --openapi ./api.yaml 2>&1 | tee server.log ``` --- ## 📋 最佳实践 ### 1. 生产环境部署 ```bash # 使用 PM2 进程管理 pm2 start "mcp-swagger-server --transport http --openapi https://api.prod.com/openapi.json" --name "mcp-api-server" # Docker 部署 docker run -d \ --name mcp-swagger-server \ -p 3322:3322 \ -e MCP_OPENAPI_URL=https://api.prod.com/openapi.json \ mcp-swagger-server:latest ``` ### 2. 安全考虑 ```bash # 限制访问地址 mcp-swagger-server --transport http --host 127.0.0.1 --openapi ./internal-api.yaml # 使用 HTTPS OpenAPI 源 mcp-swagger-server --openapi https://secure-api.company.com/openapi.json # 环境变量存储敏感信息 export OPENAPI_URL=https://api.company.com/openapi.json?token=SECRET mcp-swagger-server --openapi $OPENAPI_URL ``` ### 3. 性能优化 ```bash # 启用缓存 export MCP_CACHE_TTL=3600 # 缓存 1 小时 mcp-swagger-server --openapi https://api.github.com/openapi.json # 使用本地文件避免网络延迟 mcp-swagger-server --openapi ./cached-openapi.json ``` --- ## 🔗 相关链接 - **GitHub Repository**: https://github.com/yourusername/mcp-swagger-server - **NPM Package**: https://www.npmjs.com/package/mcp-swagger-server - **Model Context Protocol**: https://modelcontextprotocol.io/ - **OpenAPI Specification**: https://swagger.io/specification/ - **Issue Tracker**: https://github.com/yourusername/mcp-swagger-server/issues --- ## 🤝 贡献指南 欢迎贡献代码、报告问题或提出改进建议! ```bash # 克隆项目 git clone https://github.com/yourusername/mcp-swagger-server.git # 安装依赖 pnpm install # 开发模式 pnpm run dev # 提交 Pull Request ``` --- ## 📄 许可证 MIT License - 详见 [LICENSE](../LICENSE) 文件

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zaizaizhao/mcp-swagger-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server