关于 Swagger MCP Server
Swagger MCP Server 可读取 Swagger/OpenAPI 规范,并通过 MCP 提供服务,自动从 API 端点生成 MCP 工具。README 明确说明它是个人使用的服务,不应暴露到公共互联网。
主要功能
- 01加载 Swagger/OpenAPI 规范文件
- 02支持 Basic、Bearer、API Key 和 OAuth2 认证
- 03从 API 端点自动生成 MCP 工具
- 04通过 SSE 进行实时通信
- 05使用 TypeScript 实现
适用场景
- 01让 MCP 客户端调用已有 REST API
- 02在本地为内部 API 提供 MCP 接口
MCP 相关
该服务将 Swagger/OpenAPI 端点转换为 MCP 工具,并通过 /sse 和 /messages 端点与 MCP 客户端通信。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Swagger MCP Server
通过 Model Context Protocol (MCP) 接收并提供 Swagger/OpenAPI 规范的服务。
功能
- 加载 Swagger/OpenAPI 规范
- 支持多种身份验证方式:
- Basic Auth
- Bearer Token
- API Key(请求头或查询参数)
- OAuth2
- 根据 API 端点自动生成 MCP 工具
- 支持使用 Server-Sent Events (SSE) 实时通信
- 支持 TypeScript
安全
这是一个个人服务!!请勿将其暴露到公共互联网。 如果底层 API 需要身份验证,请勿将 MCP 服务暴露到公共互联网。
待办事项
- 密钥——MCP 服务应能够使用用户提供的密钥向 API 发送身份验证请求
- 完整的测试套件
前提条件
- Node.js(v18 或更高版本)
- Yarn 包管理器
- TypeScript
安装
- 克隆仓库:
git clone https://github.com/dcolley/swagger-mcp.git
cd swagger-mcp
- 安装依赖:
yarn install
- 根据示例创建
.env文件:
cp .env.example .env
-
配置 Swagger/OpenAPI 规范:
- 将 Swagger 文件放入项目中(例如,
swagger.json) - 或提供 Swagger 规范的 URL
- 将 Swagger 文件放入项目中(例如,
-
在
config.json中更新服务配置:
{
"server": {
"host": "localhost",
"port": 3000
},
"swagger": {
"url": "url-or-path/to/your/swagger.json",
"apiBaseUrl": "https://api.example.com", // Fallback if not specified in Swagger
"defaultAuth": { // Fallback if not specified in Swagger
"type": "apiKey",
"apiKey": "your-api-key",
"apiKeyName": "api_key",
"apiKeyIn": "header"
}
}
}
注意:服务优先使用 Swagger 规范中的设置,而不是配置文件中的设置:
- 如果 Swagger 文件包含
servers数组,则使用第一个服务 URL 作为基础 URL - 如果 Swagger 文件定义了安全方案,则使用这些方案进行身份验证
- 如果 Swagger 文件中未指定,则将配置文件中的设置用作备用项
使用方法
- 启动开发服务:
yarn dev
- 构建生产版本:
yarn build
- 启动生产服务:
yarn start
API 端点
GET /health- 检查服务运行状况GET /sse- 建立 Server-Sent Events 连接POST /messages- 向 MCP 服务发送消息
测试
运行测试套件:
# Run tests once
yarn test
# Run tests in watch mode
yarn test:watch
# Run tests with coverage report
yarn test:coverage
身份验证
服务支持多种身份验证方式。如果 Swagger 文件中未指定,请在 config.json 文件中配置这些备用方式:
Basic Auth
{
"defaultAuth": {
"type": "basic",
"username": "your-username",
"password": "your-password"
}
}
Bearer Token
{
"defaultAuth": {
"type": "bearer",
"token": "your-bearer-token"
}
}
API Key
{
"defaultAuth": {
"type": "apiKey",
"apiKey": "your-api-key",
"apiKeyName": "X-API-Key",
"apiKeyIn": "header"
}
}
OAuth2
{
"defaultAuth": {
"type": "oauth2",
"token": "your-oauth-token"
}
}
开发
- 启动开发服务:
yarn dev
许可证
本项目采用 Apache 2.0 License 许可。
环境变量
PORT:服务端口(默认值:3000)API_USERNAME:用于 API 身份验证的用户名(备用)API_PASSWORD:用于 API 身份验证的密码(备用)API_TOKEN:用于身份验证的 API 令牌(备用)DEFAULT_API_BASE_URL:API 端点的默认基础 URL(备用)DEFAULT_SWAGGER_URL:默认 Swagger 规范 URL
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。