mcpField
O
OpenAPI to MCP

OpenAPI to MCP

Local
github.com/spaceguy101Developer Tools0Updated 79w ago

About OpenAPI to MCP

A server that turns OpenAPI specifications into MCP tools, for AI agents and other MCP clients that need to call APIs described by those specifications. It supports OpenAPI 2.0 and 3.x and offers Streamable HTTP and legacy SSE transports.

Key features

  1. 01Convert OpenAPI operations to tools
  2. 02OpenAPI 2.0 and 3.x support
  3. 03Streamable HTTP and SSE transports
  4. 04Automatic API base URL detection
  5. 05Binary response handling
  6. 06Detailed debug logging

Use cases

  1. 01Expose an existing web API to MCP clients
  2. 02Connect clients to APIs from an OpenAPI spec

MCP support

It exposes operations from an OpenAPI specification as MCP tools. MCP clients can connect using Streamable HTTP or legacy SSE.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

OpenAPI to MCP

Converts an OpenAPI specification file into an MCP server that can be used to interact with existing web APIs described by OpenAPI specifications.

This allows AI agents or other clients that understand MCP to interact with existing web APIs described by OpenAPI specifications.

Features

  • Automatic conversion of OpenAPI operations to MCP tools
  • Support for both modern Streamable HTTP and legacy SSE transports
  • Automatic API base URL detection from OpenAPI specs
  • Support for OpenAPI/Swagger 2.0 and OpenAPI 3.x
  • Binary response handling
  • Graceful shutdown handling
  • Detailed logging for debugging

Prerequisites

  • Node.js (v16 or later recommended)

Installation

  1. Clone the repository (or ensure you have the openapi-to-mcp directory).
  2. Navigate to the openapi-to-mcp directory:
    cd openapi-to-mcp
    
  3. Install dependencies:
    npm install
    

Build

Compile the TypeScript code to JavaScript:

npm run build

This will create a dist directory with the compiled JavaScript files.

Usage

Start the server using the start script, providing the path to your OpenAPI specification file using the -f or --file option:

# Example using a local petstore.yaml file
npm start -- serve -f ./path/to/your/openapi.json

# Example with different port and host
npm start -- serve --file ./specs/petstore.json --port 9090 --host 0.0.0.0
  • Replace ./path/to/your/openapi.json with the actual path to your OpenAPI file.
  • The server will parse the file, adapt the API operations to MCP functions, and start listening.
  • It will print the available endpoints for both modern and legacy MCP connections.

Connecting as an MCP Client

Modern Connection (Recommended)

The server provides a modern Streamable HTTP transport managed by the MCP SDK. This is the recommended way to connect to the server.

Legacy SSE Connection

For backwards compatibility, the server also supports SSE connections:

  1. Connect to the SSE endpoint (e.g., http://localhost:8080/sse).

  2. You will receive an mcp-hello event upon connection.

  3. To call a function, send an MCP function_call message via a POST request to the /messages endpoint with a sessionId query parameter matching your SSE connection ID.

    Example POST to /messages?sessionId=<your_session_id>:

    Headers:

    Content-Type: application/json
    

    Body:

    {
      "type": "function_call",
      "id": "call-123",
      "function_name": "get_pets_by_status",
      "parameters": {
        "status": "available"
      }
    }
    
  4. The server will execute the corresponding API call and send back a function_return or error event over the established SSE connection.

Development

Run in development mode with auto-recompilation:

# Make sure to provide the OpenAPI file path
npm run dev -- -f ./path/to/your/openapi.yaml

Current Limitations

  • Authentication: Not implemented
  • Schema Validation: While basic schema validation is in place, some complex OpenAPI schema features (discriminators, complex compositions) might not be fully supported.
  • Testing: No automated tests are currently included.
  • Documentation: Individual tool documentation could be improved with more examples and parameter descriptions.

Contributing

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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.