Sponsored by Deepsite.site

🤖 OpenAPI MCP Server

Created By
JacerOmri9 months ago
CLI tool to create an MCP server exposing services from an OpenAPI specification
Content

🤖 OpenAPI MCP Server

asciicast

A command-line tool that transforms any OpenAPI service into a Model Context Protocol (MCP) server, enabling seamless integration with AI agents and tools that support the MCP specification.

NOTE

This tool is still in early development stage. Roadmap is here

What is Model Context Protocol (MCP)?

Model Context Protocol (MCP) is a standardized protocol for AI agents to interact with external tools and services. It provides a consistent way for AI models to discover, understand, and utilize various capabilities through a unified interface, making it easier to build AI-powered applications that can interact with multiple services.

What is OpenAPI?

OpenAPI (formerly known as Swagger) is a specification for machine-readable interface files for describing, producing, consuming, and visualizing RESTful web services. It allows both humans and computers to discover and understand the capabilities of a service without needing to access the source code or additional documentation.

About This Project

This middleware acts as a bridge between OpenAPI services and MCP clients. It:

  1. Takes an OpenAPI specification file as input
  2. Automatically generates an MCP-compliant server
  3. Proxies incoming requests to the actual OpenAPI service
  4. Translates between MCP and REST conventions

This enables any existing REST API with an OpenAPI specification to be immediately accessible to AI agents that understand MCP, without requiring any modifications to the original service.

Installation

npm install -g openapi-mcp-proxy

Usage

npx openapi-mcp-proxy --spec ./path/to/openapi.yml --target http://your-api.com --port 3000

Options

  • -s, --spec <path> (required): Path to your OpenAPI specification file (env: OMP_OPENAPI_SPEC_FILE)
  • -t, --target <url> (optional): Target URL of the API service (default: "http://localhost:8080", env:OMP_TARGET_BASE_URL)
  • -p, --port <number> (optional): Port to run the MCP server on (default: "3000", env: PORT)
  • -V, --version: Display version number
  • -h, --help: Display help for command

Example

Start an MCP server for the Petstore API

npx openapi-mcp-proxy --spec resources/petstore.openapi.yml --target https://petstore.swagger.io/v2

Testing

MCP Inspector

To test your MCP server, you can use the Model Context Protocol:

  1. Install the MCP Inspector:
npx @modelcontextprotocol/inspector
  1. Start your MCP server
  2. Navigate to the inspector's UI and fill in the correct server path ending with /mcp like http://localhost:3000/mcp
  3. Now you can interact with your MCP server. The MCP Inspector will show you detailed information about the requests and responses.

with VS Code

It's easier to use this with VS Code's built-in agent mode:

  1. Open VS Code and enable agent mode:
    • Press Cmd/Ctrl + Shift + P
    • Type "Toggle GitHub Copilot Agent Mode"
    • Select "Enable"
  2. Add your MCP server:
    • Press Cmd/Ctrl + Shift + P
    • Type "MCP: add Server"
    • type your MCP server URL like http://localhost:3000/mcp ending with /mcp
  3. Your github copilot chat should pick up on the new tools it has!
  4. Now you can interact with your MCP server through VS Code's agent interface. Try asking it "how many pets are available right now?"

for more information on how to use MCP servers with VS code, see this

Contributing

Contributions are welcome! Please feel free to submit a Pull Request. Roadmap is here

License

MIT

Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
TimeA Model Context Protocol server that provides time and timezone conversion capabilities. This server enables LLMs to get current time information and perform timezone conversions using IANA timezone names, with automatic system timezone detection.
WindsurfThe new purpose-built IDE to harness magic
Playwright McpPlaywright MCP server
Amap Maps高德地图官方 MCP Server
DeepChatYour AI Partner on Desktop
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
Serper MCP ServerA Serper MCP Server
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
Y GuiA web-based graphical interface for AI chat interactions with support for multiple AI models and MCP (Model Context Protocol) servers.
Tavily Mcp
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
ChatWiseThe second fastest AI chatbot™
CursorThe AI Code Editor
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.