你是否曾经希望AI能够直接根据Swagger/OpenAPI规范自动生成API调用工具,无需手动编写代码?今天要介绍的开源项目Swagger-MCP工具生成器,正是为了实现这个目标而设计的。它通过MCP协议,与任何具有Swagger/OpenAPI规范的API进行交互,自动从API端点生成工具。
项目基本信息
| 信息项 | 详情 |
|---|---|
| 项目名称 | Swagger-MCP工具生成器 |
| GitHub地址 | https://github.com/dcolley/swagger-mcp |
| 项目描述 | 通过模型上下文协议(MCP),与任何具有Swagger/OpenAPI规范的API进行交互的服务器,可自动从API端点生成工具,并支持多种身份验证方法。 |
| 作者 | dcolley |
| 开源协议 | Apache 2.0 |
| 开源状态 | 公开状态 |
| Languages | TypeScript |
| 支持平台 | Windows / macOS / Linux |
| 最后更新 | 2026-04-23 |
一、项目介绍
Swagger-MCP工具生成器是一个让AI能够根据Swagger/OpenAPI规范自动生成API调用工具的MCP服务器。它加载Swagger规范,自动从API端点生成MCP工具,支持多种认证方法。
这个服务器的核心功能包括:
- 加载Swagger/OpenAPI规范
- 自动从API端点生成MCP工具
- 支持多种认证方法(基本认证、Bearer Token、API密钥、OAuth2)
- 支持SSE实时通信
二、核心优势
自动工具生成
根据Swagger规范自动生成MCP工具,无需手动编写。
多种认证支持
支持基本认证、Bearer Token、API密钥、OAuth2。
灵活配置
支持本地Swagger文件或远程URL。
SSE支持
支持服务器发送事件,实现实时通信。
TypeScript支持
完整的TypeScript类型定义。
三、适用场景
API快速集成
根据Swagger规范快速生成API调用工具,集成到AI工作流中。
API自动化测试
AI可以自动调用API端点进行测试。
文档驱动开发
API文档直接转换为可调用的工具。
多API聚合
将多个API的Swagger规范加载到同一个MCP服务器。
四、安装教程
系统要求
| 工具 | 用途 | 下载/安装方式 |
|---|---|---|
| Node.js | 运行环境 | [https://nodejs.org/] (版本要求:18.0 或以上) |
| Yarn | 包管理器 | npm install -g yarn |
| MCP客户端 | 如Claude Desktop等 | 根据客户端官网下载 |
安装步骤
第一步:克隆项目并安装依赖
git clone https://github.com/dcolley/swagger-mcp.git
cd swagger-mcp
yarn install第二步:配置Swagger规范
复制示例配置:
cp .env.example .env编辑config.json:
{
"server": {
"host": "localhost",
"port": 3000
},
"swagger": {
"url": "https://petstore.swagger.io/v2/swagger.json",
"apiBaseUrl": "https://petstore.swagger.io/v2"
}
}第三步:配置认证(可选)
基本认证:
{
"defaultAuth": {
"type": "basic",
"username": "user",
"password": "pass"
}
}Bearer Token:
{
"defaultAuth": {
"type": "bearer",
"token": "your-token"
}
}API密钥:
{
"defaultAuth": {
"type": "apiKey",
"apiKey": "your-api-key",
"apiKeyName": "X-API-Key",
"apiKeyIn": "header"
}
}第四步:启动服务器
# 开发模式
yarn dev
# 生产模式
yarn build
yarn start第五步:配置Claude Desktop
找到配置文件,添加:
{
"mcpServers": {
"swagger-mcp": {
"url": "http://localhost:3000/sse"
}
}
}五、使用示例
示例1:加载Swagger规范
服务器启动后会自动加载配置的Swagger规范,并从所有API端点生成MCP工具。
示例2:调用生成的工具
假设Swagger规范中有一个GET /pet/{petId}端点,AI会自动获得一个GET_pet_petId工具。
用户指令:“获取ID为1的宠物信息”
AI会调用对应的工具,传入petId=1。
示例3:健康检查
curl http://localhost:3000/health示例4:环境变量配置
# 设置端口
export PORT=8080
# 设置认证信息
export API_USERNAME=user
export API_PASSWORD=pass
export API_TOKEN=token示例5:使用本地Swagger文件
{
"swagger": {
"url": "./path/to/swagger.json"
}
}六、安全注意事项
重要警告:这是一个个人服务器,不要将其暴露在公共互联网上。如果底层API需要认证,不应该将MCP服务器暴露在公共互联网上。
七、常见问题
问题1:Swagger规范加载失败
解决方案:检查URL是否正确,文件格式是否有效。
问题2:认证失败
解决方案:确认认证配置正确,Swagger规范中的安全方案匹配。
问题3:API基础URL错误
解决方案:在config.json中设置apiBaseUrl作为后备。
问题4:工具未生成
解决方案:检查Swagger规范中的端点定义是否完整。
问题5:SSE连接断开
解决方案:检查网络连接,增加超时设置。
八、总结
Swagger-MCP工具生成器是一个让AI能够根据Swagger规范自动生成API调用工具的MCP服务器,支持多种认证方法。
这个项目的最大价值在于:
- 自动工具生成:无需手动编写MCP工具
- 多种认证支持:基本认证、Bearer、API密钥、OAuth2
- 灵活配置:支持本地文件或远程URL
- SSE支持:实时通信
- Apache 2.0许可证:可自由使用和修改
如果你需要快速将API集成到AI工作流中,Swagger-MCP工具生成器是一个非常实用的工具。
安全警告:不要暴露在公网。
环境变量可以覆盖配置。
健康检查端点很实用。
和手动写工具相比,这个效率高。
希望未来能支持更多API规范。