✨ From vibe coding to vibe deployment. UBOS MCP turns ideas into infra with one message.

Learn more

OpenAPI to Model Context Protocol (MCP)

License: MIT Repo Size Last Commit Open Issues Python version

The OpenAPI-MCP proxy translates OpenAPI specs into MCP tools, enabling AI agents to access external APIs without custom wrappers!

OpenAPI-MCP

Bridge the gap between AI agents and external APIs

The OpenAPI to Model Context Protocol (MCP) proxy server bridges the gap between AI agents and external APIs by dynamically translating OpenAPI specifications into standardized MCP tools, resources, and prompts. This simplifies integration by eliminating the need for custom API wrappers.

  • Repository: https://github.com/gujord/OpenAPI-MCP

If you find it useful, please give it a ⭐ on GitHub!


Key Features

  • FastMCP Transport: Optimized for stdio, working out-of-the-box with popular LLM orchestrators.
  • OpenAPI Integration: Parses and registers OpenAPI operations as callable tools.
  • Resource Registration: Automatically converts OpenAPI component schemas into resource objects with defined URIs.
  • Prompt Generation: Generates contextual prompts based on API operations to guide LLMs in using the API.
  • OAuth2 Support: Handles machine authentication via Client Credentials flow.
  • JSON-RPC 2.0 Support: Fully compliant request/response structure.
  • Auto Metadata: Derives tool names, summaries, and schemas from the OpenAPI specification.
  • Sanitized Tool Names: Ensures compatibility with MCP name constraints.
  • Flexible Parameter Parsing: Supports query strings (with a leading “?”) and multiple JSON variations (including keys with dots and numeric values).
  • Enhanced Parameter Handling: Automatically converts parameters to the correct data types.
  • Extended Tool Metadata: Includes detailed parameter information and response schemas.

Quick Start

Installation

git clone https://github.com/gujord/OpenAPI-MCP.git
cd OpenAPI-MCP
pip install -r requirements.txt

LLM Orchestrator Configuration

For Claude Desktop, Cursor, and Windsurf, use the snippet below and adapt the paths accordingly:

{
  "mcpServers": {

    "petstore3": {
      "command": "full_path_to_openapi_mcp/venv/bin/python",
      "args": ["full_path_to_openapi_mcp/src/server.py"],
      "env": {
        "SERVER_NAME": "petstore3",
        "OPENAPI_URL": "https://petstore3.swagger.io/api/v3/openapi.json"
      },
      "transport": "stdio"
    }

  }
}

Apply this configuration to the following files:

  • Cursor: ~/.cursor/mcp.json
  • Windsurf: ~/.codeium/windsurf/mcp_config.json
  • Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json

Replace full_path_to_openapi_mcp with your actual installation path.

Environment Configuration

VariableDescriptionRequiredDefault
OPENAPI_URLURL to the OpenAPI specificationYes-
SERVER_NAMEMCP server nameNoopenapi_proxy_server
OAUTH_CLIENT_IDOAuth client IDNo-
OAUTH_CLIENT_SECRETOAuth client secretNo-
OAUTH_TOKEN_URLOAuth token endpoint URLNo-
OAUTH_SCOPEOAuth scopeNoapi

How It Works

  1. Parses OpenAPI Spec: Loads the OpenAPI specification using httpx and PyYAML if needed.
  2. Registers Operations: Extracts API operations and generates MCP-compatible tools with proper input and response schemas.
  3. Resource Registration: Automatically converts OpenAPI component schemas into resource objects with assigned URIs (e.g., /resource/{name}).
  4. Prompt Generation: Creates contextual prompts based on API operations to assist LLMs in understanding API usage.
  5. Authentication: Supports OAuth2 authentication via the Client Credentials flow.
  6. Parameter Handling: Converts parameters to required data types and supports flexible query string and JSON formats.
  7. JSON-RPC 2.0 Compliance: Ensures standard communication protocols for tool interactions.
sequenceDiagram
    participant LLM as LLM (Claude/GPT)
    participant MCP as OpenAPI-MCP Proxy
    participant API as External API

    Note over LLM, API: Communication Process

    LLM->>MCP: 1. Initialize (initialize)
    MCP-->>LLM: Metadata, tools, resources, and prompts

    LLM->>MCP: 2. Request tools (tools_list)
    MCP-->>LLM: Detailed list of tools, resources, and prompts

    LLM->>MCP: 3. Call tool (tools_call)

    alt With OAuth2
        MCP->>API: Request OAuth2 token
        API-->>MCP: Access Token
    end

    MCP->>API: 4. Execute API call with proper formatting
    API-->>MCP: 5. API response (JSON)

    alt Type Conversion
        MCP->>MCP: 6. Convert parameters to correct data types
    end

    MCP-->>LLM: 7. Formatted response from API

    alt Dry Run Mode
        LLM->>MCP: Call with dry_run=true
        MCP-->>LLM: Display request information without executing call
    end

Resources & Prompts

In addition to tools, the proxy server now automatically registers:

  • Resources: Derived from OpenAPI component schemas, resource objects are registered with defined URIs (e.g., /resource/{name}) for structured data handling.
  • Prompts: Contextual prompts are generated based on API operations to provide usage guidance to LLMs, enhancing their understanding of available endpoints.

This extended metadata improves integration by providing comprehensive API context.

OpenAPI-MCP

Contributing

  • Fork this repository.
  • Create a new branch.
  • Submit a pull request with a clear description of your changes.

License

MIT License

If you find it useful, please give it a ⭐ on GitHub!

OpenAPI to Model Context Protocol (MCP)

353 GitHub stars

Project Details

Recomended MCP Servers

Kubernetes Operations Manager
Kubernetes Operations Manager

kom 是一个用于 Kubernetes 操作的工具,SDK级的kubectl、client-go的使用封装。并且支持作为管理k8s 的 MCP server。 它提供了一系列功能来管理 Kubernetes 资源,包括创建、更新、删除和获取资源,甚至使用SQL查询k8s资源。这个项目支持多种 Kubernetes 资源类型的操作,并能够处理自定义资源定义(CRD)。 通过使用 kom,你可以轻松地进行资源的增删改查和日志获取以及操作POD内文件等动作。

Sentry MCP Server
Sentry MCP Server
VRChat API Integration
VRChat API Integration

This project is a Model Context Protocol (MCP) server for interacting with the VRChat API.

🧩
Directus MCP Server

Model Context Protocol server for Directus

MCP Tools for Obsidian
MCP Tools for Obsidian

Add Obsidian integrations like semantic search and custom Templater prompts to Claude or any MCP client.

Documentation Server
Documentation Server

Expose llms-txt to IDEs for development

KiCad MCP Server
KiCad MCP Server

Model Context Protocol server for KiCad on Mac, Windows, and Linux

🧩
Vinted Scraper

This is a tool to scrape/download images and data from Vinted & Depop using the API and stores...

AWS MCP Servers
AWS MCP Servers

AWS MCP Servers — specialized MCP servers that bring AWS best practices directly to your development workflow

1Panel Website Deployment Server
1Panel Website Deployment Server

A MCP server for automated website deployment to 1Panel (Experimental)

SearXNG MCP Server
SearXNG MCP Server

An MCP server implementation that integrates with SearXNG, providing privacy-focused meta search capabilities.

RAG Documentation Server
RAG Documentation Server

An MCP server that provides tools for retrieving and processing documentation through vector search, both locally or hosted....

Featured Templates

View More
Customer service
Service ERP
127 1488
AI Characters
Your Speaking Avatar
171 929
AI Assistants
Talk with Claude 3
160 2068
AI Agents
AI Video Generator
258 2301

Start your free trial

Build your solution today. No credit card required.

Sign In

Register

Reset Password

Please enter your username or email address, you will receive a link to create a new password via email.