Swagger MCP Server

Swagger MCP Server

一个服务器,它可以通过模型上下文协议(MCP)与任何具有 Swagger/OpenAPI 规范的 API 进行交互,自动从 API 端点生成工具,并支持多种身份验证方法。

Category
访问服务器

README

Swagger MCP 服务器

一个通过模型上下文协议 (MCP) 摄取和提供 Swagger/OpenAPI 规范的服务器。

特性

  • 加载 Swagger/OpenAPI 规范
  • 支持多种身份验证方法:
    • Basic Auth (基本认证)
    • Bearer Token (Bearer 令牌)
    • API Key (API 密钥) (header 或 query)
    • OAuth2
  • 从 API 端点自动生成 MCP 工具
  • Server-Sent Events (SSE) (服务器发送事件) 支持实时通信
  • TypeScript 支持

安全

这是一个个人服务器!!不要将其暴露在公共互联网上。 如果底层 API 需要身份验证,则不应将 MCP 服务器暴露在公共互联网上。

TODO

  • secrets (密钥) - MCP 服务器应该能够使用来自用户的密钥来验证对 API 的请求
  • Comprehensive test suite (全面的测试套件)

前提条件

  • Node.js (v18 或更高版本)
  • Yarn 包管理器
  • TypeScript

安装

  1. 克隆存储库:
git clone https://github.com/dcolley/swagger-mcp.git
cd swagger-mcp
  1. 安装依赖项:
yarn install
  1. 基于示例创建一个 .env 文件:
cp .env.example .env
  1. 配置您的 Swagger/OpenAPI 规范:

    • 将您的 Swagger 文件放置在项目中(例如,swagger.json
    • 或者提供指向您的 Swagger 规范的 URL
  2. 使用您的服务器设置更新 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 规范中的设置,而不是配置文件中的设置:

  • 如果 Swagger 文件包含 servers 数组,则第一个服务器 URL 将用作基本 URL
  • 如果 Swagger 文件定义了安全方案,它们将用于身份验证
  • 当 Swagger 文件中未指定时,配置文件设置用作回退

用法

  1. 启动开发服务器:
yarn dev
  1. 构建用于生产环境:
yarn build
  1. 启动生产服务器:
yarn start

API 端点

  • GET /health - 检查服务器健康状态
  • GET /sse - 建立服务器发送事件连接
  • POST /messages - 向 MCP 服务器发送消息

测试

运行测试套件:

# 运行测试一次
yarn test

# 在监视模式下运行测试
yarn test:watch

# 运行测试并生成覆盖率报告
yarn test:coverage

身份验证

服务器支持各种身份验证方法。在 config.json 文件中配置它们,作为 Swagger 文件中未指定时的回退:

Basic Auth (基本认证)

{
  "defaultAuth": {
    "type": "basic",
    "username": "your-username",
    "password": "your-password"
  }
}

Bearer Token (Bearer 令牌)

{
  "defaultAuth": {
    "type": "bearer",
    "token": "your-bearer-token"
  }
}

API Key (API 密钥)

{
  "defaultAuth": {
    "type": "apiKey",
    "apiKey": "your-api-key",
    "apiKeyName": "X-API-Key",
    "apiKeyIn": "header"
  }
}

OAuth2

{
  "defaultAuth": {
    "type": "oauth2",
    "token": "your-oauth-token"
  }
}

开发

  1. 启动开发服务器:
yarn dev

<!-- 2. 对代码进行更改

  1. 运行测试以确保一切正常:
yarn test
  1. 构建项目:
yarn build
``` -->

<!-- ## 贡献

1. Fork 存储库
2. 创建您的功能分支 (`git checkout -b feature/amazing-feature`)
3. 提交您的更改 (`git commit -m 'Add some amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 打开一个 Pull Request -->

## 许可证

此项目已获得 Apache 2.0 许可证的许可。

## 环境变量

- `PORT`: 服务器端口(默认:3000)
- `API_USERNAME`: API 身份验证的用户名(回退)
- `API_PASSWORD`: API 身份验证的密码(回退)
- `API_TOKEN`: API 身份验证的 API 令牌(回退)
- `DEFAULT_API_BASE_URL`: API 端点的默认基本 URL(回退)
- `DEFAULT_SWAGGER_URL`: 默认 Swagger 规范 URL

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选