# openapi-dynamic [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/mayorandrew/openapi-dynamic-mcp  
**GitHub Stars:** 1  
**npm Downloads (last month):** 221  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/openapi-dynamic

## Description
Load OpenAPI 2.x/3.x specs and expose generic tools to discover and call multiple APIs

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "openapi-dynamic": {
    "command": "npx",
    "args": ["-y","openapi-dynamic-mcp@latest"],
    "env": {
      "OPENAPI_DYNAMIC_MCP_AUTH_FILE": ""
    }
  }
}
```

**Requires environment variables:** `OPENAPI_DYNAMIC_MCP_AUTH_FILE` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What openapi-dynamic MCP server does

The openapi-dynamic MCP server turns one or more OpenAPI descriptions into a consistent set of MCP tools. Each configured API has a name, a local specification path or remote specification URL, and optional request settings. Clients can enumerate configured APIs, browse their endpoints, inspect endpoint details, read portions of a specification, and submit endpoint requests.

The openapi-dynamic MCP server accepts OpenAPI 3.0, OpenAPI 3.1, and Swagger 2.0 documents. It is useful when an agent needs to work with several services whose APIs are already described, but no dedicated integration exists for each service. The same configured APIs can also be accessed from the command line.

## How it works

Configuration is supplied as YAML with a top-level `version` and an `apis` list. Every API entry can use `specPath` for a local file or `specUrl` for a hosted document. A `baseUrl` can replace the URL declared by the specification. Per-API headers and a default timeout are also available.

The server exposes generic discovery and request operations. The documented commands include `list_apis`, `list_api_endpoints`, `get_api_endpoint`, `get_api_schema`, and `make_endpoint_request`. A request can be run as a dry run to inspect its shape without network I/O. Successful output can be narrowed with repeatable JSONPath field selectors.

The CLI mirrors the MCP tools: each subcommand accepts one JSON object and emits JSON. This allows the same configuration to be used from an MCP client, scripts, debugging sessions, or authentication setup. The root command and an explicit `serve` subcommand both start the server.

## Setup and configuration

Node.js 20 or newer is required. The package can be started directly with `npx` and a config path:

```bash
npx -y openapi-dynamic-mcp@latest --config ./config.yaml
```

The configuration can set retry behavior for HTTP 429 responses, including retry counts, delay bounds, jitter, and whether to honor `Retry-After`. It can also define headers sent on every request.

OAuth2 schemes may be configured by matching the scheme name from the OpenAPI document. Supported settings include token URLs, scopes, token endpoint authentication methods, device authorization endpoints, authentication methods, and PKCE.

## Tools and capabilities

Authentication options include API keys, HTTP bearer tokens, HTTP basic authentication, OAuth2 client credentials, password grant, device code, and authorization code with PKCE. The `auth` CLI command can authenticate a configured scheme and save its token for later MCP or CLI calls. Device-code and browser-based flows return structured instructions for the agent to present to the user.

By default, saved tokens are placed in `.openapi-dynamic-mcp-auth.json` beside the configuration file. The location can be changed with `--auth-file` or `OPENAPI_DYNAMIC_MCP_AUTH_FILE`. The server also supports multipart uploads and raw binary request bodies, and it can project large successful responses with JSONPath selectors.

## Limitations and notes

The project requires Node.js 20 or newer. API access depends on a usable OpenAPI 2.x or 3.x specification and any credentials required by the target service. OAuth2 interactive flows may require the user to complete a browser or device authorization step before the request can continue. Retry configuration specifically addresses HTTP 429 responses rather than describing a general retry policy for every failure type.

_Full upstream README: https://allmcps.com/mcp/openapi-dynamic/readme_

