Skip to main content
These pages document exactly which OpenAPI fields MCP Blacksmith processes during generation — field by field, with support status and behavior notes. Use them to check whether a specific feature in your spec will be reflected in the generated server. This page covers OpenAPI 3.0 (all patch versions 3.0.0–3.0.4). The OAS 3.1 and OAS 3.2 pages document only what changed relative to this baseline.
Swagger 2.0 specs are automatically converted to OAS 3.0 before generation.

Data Types

OAS 3.0 defines primitive data types based on JSON Schema with format modifiers.

Extended Formats

MCP Blacksmith supports all 49 formats defined in the OAS Format Registry with runtime validators, plus additional formats commonly found in real-world API specifications. See the OAS 3.2 Format Registry section for the full registry breakdown.The following formats extend beyond what is defined in the OAS 3.0 base Data Types table above:

Custom Formats (not in OAS registry)

These additional formats are not part of the OAS Format Registry but are commonly found in real-world API specifications:Unknown format strings are kept as metadata on the generated field (visible to AI agents) but have no runtime validation.

OpenAPI Object (Root)

Info Object

Server Object

All three server levels are supported (operation > pathItem > root). The first entry at each level is used; you can override any resolved URL via SERVER_URL_* environment variables.

Server Variable Object

Only servers[0] is used at each level. Multiple server entries (e.g., production vs sandbox) are accepted but alternates beyond the first are not exposed. Users can override any resolved URL via the corresponding SERVER_URL_* or BASE_URL environment variable.

Paths Object

Path Item Object

Operation Object

Parameter Object

Core Fields

Serialization Fields

Serialization Style Values

Request Body Object

Media Type Object

Media type range matching (e.g., application/* per RFC 7231) is not implemented. Content type keys are matched literally.

Encoding Object

The Encoding Object is not supported. Generated servers send form and multipart bodies using standard encoding — per-property overrides (contentType, headers, style) are rarely needed in practice.

Responses

Response Object

Schema Object

JSON Schema Keywords

OAS Extension Keywords

Nullable type annotations (T | None) are generated correctly, but explicit null values cannot be sent to the upstream API. The MCP protocol implementation does not distinguish between an omitted parameter and one explicitly set to null — both arrive as None in the tool function. This is an MCP ecosystem limitation, not a generation issue.

Discriminator Object

Components Object

Reference Object

In OAS 3.0, sibling properties alongside $ref should be ignored. MCP Blacksmith implements OAS 3.1 superset behavior — select siblings (description, summary, default, deprecated, readOnly, writeOnly) are honored alongside $ref.

Security Scheme Object

OAuth Flows Object

OAS 3.2 adds a fifth flow, deviceAuthorization, which slots between clientCredentials and password in the priority order.
When a specification defines multiple OAuth2 flows on the same security scheme, the generator selects one flow based on security priority: authorizationCode > clientCredentials > deviceAuthorization > password > implicit. This ensures the server always uses the most secure available grant type. See Flow Selection for details.

OAuth Flow Object

Security Requirement Object

Example Object

Specification Extensions

Additional Generator Capabilities

Features that go beyond per-field processing of the OAS 3.0 specification:

Found an issue?

Generated server doesn’t match this reference? Let us know — we’ll fix it.