A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.npmjs.com/package/openapi-mcp-generator below:

openapi-mcp-generator - npm

OpenAPI to MCP Generator (openapi-mcp-generator)

Generate Model Context Protocol (MCP) servers from OpenAPI specifications.

This CLI tool automates the generation of MCP-compatible servers that proxy requests to existing REST APIs—enabling AI agents and other MCP clients to seamlessly interact with your APIs using your choice of transport methods.

npm install -g openapi-mcp-generator

You can also use yarn global add openapi-mcp-generator or pnpm add -g openapi-mcp-generator

# Generate an MCP server (stdio)
openapi-mcp-generator --input path/to/openapi.json --output path/to/output/dir

# Generate an MCP web server with SSE
openapi-mcp-generator --input path/to/openapi.json --output path/to/output/dir --transport=web --port=3000

# Generate an MCP StreamableHTTP server
openapi-mcp-generator --input path/to/openapi.json --output path/to/output/dir --transport=streamable-http --port=3000
Option Alias Description Default --input -i Path or URL to OpenAPI specification (YAML or JSON) Required --output -o Directory to output the generated MCP project Required --server-name -n Name of the MCP server (package.json:name) OpenAPI title or mcp-api-server --server-version -v Version of the MCP server (package.json:version) OpenAPI version or 1.0.0 --base-url -b Base URL for API requests. Required if OpenAPI servers missing or ambiguous. Auto-detected if possible --transport -t Transport mode: "stdio" (default), "web", or "streamable-http" "stdio" --port -p Port for web-based transports 3000 --force Overwrite existing files in the output directory without confirmation false

You can also use this package programmatically in your Node.js applications:

import { getToolsFromOpenApi } from 'openapi-mcp-generator';

// Extract MCP tool definitions from an OpenAPI spec
const tools = await getToolsFromOpenApi('./petstore.json');

// With options
const filteredTools = await getToolsFromOpenApi('https://example.com/api-spec.json', {
  baseUrl: 'https://api.example.com',
  dereference: true,
  excludeOperationIds: ['deletePet'],
  filterFn: (tool) => tool.method.toLowerCase() === 'get'
});

For full documentation of the programmatic API, see PROGRAMMATIC_API.md.

The generated project includes:

<output_directory>/
├── .gitignore
├── package.json
├── tsconfig.json
├── .env.example
├── src/
│   ├── index.ts
│   └── [transport-specific-files]
└── public/          # For web-based transports
    └── index.html   # Test client

Core dependencies:

Communicates with MCP clients via standard input/output. Ideal for local development or integration with LLM tools.

Launches a fully functional HTTP server with:

Implements the MCP StreamableHTTP transport which offers:

Feature stdio web (SSE) streamable-http Protocol JSON-RPC over stdio JSON-RPC over SSE JSON-RPC over HTTP Connection Persistent Persistent Request/response Bidirectional Yes Yes Yes (stateful) Multiple clients No Yes Yes Browser compatible No Yes Yes Firewall friendly No Yes Yes Load balancing No Limited Yes Status codes No Limited Full HTTP codes Headers No Limited Full HTTP headers Test client No Yes Yes 🔐 Environment Variables for Authentication

Configure auth credentials in your environment:

Auth Type Variable Format API Key API_KEY_<SCHEME_NAME> Bearer BEARER_TOKEN_<SCHEME_NAME> Basic Auth BASIC_USERNAME_<SCHEME_NAME>, BASIC_PASSWORD_<SCHEME_NAME> OAuth2 OAUTH_CLIENT_ID_<SCHEME_NAME>, OAUTH_CLIENT_SECRET_<SCHEME_NAME>, OAUTH_SCOPES_<SCHEME_NAME> ▶️ Running the Generated Server
cd path/to/output/dir
npm install

# Run in stdio mode
npm start

# Run in web server mode
npm run start:web

# Run in StreamableHTTP mode
npm run start:http
Testing Web-Based Servers

For web and StreamableHTTP transports, a browser-based test client is automatically generated:

  1. Start the server using the appropriate command
  2. Open your browser to http://localhost:<port>
  3. Use the test client to interact with your MCP server

Contributions are welcome!

  1. Fork the repo
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m "Add amazing feature"
  4. Push and open a PR

📌 Repository: github.com/harsha-iiiv/openapi-mcp-generator

MIT License — see LICENSE for full details.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4