项目简介

Swagger MCP 服务器是一个基于 Model Context Protocol (MCP) 的后端应用,它能够读取标准的 Swagger 或 OpenAPI 规范文件,将其中定义的API接口自动转换并注册为MCP服务器的可用 工具 (Tools)。这样,集成MCP协议的LLM客户端(如AI助手、代理等)就可以通过调用这些注册的工具来与实际的后端API进行交互,而无需直接理解和处理复杂的API细节。

主要功能点

  • API自动化转换: 自动解析 Swagger/OpenAPI 规范,将每个可调用的API端点转化为一个MCP工具。
  • 工具能力声明: 向MCP客户端暴露转换后的工具及其输入参数定义(基于API参数),方便LLM理解如何使用这些API。
  • 后端API调用: 接收MCP客户端的工具调用请求,负责向实际的后端API发送HTTP请求,处理参数传递、请求头设置(包括认证信息)等细节。
  • 多种认证支持: 支持为调用的后端API配置多种认证方式,包括 Basic Auth、Bearer Token、API Key 和 OAuth2,认证信息可以通过MCP工具调用时由客户端提供,或使用服务器的默认配置。
  • SSE传输协议: 使用 Server-Sent Events (SSE) 作为MCP的通信传输协议,支持服务器向客户端发送实时通知和响应。
  • TypeScript 开发: 项目使用 TypeScript 编写,结构清晰。

安装步骤

  1. 克隆仓库: 打开终端,执行以下命令克隆项目到本地:
    git clone https://github.com/dcolley/swagger-mcp.git
    cd swagger-mcp
  2. 安装依赖: 进入项目目录后,安装所有必要的依赖包:
    yarn install
  3. 配置环境变量: 复制 '.env.example' 文件并重命名为 '.env',根据需要编辑此文件,可以用来设置端口或后端API的默认认证信息等。
    cp .env.example .env
  4. 配置服务器: 复制 'config.json.example' 文件并重命名为 'config.json'(如果不存在)。编辑 'config.json' 文件,指定你的 Swagger/OpenAPI 规范文件的 URL 或本地路径,以及实际后端API的基础URL和可选的默认认证信息。
    cp config.json.example config.json

服务器配置 (供 MCP 客户端使用)

对于一个 MCP 客户端来说,要连接并使用这个 Swagger MCP 服务器,通常需要在客户端的配置中指定服务器的启动方式。配置信息一般包括服务器的名称 (server name)、启动命令 (command) 和启动参数 (args)。

  • 服务器名称 (server name): 服务器启动后会向客户端声明其名称,通常是根据加载的 Swagger/OpenAPI 规范的标题生成(例如:"Swagger API Server" 或特定的API标题)。客户端可以使用这个名称来识别和连接到服务器。
  • 启动命令 (command): 这是在服务器所在的系统上用于启动服务器进程的命令。对于这个项目,标准启动命令是 'yarn'。
  • 启动参数 (args): 这是传递给启动命令的参数。对于这个项目,启动参数是 'start'。完整的命令是 'yarn start'。通常不需要额外的参数来指定配置文件路径,因为它默认会查找 'config.json' 和 '.env'。

在启动服务器之前,请确保你已经完成了上面的安装步骤,并且 'config.json' 和 '.env' 文件已经正确配置,特别是指定了正确的 Swagger/OpenAPI 规范地址和 API 基础 URL。

基本使用方法

  1. 启动服务器: 在项目根目录下,执行以下命令启动服务器:
    yarn start
    服务器启动后会加载配置并解析指定的 Swagger/OpenAPI 规范,然后根据规范注册相应的MCP工具。
  2. MCP客户端连接: 配置你的MCP客户端,使用上面提到的 'yarn' 命令和 'start' 参数来启动并连接到此服务器。
  3. LLM使用工具: 连接成功后,MCP客户端会将服务器声明的工具能力(Tool Definitions)暴露给LLM。LLM可以根据这些工具的描述和参数要求,在需要时生成相应的工具调用指令。
  4. 执行API调用: 当LLM发出工具调用指令时,MCP客户端会将请求发送给 Swagger MCP 服务器。服务器接收到请求后,会执行对应的后端API调用,并将API的执行结果(如返回数据、状态码等)封装后返回给MCP客户端,最终由LLM处理。

关键词

API网关, OpenAPI集成, 工具调用, 后端服务连接

信息

分类

网页与API