MCP-OpenAPI
by rmasters
- mcp-openapi
- tests
- specs
{
"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.\nYou can find out more about\nSwagger 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"
}
}
}
},
"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"
}
}
}
}
}
}