Swagger服务器MCP
一个模型上下文协议(MCP)服务器,基于Swagger/OpenAPI模式动态公开API。
概述
此MCP服务器自动生成与服务器的swaggAPI交互的工具。它从运行中的服务器获取OpenAPI规范,并动态创建MCP工具,允许像Claude这样的LLM通过自然语言管理租户和用户。
特性
- 动态工具生成:根据OpenAPI/Swagger规范自动创建MCP工具
- 零配置:不需要手动工具定义
- 自动更新:API更改时工具会自动更新
- 类型安全:基于OpenAPI模式的输入验证
- 路径参数处理:自动处理URL路径参数
- 请求身体映射:从模式中智能映射请求体
先决条件
- Node.js(v18或更高版本)
- 正在运行服务器
http://localhost:9000 - 启用OpenAPI/Swagger的服务器
安装
根据您的应用程序(如claude/cline/copilot等)将此代码复制到相应的mcp服务器目录中。
cd swagger-mcp
npm install
npm run build配置
环境变量
API_BASE_URL:服务器的基本URL(默认值:http://localhost:9000)API_SPEC_PATH:OpenAPI规范的路径(默认:/v3/api-docs)
临床整合
服务器在Cline的MCP设置文件中配置:
{
"mcpServers": {
"swagger-mcp": {
"command": "node",
"args": ["\\swagger-mcp\\build\\index.js"],
"env": {
"API_BASE_URL": "http://localhost:9000",
"API_SPEC_PATH": "/v3/api-docs"
},
"disabled": false,
"autoApprove": []
}
}
}Claude桌面集成
添加到 C:\Users\username\AppData\Roaming\Claude\claude_desktop_config.json:
{
"mcpServers": {
"swagger-mcp": {
"command": "node",
"args": ["C:\\Users\\username\\Documents\\Cline\\MCP\\swagger-mcp\\build\\index.js"],
"env": {
"API_BASE_URL": "http://localhost:9000",
"API_SPEC_PATH": "/v3/api-docs"
}
}
}
}可用工具
一旦它能够连接到配置的swagger,它将能够动态创建工具。
使用示例
使用Cline或Claude桌面
运作原理
- 初创公司:服务器连接并从服务器获取OpenAPI规范
- 解析:提取所有匹配的端点
/api/** - 工具生成:为每个端点创建具有适当模式的MCP工具
- 请求处理:将工具调用映射到具有正确参数的HTTP请求
- 响应:向LLM返回格式化的JSON响应
建筑
┌─────────────────┐
│ LLM (Claude) │
└────────┬────────┘
│ Natural Language
↓
┌─────────────────┐
│ MCP Protocol │
└────────┬────────┘
│ Tool Calls
↓
┌─────────────────┐
│ swagger-mcp │ ← Fetches OpenAPI Spec
└────────┬────────┘
│ HTTP Requests
↓
┌─────────────────┐
│ Server │
│ Port 9000 │
└─────────────────┘发展
项目结构
swagger-mcp/
├── src/
│ └── index.ts # Main MCP server implementation
├── build/ # Compiled JavaScript output
├── package.json # Dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # This file建筑
npm run build观察变化
npm run watch故障排除
MCP服务器未连接
- 验证OpenAPI规范是否可访问:
curl http://localhost:9000/v3/api-docs- 检查MCP服务器日志 在克莱恩或克劳德桌面
工具未出现
- 配置更改后重新启动Cline或Claude Desktop
- 启动MCP客户端之前,请确保服务器正在运行
- 检查生成目录是否存在并包含
index.js
API错误
- 403禁止:检查是否
/api/**在服务器安全配置中被排除在身份验证之外 - 404未找到:验证服务器中是否存在API终结点
- 连接被拒绝:确保服务器在配置的端口上运行
API要求
要使此MCP服务器工作,您的服务器必须:
- 在配置的端口上运行(默认值:9000)
- 公开OpenAPI/Swagger文档,网址为
/v3/api-docs - 有
/api/**无需身份验证即可访问端点 - 为本地主机连接包含正确的CORS标头
许可证
麻省理工学院
贡献
创建此MCP服务器是为了简化在自然语言界面中与API的交互。欢迎投稿!
支持
关于以下问题:
- MCP服务器:查看此README和故障排除部分
- MCP协议:参见 模型上下文协议文档
