使用说明
Swagger MCP服务器
通过模型上下文协议(MCP)接收并提供Swagger/OpenAPI规范的服务器。
特性
- 加载Swagger/OOpenAPI规范
- 支持多种身份验证方法:
- 基本认证
- 承载令牌
- API密钥(头或查询)
- OAuth2
- 从API端点自动生成MCP工具
- 服务器发送事件(SSE)支持实时通信
- TypeScript支持
安全
这是个人服务器!!不要把它暴露在公共互联网上。 如果底层API需要身份验证,则不应将MCP服务器暴露于公共互联网。
全部
- 机密-MCP服务器应该能够使用来自用户的机密来验证对API的请求
- 全面的测试套件
先决条件
- Node.js(v18或更高版本)
- 纱线包装经理
- 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-建立服务器发送事件连接POST /messages-向MCP服务器发送消息
测试
运行测试套件:
# Run tests once
yarn test
# Run tests in watch mode
yarn test:watch
# Run tests with coverage report
yarn test:coverage
认证
服务器支持各种身份验证方法。在中配置它们 config.json 如果未在Swagger文件中指定,则将文件作为回退:
基本认证
{
"defaultAuth": {
"type": "basic",
"username": "your-username",
"password": "your-password"
}
}
承载令牌
{
"defaultAuth": {
"type": "bearer",
"token": "your-bearer-token"
}
}
API密钥
{
"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许可证获得许可。
环境变量
PORT:服务器端口(默认值:3000)API_USERNAME:API身份验证的用户名(回退)API_PASSWORD:API身份验证的密码(回退)API_TOKEN:用于身份验证的API令牌(回退)DEFAULT_API_BASE_URL:API终结点的默认基本URL(回退)DEFAULT_SWAGGER_URL:默认Swagger规范URL