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 withformat 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.