MCP-OpenAPI

openapi: 3.1.0 info: title: Swagger Petstore - OpenAPI 3.1 description: |- This is a sample Pet Store Server based on the OpenAPI 3.1 specification. You can find out more about Swagger at [http://swagger.io](http://swagger.io). termsOfService: http://swagger.io/terms/ contact: email: apiteam@swagger.io license: name: Apache 2.0 AND (MIT OR GPL-2.0-only) identifier: Apache-2.0 AND (MIT OR GPL-2.0-only) version: 1.0.7 summary: Pet Store 3.1 x-namespace: swagger externalDocs: description: Find out more about Swagger url: http://swagger.io servers: - url: /api/v31 tags: - name: pet description: Everything about your Pets externalDocs: description: Find out more url: http://swagger.io - name: store description: Access to Petstore orders externalDocs: description: Find out more about our store url: http://swagger.io - name: user description: Operations about user paths: /pet: put: tags: - pet summary: Update an existing pet description: Update an existing pet by Id operationId: updatePet requestBody: description: Pet object that needs to be updated in the store content: application/json: schema: $ref: '#/components/schemas/Pet' description: A Pet in JSON Format required: - id writeOnly: true application/xml: schema: $ref: '#/components/schemas/Pet' description: A Pet in XML Format required: - id writeOnly: true required: true responses: "200": description: Successful operation content: application/xml: schema: $ref: '#/components/schemas/Pet' description: A Pet in XML Format readOnly: true application/json: schema: $ref: '#/components/schemas/Pet' description: A Pet in JSON Format readOnly: true "400": description: Invalid ID supplied "404": description: Pet not found "405": description: Validation exception security: - petstore_auth: - write:pets - read:pets post: tags: - pet summary: Add a new pet to the store description: Add a new pet to the store operationId: addPet requestBody: description: Create a new pet in the store content: application/json: schema: $ref: '#/components/schemas/Pet' description: A Pet in JSON Format required: - id writeOnly: true application/xml: schema: $ref: '#/components/schemas/Pet' description: A Pet in XML Format required: - id writeOnly: true required: true responses: "200": description: Successful operation content: application/xml: schema: $ref: '#/components/schemas/Pet' description: A Pet in XML Format readOnly: true application/json: schema: $ref: '#/components/schemas/Pet' description: A Pet in JSON Format readOnly: true "405": description: Invalid input security: - petstore_auth: - write:pets - read:pets /pet/{petId}: get: tags: - pets summary: Find pet by ID description: Returns a pet when 0 < ID <= 10. ID > 10 or nonintegers will simulate API error conditions operationId: getPetById parameters: - name: petId in: path description: ID of pet that needs to be fetched required: true schema: type: integer format: int64 description: param ID of pet that needs to be fetched exclusiveMaximum: 10 exclusiveMinimum: 1 responses: default: description: The pet content: application/json: schema: $ref: '#/components/schemas/Pet' description: A Pet in JSON format application/xml: schema: $ref: '#/components/schemas/Pet' description: A Pet in XML format "400": description: Invalid ID supplied "404": description: Pet not found security: - petstore_auth: - write:pets - read:pets - api_key: [] components: schemas: Category: $id: /api/v31/components/schemas/category description: Category properties: id: type: integer format: int64 example: 1 name: type: string example: Dogs xml: name: Category Pet: $schema: https://json-schema.org/draft/2020-12/schema description: Pet properties: id: type: integer format: int64 example: 10 category: $ref: '#/components/schemas/Category' description: Pet Category name: type: string example: doggie photoUrls: type: array items: type: string xml: name: photoUrl xml: wrapped: true tags: type: array items: $ref: '#/components/schemas/Tag' xml: wrapped: true status: type: string description: pet status in the store enum: - available - pending - sold availableInstances: type: integer format: int32 example: 7 exclusiveMaximum: 10 exclusiveMinimum: 1 swagger-extension: true petDetailsId: type: integer format: int64 $ref: /api/v31/components/schemas/petdetails#pet_details_id petDetails: $ref: /api/v31/components/schemas/petdetails required: - name - photoUrls xml: name: Pet PetDetails: $id: /api/v31/components/schemas/petdetails $schema: https://json-schema.org/draft/2020-12/schema $vocabulary: https://spec.openapis.org/oas/3.1/schema-base properties: id: type: integer format: int64 $anchor: pet_details_id example: 10 category: $ref: /api/v31/components/schemas/category description: PetDetails Category tag: $ref: /api/v31/components/schemas/tag xml: name: PetDetails Tag: $id: /api/v31/components/schemas/tag properties: id: type: integer format: int64 name: type: string xml: name: Tag securitySchemes: petstore_auth: type: oauth2 flows: implicit: authorizationUrl: https://petstore3.swagger.io/oauth/authorize scopes: write:pets: modify pets in your account read:pets: read your pets # EDIT: FastAPI's OpenAPI parser doesn't support this #mutual_tls: # type: mutualTLS api_key: type: apiKey name: api_key in: header webhooks: newPet: post: requestBody: description: Information about a new pet in the system content: application/json: schema: $ref: '#/components/schemas/Pet' description: Webhook Pet responses: "200": description: Return a 200 status to indicate that the data was received successfully