OpenAPI协议服务器

一个动态加载和暴露基于OpenAPI规范的工具的服务器,用于通过标准接口与任何OpenAPI兼容的API进行交互、检查和测试。

  • by learnwithkawsar
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 learnwithkawsar/open-api-mcp-server

使用说明

打开API MCP服务器

这个项目是一个模型上下文协议(MCP)服务器,它基于OpenAPI(Swagger)规范动态加载和公开工具。它旨在帮助您通过标准接口与任何与OpenAPI兼容的API进行交互、检查和测试。

特性

  • 动态Swagger/OpenAPI加载: 传递Swagger JSON URL作为命令行参数,以加载任何API并与之交互。
  • API检验工具:
    • list_apis:列出所有可用的API路径。
    • get_api_info:获取有关特定API终结点的详细信息,包括参数和请求/响应架构。
    • list_endpoints:按方法或路径子字符串列出具有可选筛选的端点。
    • load_swagger_spec:获取并返回完整的Swagger规格。
    • readSwaggerSpec:获取并打印加载的Swagger规范。
  • 请求正文示例生成: 对于具有请求体的端点,服务器会根据模式生成一个示例JSON有效负载。
  • 标准I/O传输: 服务器通过stdin/stdout进行通信,使其易于与其他工具或自动化集成。

用法

1.安装依赖项

npm install

2.建设项目

npm run build

3.使用Swagger JSON URL运行服务器

node dist/index.js <swagger-json-url>

例子:

node dist/index.js http://your-server.com/swagger/v1/swagger.json

示例工具

  • list_apis:返回已加载规范中的所有API路径。
  • get_api_info:返回给定端点的详细信息(参数、请求/响应、示例正文)。
  • list_endpoints:返回端点,可选择按HTTP方法或路径子字符串进行筛选。
  • readSwaggerSpec:以JSON格式返回完整的Swagger规范。

发展

  • 用TypeScript编写
  • 用途 node-fetch 对于HTTP请求
  • 用途 zod 用于模式验证

项目结构

  • src/index.ts:主服务器和工具逻辑
  • dist/:编译的JavaScript输出
  • .gitignore:标准节点/TypeScript忽略
  • tsconfig.json:TypeScript配置

许可证

国际协调委员会

配置和CLI使用

您可以将此项目用作CLI工具来加载任何OpenAPI/Swagger规范并与之交互。您可以直接使用 npx 或者作为本地/全局包。

示例:与npx一起使用

npx @kawsar-ahmed/open-api-mcp-server http://your-server.com/swagger/v1/swagger.json

示例:在配置文件中使用(例如mcp.json)

您可以配置您的工具运行器(如Cursor或任何与MCP兼容的编排器)使用此服务器,配置如下:

{
  "mcpServers": {
    "swagger2": {
      "command": "npx",
      "args": ["@kawsar-ahmed/open-api-mcp-server", "http://your-server.com/swagger/v1/swagger.json"]
    }
  }
}

将URL替换为实际的Swagger/OpenAPI端点。


作者 Kawsar Ahmed