UNPKG

mcp-swagger-parser

Version:

Enterprise-grade OpenAPI/Swagger specification parser for Model Context Protocol (MCP) projects

242 lines 7.14 kB
/** * OpenAPI/Swagger 3.0 Specification Types * Based on the official OpenAPI 3.0 specification */ export interface OpenAPISpec { openapi: string; info: InfoObject; servers?: ServerObject[]; paths: PathsObject; components?: ComponentsObject; security?: SecurityRequirementObject[]; tags?: TagObject[]; externalDocs?: ExternalDocumentationObject; } export interface InfoObject { title: string; version: string; description?: string; termsOfService?: string; contact?: ContactObject; license?: LicenseObject; } export interface ContactObject { name?: string; url?: string; email?: string; } export interface LicenseObject { name: string; url?: string; } export interface ServerObject { url: string; description?: string; variables?: Record<string, ServerVariableObject>; } export interface ServerVariableObject { enum?: string[]; default: string; description?: string; } export interface PathsObject { [path: string]: PathItemObject; } export interface PathItemObject { $ref?: string; summary?: string; description?: string; get?: OperationObject; put?: OperationObject; post?: OperationObject; delete?: OperationObject; options?: OperationObject; head?: OperationObject; patch?: OperationObject; trace?: OperationObject; servers?: ServerObject[]; parameters?: (ParameterObject | ReferenceObject)[]; } export interface OperationObject { tags?: string[]; summary?: string; description?: string; externalDocs?: ExternalDocumentationObject; operationId?: string; parameters?: (ParameterObject | ReferenceObject)[]; requestBody?: RequestBodyObject | ReferenceObject; responses: ResponsesObject; callbacks?: Record<string, CallbackObject | ReferenceObject>; deprecated?: boolean; security?: SecurityRequirementObject[]; servers?: ServerObject[]; } export interface ExternalDocumentationObject { description?: string; url: string; } export interface ParameterObject { name: string; in: 'query' | 'header' | 'path' | 'cookie'; description?: string; required?: boolean; deprecated?: boolean; allowEmptyValue?: boolean; style?: string; explode?: boolean; allowReserved?: boolean; schema?: SchemaObject | ReferenceObject; example?: any; examples?: Record<string, ExampleObject | ReferenceObject>; content?: Record<string, MediaTypeObject>; } export interface RequestBodyObject { description?: string; content: Record<string, MediaTypeObject>; required?: boolean; } export interface MediaTypeObject { schema?: SchemaObject | ReferenceObject; example?: any; examples?: Record<string, ExampleObject | ReferenceObject>; encoding?: Record<string, EncodingObject>; } export interface EncodingObject { contentType?: string; headers?: Record<string, HeaderObject | ReferenceObject>; style?: string; explode?: boolean; allowReserved?: boolean; } export interface ResponsesObject { [httpStatusCode: string]: ResponseObject | ReferenceObject; } export interface ResponseObject { description: string; headers?: Record<string, HeaderObject | ReferenceObject>; content?: Record<string, MediaTypeObject>; links?: Record<string, LinkObject | ReferenceObject>; } export interface CallbackObject { [expression: string]: PathItemObject; } export interface ExampleObject { summary?: string; description?: string; value?: any; externalValue?: string; } export interface LinkObject { operationRef?: string; operationId?: string; parameters?: Record<string, any>; requestBody?: any; description?: string; server?: ServerObject; } export interface HeaderObject { description?: string; required?: boolean; deprecated?: boolean; allowEmptyValue?: boolean; style?: string; explode?: boolean; allowReserved?: boolean; schema?: SchemaObject | ReferenceObject; example?: any; examples?: Record<string, ExampleObject | ReferenceObject>; content?: Record<string, MediaTypeObject>; } export interface TagObject { name: string; description?: string; externalDocs?: ExternalDocumentationObject; } export interface ReferenceObject { $ref: string; } export interface SchemaObject { title?: string; multipleOf?: number; maximum?: number; exclusiveMaximum?: boolean; minimum?: number; exclusiveMinimum?: boolean; maxLength?: number; minLength?: number; pattern?: string; maxItems?: number; minItems?: number; uniqueItems?: boolean; maxProperties?: number; minProperties?: number; required?: string[]; enum?: any[]; type?: 'null' | 'boolean' | 'object' | 'array' | 'number' | 'string' | 'integer'; format?: string; properties?: Record<string, SchemaObject | ReferenceObject>; additionalProperties?: boolean | SchemaObject | ReferenceObject; items?: SchemaObject | ReferenceObject; allOf?: (SchemaObject | ReferenceObject)[]; oneOf?: (SchemaObject | ReferenceObject)[]; anyOf?: (SchemaObject | ReferenceObject)[]; not?: SchemaObject | ReferenceObject; description?: string; default?: any; example?: any; nullable?: boolean; discriminator?: DiscriminatorObject; readOnly?: boolean; writeOnly?: boolean; xml?: XMLObject; externalDocs?: ExternalDocumentationObject; deprecated?: boolean; } export interface DiscriminatorObject { propertyName: string; mapping?: Record<string, string>; } export interface XMLObject { name?: string; namespace?: string; prefix?: string; attribute?: boolean; wrapped?: boolean; } export interface ComponentsObject { schemas?: Record<string, SchemaObject | ReferenceObject>; responses?: Record<string, ResponseObject | ReferenceObject>; parameters?: Record<string, ParameterObject | ReferenceObject>; examples?: Record<string, ExampleObject | ReferenceObject>; requestBodies?: Record<string, RequestBodyObject | ReferenceObject>; headers?: Record<string, HeaderObject | ReferenceObject>; securitySchemes?: Record<string, SecuritySchemeObject | ReferenceObject>; links?: Record<string, LinkObject | ReferenceObject>; callbacks?: Record<string, CallbackObject | ReferenceObject>; } export interface SecuritySchemeObject { type: 'apiKey' | 'http' | 'oauth2' | 'openIdConnect'; description?: string; name?: string; in?: 'query' | 'header' | 'cookie'; scheme?: string; bearerFormat?: string; flows?: OAuthFlowsObject; openIdConnectUrl?: string; } export interface OAuthFlowsObject { implicit?: OAuthFlowObject; password?: OAuthFlowObject; clientCredentials?: OAuthFlowObject; authorizationCode?: OAuthFlowObject; } export interface OAuthFlowObject { authorizationUrl?: string; tokenUrl?: string; refreshUrl?: string; scopes: Record<string, string>; } export interface SecurityRequirementObject { [name: string]: string[]; } //# sourceMappingURL=openapi.d.ts.map