一个通过模型上下文协议(MCP)加载并提供 Swagger/OpenAPI 规范的服务器。
这是一个个人服务器!不要将其暴露在公共互联网上。 如果底层 API 需要认证,则不应将 MCP 服务器暴露在公共互联网上。
git clone https://github.com/dcolley/swagger-mcp.git
cd swagger-mcp
yarn install
.env 文件:cp .env.example .env
配置您的 Swagger/OpenAPI 规范:
swagger.json)更新 config.json 中的服务器设置:
{
"server": {
"host": "localhost",
"port": 3000
},
"swagger": {
"url": "url-or-path/to/your/swagger.json",
"apiBaseUrl": "https://api.example.com", // 如果未在 Swagger 中指定则作为回退
"defaultAuth": { // 如果未在 Swagger 中指定则作为回退
"type": "apiKey",
"apiKey": "your-api-key",
"apiKeyName": "api_key",
"apiKeyIn": "header"
}
}
}
注意:服务器优先使用 Swagger 规范中的设置而非配置文件中的设置:
servers 数组,则第一个服务器 URL 将用作基础 URLyarn dev
yarn build
yarn start
GET /health - 检查服务器健康状态GET /sse - 建立服务器发送事件连接POST /messages - 向 MCP 服务器发送消息运行测试套件:
# 运行一次测试
yarn test
# 在监视模式下运行测试
yarn test:watch
# 运行带有覆盖率报告的测试
yarn test:coverage
服务器支持多种认证方法。在 config.json 文件中配置它们作为回退,当 Swagger 文件中未指定时使用:
{
"defaultAuth": {
"type": "basic",
"username": "your-username",
"password": "your-password"
}
}
{
"defaultAuth": {
"type": "bearer",
"token": "your-bearer-token"
}
}
{
"defaultAuth": {
"type": "apiKey",
"apiKey": "your-api-key",
"apiKeyName": "X-API-Key",
"apiKeyIn": "header"
}
}
{
"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