OpenAPI转MCP服务器工具

该工具将OpenAPI规范转换为MCP服务器,使每个HTTP端点成为MCP工具,适用于AnythingLLM等MCP感知客户端调用。

  • by rykerwang
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 rykerwang/openapi2mcpserver

使用说明

OpenAPI到MCP服务器

简体中文 | 英语

此项目直接从提供的 openapi.yaml,使用 uv 用于依赖性管理。每个HTTP端点都成为AnythingLLM(或任何支持MCP的客户端)可以调用的MCP工具。

快速开始

  1. 安装依赖项

    uv sync
    
  2. 配置 openapi2mcpserver/config.yaml

    base_url: "https://localhost:12001"
    verify_ssl: false
    openapi_path: "../openapi.yaml"           # Optional, defaults to the repo root copy
    log_file: "../logs/openapi2mcpserver.log" # Optional, enables file logging
    log_level: "INFO"                         # Optional, supports DEBUG/INFO/WARNING/ERROR
    
    auth:
      mode: "basic"                           # Options: none/basic/bearer/header/query
      username: "your-username"
      password: "your-password"
      # basic_token: "cHJlLWVuY29kZWQtY3JlZHM="
      # extra_headers:
      #   X-API-Version: "1"
    
    # default_headers:
    #   X-Request-Source: "mcp"
    
  3. 启动MCP服务器

    uv run openapi2mcpserver
    

在AnythingLLM中使用此MCP服务器

以下步骤针对AnythingLLM桌面插件系统,并列出了macOS和Windows的默认路径。如果文件不存在,则创建该文件,并用计算机上的值替换示例路径。

macOS

  1. 打开 ~/Library/Application Support/anythingllm-desktop/storage/plugins/anythingllm_mcp_servers.json

  2. 添加或合并以下配置:

    {
      "mcpServers": {
        "rhino-agent": {
          "command": "/Users/<你的用户名>/.local/bin/uv",
          "args": ["run", "--project", "/Users/<你的用户名>/workspace/AIProjects/openapi2mcpserver", "openapi2mcpserver"]
        }
      }
    }
    

视窗

  1. 打开 %APPDATA%\anythingllm-desktop\storage\plugins\anythingllm_mcp_servers.json

  2. 如果你使用 uv.exe,将路径替换为以下输出 where uv例如:

    {
      "mcpServers": {
        "rhino-agent": {
          "command": "C:\\Users\\<YourUser>\\AppData\\Roaming\\Python\\Scripts\\uv.exe",
          "args": ["run", "--project", "C:\\Users\\<YourUser>\\workspace\\AIProjects\\openapi2mcpserver", "openapi2mcpserver"]
        }
      }
    }
    

保存后重新启动AnythingLLM(或在设置中重新加载插件),您应该看到 rhino-agent 在工作区的工具列表中可用。

亮点

  • 自动解析每个OpenAPI路径并注册匹配的MCP工具
  • 暴露 OpenAPI_GetSchema 检查 components.schemas
  • 工具输入包括路径参数、查询参数、标头和请求正文
  • 灵活的身份验证(无/基本/承载/自定义标头/查询)加上全局默认标头
  • 对控制台和文件进行结构化日志记录,以便于LLM故障排除

布局

openapi2mcpserver/
    __init__.py
    __main__.py
    client.py
    config.py
    openapi_loader.py
    server.py

运行时注意事项

在启动时,服务器接收OpenAPI描述,为每个工具构建JSON模式输入,并将调用转发到上游API。响应(状态、标头和JSON/文本正文)逐字返回给MCP客户端,以便您可以链接后续操作,如轮询任务状态。