Skip to content

Options

Configuration Options

OptionTypeDefaultDescription
specSource{ type: "object"; spec: OpenAPISpec } | { type: "url"; spec: string } | { type: "file"; spec: string }Provide your OpenAPI 3.x spec as an object, or point to it via URL or file path.
server{ name?: string; version?: string }see belowMCP server metadata exposed during initialize.
toolsOpenAPIMcpToolsOptionssee belowControl tool inclusion and naming.
httpOpenAPIMcpHttpOptionssee belowConfigure built-in MCP HTTP endpoint behavior.
executorOpenAPIMcpExecutorOptionssee belowConfigure how generated tools execute target HTTP operations.
extendServer(server: McpServer) => void | Promise<void>Hook to register custom tools/resources/prompts or modify the generated MCP server.
debugbooleanfalseVerbose logs for troubleshooting.

specSource

TypeTypeTypical use
"object"OpenAPISpecStatic spec object.
"url"stringLink to a centralized or externally hosted spec.
"file"stringLocal file path to a json/yaml file.

server

OptionTypeDefaultDescription
namestringspec.info.title or openapi-mcpMCP server display name during initialize.
versionstringspec.info.version or 0.0.0MCP server version during initialize.

tools

OptionTypeDefaultDescription
defaultIncludebooleanfalseInclude operations as tools by default when x-mcp is not defined.
namePrefixstringOptional prefix for generated tool names (e.g. api_).

x-mcp precedence for operation inclusion is:

  1. operation-level x-mcp
  2. path-level x-mcp
  3. root-level x-mcp
  4. fallback to tools.defaultInclude

http

OptionTypeDefaultDescription
enabledbooleantrueEnable built-in MCP HTTP endpoint/controller.
pathstring"/mcp"Endpoint path for streamable HTTP MCP transport.
sessionMode"stateless" | "stateful""stateless"Transport lifecycle mode for HTTP requests.
sessionTtlMsnumber3600000Session TTL in stateful mode. Expired sessions are cleaned up automatically.
allowedOriginsstring[]Optional origin allowlist check (returns 403 when denied).
allowedHostsstring[]Optional host allowlist check (returns 403 when denied).

executor

OptionTypeDefaultDescription
baseUrlstringBase URL for upstream HTTP execution. Required.
forwardHeadersstring[]["authorization"]Request headers to forward from MCP request context to upstream calls.
timeoutMsnumber30000Upstream HTTP timeout per tool call.

Async Configuration

Use forRootAsync() for dependency injection:

ts
OpenAPIMcpModule.forRootAsync({
  imports: [ConfigModule],
  useFactory: (config: ConfigService) => ({
    specSource: { type: "url", spec: config.getOrThrow("OPENAPI_SPEC_URL") },
    http: {
      path: "/mcp",
      sessionMode: "stateless",
    },
    executor: {
      baseUrl: config.getOrThrow("TARGET_API_BASE_URL"),
      forwardHeaders: ["authorization", "x-api-key"],
      timeoutMs: 15000,
    },
  }),
  inject: [ConfigService],
});

Released under the MIT License.