Skip to main content

Automatically convert RESTful APIs (Swagger 2.0 / OpenAPI 3.0) into MCP Servers

Project description

MCP RESTful Adapter

将 RESTful API(Swagger 2.0 / OpenAPI 3.0)自动转换为 MCP Server。每个 API 端点变成一个 MCP Tool。

快速开始

1. 在 Claude Desktop / Cursor / Claude Code 中使用

编辑配置文件(Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json):

从 PyPI 安装(推荐):

{
  "mcpServers": {
    "petstore": {
      "command": "uvx",
      "args": ["mcp-restful-adapter"],
      "env": {
        "API_SPEC_URL": "https://petstore3.swagger.io/api/v3/openapi.json",
        "API_BASE_URL": "https://petstore3.swagger.io/api/v3",
        "API_TAGS": "pet,store"
      }
    }
  }
}

本地开发(未发布时):

{
  "mcpServers": {
    "petstore": {
      "command": "uv",
      "args": [
        "run",
        "--project", "/path/to/mcp-restful-adapter",
        "mcp-restful-adapter"
      ],
      "env": {
        "API_SPEC_URL": "https://petstore3.swagger.io/api/v3/openapi.json",
        "API_BASE_URL": "https://petstore3.swagger.io/api/v3",
        "API_TAGS": "pet,store"
      }
    }
  }
}

/path/to/mcp-restful-adapter 替换为本项目的实际路径。

配置完成后,Claude 就能直接调用 Petstore 的 API 了:

  • findPetsByStatus(status="available") → 查询可用宠物
  • getPetById(petId=1) → 查询宠物详情
  • addPet(name="Buddy", ...) → 创建宠物

2. 在终端中使用

# PyPI 版本
API_SPEC_URL=https://petstore3.swagger.io/api/v3/openapi.json \
API_BASE_URL=https://petstore3.swagger.io/api/v3 \
API_TAGS=pet \
uvx mcp-restful-adapter

# 本地开发
API_SPEC_URL=https://petstore3.swagger.io/api/v3/openapi.json \
API_BASE_URL=https://petstore3.swagger.io/api/v3 \
API_TAGS=pet \
uv run mcp-restful-adapter

3. 带认证的 API

{
  "mcpServers": {
    "my-api": {
      "command": "uvx",
      "args": ["mcp-restful-adapter"],
      "env": {
        "API_SPEC_URL": "https://your-api.example.com/openapi.json",
        "API_BASE_URL": "https://your-api.example.com",
        "API_HEADERS": "{\"Authorization\": \"Bearer your-bearer-token\", \"X-Tenant\": \"acme\"}"
      }
    }
  }
}

环境变量

变量 说明 默认值
API_SPEC_URL OpenAPI/Swagger 文档地址 必填
API_BASE_URL 后端 API 地址 必填
API_TAGS Tag 白名单,逗号分隔,OR 逻辑(匹配任一 tag 即保留) 全部
API_METHODS HTTP 方法白名单,逗号分隔 全部
API_PATHS 路径正则白名单(如 ^/api/v1/ 全部
API_HEADERS 自定义请求头(JSON 格式,含认证等)
LOG_LEVEL 日志级别(INFO 记录请求 URL,DEBUG 记录请求头和 body) WARNING

过滤示例

# 只要 GET 请求
API_METHODS=GET

# 只要 pet 或 store 相关的端点
API_TAGS=pet,store

# 只要 /api/v1/ 开头的路径
API_PATHS=^/api/v1/

# 组合使用:pet tag 下的 GET 和 POST
API_TAGS=pet
API_METHODS=GET,POST

开发

uv sync                                    # 安装依赖
uv run mcp-restful-adapter                 # 运行
uv run pytest tests/ -v                    # 运行测试
uv run pytest tests/ --cov=mcp_restful_adapter  # 覆盖率

示例代码

文件 说明
examples/agent_usage.py Agent 中使用 — 连接 MCP Server、列出 tools、调用 tools
examples/claude_desktop_config.json Claude Desktop 配置模板
uv run python examples/agent_usage.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_restful_adapter-0.3.0.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_restful_adapter-0.3.0-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

Details for the file mcp_restful_adapter-0.3.0.tar.gz.

File metadata

  • Download URL: mcp_restful_adapter-0.3.0.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for mcp_restful_adapter-0.3.0.tar.gz
Algorithm Hash digest
SHA256 0a9681166172838314b67d76bc5335f0da2194c133a8bd23a7c53fd3f21c2ed2
MD5 dc3cc03f59e5bf3820efcc3f5a4d8990
BLAKE2b-256 3c9d85b6dcec0a34f1825c50395ebb304f9316958969ebead4f0fcac41c3dd75

See more details on using hashes here.

File details

Details for the file mcp_restful_adapter-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_restful_adapter-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f11f87e0a257b6032f3b6e1ca4d52a2bc2464e8b0954f1a7cb2b62ecf03a6345
MD5 46cd9c944269651328fa0c18807b768b
BLAKE2b-256 8cab13416cb8f7860050dfbbc9ce55190019550b4751be8765084e05e845b423

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page