Swagger API动态工具生成器

一个基于Swagger/OpenAPI规范动态生成API交互工具的MCP服务器,支持自然语言处理LLM管理租户和用户。

  • by akshay-harale
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 akshay-harale/mcp-for-swagger

使用说明

Swagger服务器MCP

一个模型上下文协议(MCP)服务器,基于Swagger/OpenAPI模式动态公开API。

概述

此MCP服务器自动生成与服务器的swaggAPI交互的工具。它从运行中的服务器获取OpenAPI规范,并动态创建MCP工具,允许像Claude这样的LLM通过自然语言管理租户和用户。

特性

  • 动态工具生成:根据OpenAPI/Swagger规范自动创建MCP工具
  • 零配置:不需要手动工具定义
  • 自动更新:API更改时工具会自动更新
  • 类型安全:基于OpenAPI模式的输入验证
  • 路径参数处理:自动处理URL路径参数
  • 请求身体映射:从模式中智能映射请求体

先决条件

  • Node.js(v18或更高版本)
  • 正在运行服务器 http://localhost:9000
  • 启用OpenAPI/Swagger的服务器

安装

根据您的应用程序(如claude/cline/copilot等)将此代码复制到相应的mcp服务器目录中。

cd swagger-mcp
npm install
npm run build

配置

环境变量

  • API_BASE_URL:服务器的基本URL(默认值: http://localhost:9000)
  • API_SPEC_PATH:OpenAPI规范的路径(默认: /v3/api-docs)

临床整合

服务器在Cline的MCP设置文件中配置:

{
  "mcpServers": {
    "swagger-mcp": {
      "command": "node",
      "args": ["<C:\\Users\\username\\Documents\\Cline\\MCP>\\swagger-mcp\\build\\index.js"],
      "env": {
        "API_BASE_URL": "http://localhost:9000",
        "API_SPEC_PATH": "/v3/api-docs"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Claude桌面集成

添加到 C:\Users\username\AppData\Roaming\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "swagger-mcp": {
      "command": "node",
      "args": ["C:\\Users\\username\\Documents\\Cline\\MCP\\swagger-mcp\\build\\index.js"],
      "env": {
        "API_BASE_URL": "http://localhost:9000",
        "API_SPEC_PATH": "/v3/api-docs"
      }
    }
  }
}

可用工具

一旦它能够连接到配置的swagger,它将能够动态创建工具。

使用示例

使用Cline或Claude桌面

运作原理

  1. 初创公司:服务器连接并从服务器获取OpenAPI规范
  2. 解析:提取所有匹配的端点 /api/**
  3. 工具生成:为每个端点创建具有适当模式的MCP工具
  4. 请求处理:将工具调用映射到具有正确参数的HTTP请求
  5. 响应:向LLM返回格式化的JSON响应

建筑

┌─────────────────┐
│   LLM (Claude)  │
└────────┬────────┘
         │ Natural Language
         ↓
┌─────────────────┐
│  MCP Protocol   │
└────────┬────────┘
         │ Tool Calls
         ↓
┌─────────────────┐
│ swagger-mcp     │ ← Fetches OpenAPI Spec
└────────┬────────┘
         │ HTTP Requests
         ↓
┌─────────────────┐
│     Server      │
│   Port 9000     │
└─────────────────┘

发展

项目结构

swagger-mcp/
├── src/
│   └── index.ts          # Main MCP server implementation
├── build/                # Compiled JavaScript output
├── package.json          # Dependencies and scripts
├── tsconfig.json         # TypeScript configuration
└── README.md            # This file

建筑

npm run build

观察变化

npm run watch

故障排除

MCP服务器未连接

  1. 验证OpenAPI规范是否可访问:

    curl http://localhost:9000/v3/api-docs
    
  2. 检查MCP服务器日志 在克莱恩或克劳德桌面

工具未出现

  1. 配置更改后重新启动Cline或Claude Desktop
  2. 启动MCP客户端之前,请确保服务器正在运行
  3. 检查生成目录是否存在并包含 index.js

API错误

  • 403禁止:检查是否 /api/** 在服务器安全配置中被排除在身份验证之外
  • 404未找到:验证服务器中是否存在API终结点
  • 连接被拒绝:确保服务器在配置的端口上运行

API要求

要使此MCP服务器工作,您的服务器必须:

  1. 在配置的端口上运行(默认值:9000)
  2. 公开OpenAPI/Swagger文档,网址为 /v3/api-docs
  3. 有 /api/** 无需身份验证即可访问端点
  4. 为本地主机连接包含正确的CORS标头

许可证

麻省理工学院

贡献

创建此MCP服务器是为了简化在自然语言界面中与API的交互。欢迎投稿!

支持

关于以下问题: