Skip to main content

OpenAPI MCP Server - 基于 Model Context Protocol 的 OpenAPI 规范解析服务器

Project description

OpenAPI MCP Server

基于 Model Context Protocol 的 OpenAPI 规范解析服务器。

功能特性

  • 解析 OpenAPI 3.0 规范(支持本地文件和远程 URL)
  • 列出规范中的所有接口
  • 获取接口的详细信息(参数、请求体、响应等)
  • 自动展开 $ref 引用
  • 支持循环引用处理
  • 支持深层嵌套结构解析
  • 可选的 server URL 拼接功能

安装

使用 uvx:

uvx yonglelaoren-openapi-mcp

或使用 pip:

pip install yonglelaoren-openapi-mcp

MCP 工具

list_endpoints

列出 OpenAPI 规范中的所有接口。

参数:

  • spec_source: OpenAPI 规范来源(文件路径或 URL)

返回:

  • 接口列表,包含路径、方法、摘要和描述

get_endpoint_details

获取指定接口的详细信息,包括参数、请求体、响应等,所有 $ref 引用已展开为具体字段结构。

参数:

  • spec_source: OpenAPI 规范来源(文件路径或 URL)
  • path: 接口路径(例如:/users/{id})
  • method: HTTP 方法(GET, POST, PUT, DELETE 等)

返回:

  • 接口详细信息,包含参数、请求体、响应、解析后的 schemas 等

环境变量

INCLUDE_SERVER_URL

控制是否在返回的接口路径中包含 server URL 前缀。

默认值: false

作用:

  • 当设置为 true 时,如果 OpenAPI 规范中定义了 servers 字段,返回的接口路径会包含第一个 server 的 URL 前缀
  • 当设置为 false 或未设置时,返回原始的接口路径

支持的值(启用):

  • true
  • True
  • 1
  • yes

支持的值(禁用):

  • false
  • False
  • 0
  • no

示例:

假设 OpenAPI 规范中定义:

servers:
  - url: /video-service

paths:
  /mvc/test/hello:
    get:
      summary: 测试接口
  • 默认行为(INCLUDE_SERVER_URL=false)

    {
      "path": "/mvc/test/hello"
    }
    
  • 启用 server URL(INCLUDE_SERVER_URL=true)

    {
      "path": "/video-service/mvc/test/hello"
    }
    

使用场景: 在微服务架构中,不同的服务可能有不同的 URL 前缀。启用此功能可以在返回的接口路径中自动包含服务前缀,便于区分不同服务的接口地址。

配置示例

在 Claude Desktop 中配置

编辑 Claude Desktop 的配置文件(通常位于 ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "openapi-extraction": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/path/to/openapi-mcp",
        "yonglelaoren-openapi-mcp"
      ],
      "env": {
        "INCLUDE_SERVER_URL": "true"
      }
    }
  }
}

使用 uvx

uvx -e INCLUDE_SERVER_URL=true yonglelaoren-openapi-mcp

使用环境变量

export INCLUDE_SERVER_URL=true
uvx yonglelaoren-openapi-mcp

不启用 server URL(默认行为)

uvx yonglelaoren-openapi-mcp

或显式禁用:

uvx -e INCLUDE_SERVER_URL=false yonglelaoren-openapi-mcp

开发

安装依赖

uv sync

运行测试

# 运行所有测试
uv run pytest

# 运行测试并查看覆盖率
uv run pytest --cov

# 运行特定测试文件
uv run pytest tests/test_parsers/test_openapi_parser.py

代码质量检查

# 代码格式化
uv run ruff format src/

# 代码检查
uv run ruff check src/

# 类型检查
uv run mypy src/

构建

uv build

技术栈

  • Python 3.11+
  • MCP/FastMCP - Model Context Protocol 框架
  • Prance - OpenAPI 规范解析器
  • Pydantic - 数据验证
  • httpx - HTTP 客户端

许可证

MIT License

作者

yongle yonglelaoren@163.com

版本历史

  • 0.4.0 - 新增 server URL 拼接功能(INCLUDE_SERVER_URL 环境变量)
  • 0.3.0 - 修复循环引用处理和 schema 递归解析
  • 0.2.1 - 新增循环引用处理和 schema 递归解析功能
  • 0.2.0 - 初始版本

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

yonglelaoren_openapi_mcp-0.4.0.tar.gz (15.9 kB view details)

Uploaded Source

Built Distribution

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

yonglelaoren_openapi_mcp-0.4.0-py3-none-any.whl (19.1 kB view details)

Uploaded Python 3

File details

Details for the file yonglelaoren_openapi_mcp-0.4.0.tar.gz.

File metadata

  • Download URL: yonglelaoren_openapi_mcp-0.4.0.tar.gz
  • Upload date:
  • Size: 15.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for yonglelaoren_openapi_mcp-0.4.0.tar.gz
Algorithm Hash digest
SHA256 16e4f4534236c15b038d53b3f441cb8b306aed10d4aa6ef1e1b7c18934323855
MD5 f3eaa60b9826092d87e1cc7db38d108a
BLAKE2b-256 6281581c0f16c4206e6316e8f49100ce7c22dee62168f9d2937fda228e97ad0a

See more details on using hashes here.

File details

Details for the file yonglelaoren_openapi_mcp-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for yonglelaoren_openapi_mcp-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 59002982e2307c1d8ca61233d86cb7e50655980efb6bf591ead5f51252317be5
MD5 439a4ab565227d468f4ace7210927004
BLAKE2b-256 d9d09ec02f4cefe7784f5e61f9b13374ed8359ebb9e51cb48671db7172726ca2

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