Skip to main content
Glama
swagger-spec.json13.1 kB
{ "openapi": "3.0.0", "info": { "title": "MCPify Demo API", "version": "1.0.0", "description": "A simple Express API to test MCPify proxy" }, "servers": [ { "url": "http://localhost:3001", "description": "Development server" } ], "tags": [ { "name": "Users", "description": "API endpoints for user management" }, { "name": "Products", "description": "API endpoints for product catalog" }, { "name": "Orders", "description": "API endpoints for order processing" } ], "paths": { "/users": { "get": { "summary": "Retrieve a list of users", "description": "Returns a list of all users", "operationId": "listUsers", "tags": ["Users"], "responses": { "200": { "description": "A list of users", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/User" } } } } } } }, "post": { "summary": "Create a new user", "description": "Adds a new user to the system", "operationId": "createUser", "tags": ["Users"], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": ["name", "email"], "properties": { "name": { "type": "string", "description": "User's full name" }, "email": { "type": "string", "description": "User's email address" }, "role": { "type": "string", "enum": ["admin", "user"], "default": "user", "description": "User's role in the system" } } } } } }, "responses": { "201": { "description": "User created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/User" } } } }, "400": { "description": "Invalid request data" } } } }, "/users/{id}": { "get": { "summary": "Get a user by ID", "description": "Returns a single user by ID", "operationId": "getUserById", "tags": ["Users"], "parameters": [ { "in": "path", "name": "id", "required": true, "schema": { "type": "integer" }, "description": "Numeric ID of the user to retrieve" } ], "responses": { "200": { "description": "User found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/User" } } } }, "404": { "description": "User not found" } } } }, "/products": { "get": { "summary": "Retrieve a list of products", "description": "Returns a list of all products", "operationId": "listProducts", "tags": ["Products"], "responses": { "200": { "description": "A list of products", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Product" } } } } } } }, "post": { "summary": "Create a new product", "description": "Adds a new product to the system", "operationId": "createProduct", "tags": ["Products"], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": ["name", "price"], "properties": { "name": { "type": "string", "description": "Product name" }, "price": { "type": "number", "description": "Product price" }, "category": { "type": "string", "description": "Product category" }, "inStock": { "type": "boolean", "description": "Whether the product is in stock" } } } } } }, "responses": { "201": { "description": "Product created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Product" } } } }, "400": { "description": "Invalid request data" } } } }, "/products/{id}": { "get": { "summary": "Get a product by ID", "description": "Returns a single product by ID", "operationId": "getProductById", "tags": ["Products"], "parameters": [ { "in": "path", "name": "id", "required": true, "schema": { "type": "integer" }, "description": "Numeric ID of the product to retrieve" } ], "responses": { "200": { "description": "Product found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Product" } } } }, "404": { "description": "Product not found" } } } }, "/orders": { "post": { "summary": "Create a new order", "description": "Places a new order for a product", "operationId": "createOrder", "tags": ["Orders"], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": ["userId", "productId", "quantity"], "properties": { "userId": { "type": "integer", "description": "ID of the user placing the order" }, "productId": { "type": "integer", "description": "ID of the product being ordered" }, "quantity": { "type": "integer", "minimum": 1, "description": "Quantity of the product being ordered" } } } } } }, "responses": { "201": { "description": "Order created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Order" } } } }, "400": { "description": "Invalid input or product not in stock" }, "404": { "description": "User or product not found" } } }, "get": { "summary": "Retrieve a list of orders", "description": "Returns a list of all orders", "operationId": "listOrders", "tags": ["Orders"], "responses": { "200": { "description": "A list of orders", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Order" } } } } } } } }, "/orders/{id}": { "get": { "summary": "Get an order by ID", "description": "Returns a single order by ID", "operationId": "getOrderById", "tags": ["Orders"], "parameters": [ { "in": "path", "name": "id", "required": true, "schema": { "type": "integer" }, "description": "Numeric ID of the order to retrieve" } ], "responses": { "200": { "description": "Order found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Order" } } } }, "404": { "description": "Order not found" } } } }, "/orders/{id}/status": { "put": { "summary": "Update an order's status", "description": "Updates the status of an existing order", "operationId": "updateOrderStatus", "tags": ["Orders"], "parameters": [ { "in": "path", "name": "id", "required": true, "schema": { "type": "integer" }, "description": "Numeric ID of the order to update" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": ["status"], "properties": { "status": { "type": "string", "enum": ["pending", "completed", "cancelled"], "description": "New status for the order" } } } } } }, "responses": { "200": { "description": "Order status updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Order" } } } }, "400": { "description": "Invalid status value" }, "404": { "description": "Order not found" } } } } }, "components": { "schemas": { "User": { "type": "object", "required": ["id", "name", "email"], "properties": { "id": { "type": "integer", "description": "The user ID" }, "name": { "type": "string", "description": "The user's name" }, "email": { "type": "string", "description": "The user's email" }, "role": { "type": "string", "enum": ["admin", "user"], "description": "The user's role" } } }, "Product": { "type": "object", "required": ["id", "name", "price"], "properties": { "id": { "type": "integer", "description": "The product ID" }, "name": { "type": "string", "description": "The product name" }, "price": { "type": "number", "description": "The product price" }, "category": { "type": "string", "description": "The product category" }, "inStock": { "type": "boolean", "description": "Whether the product is in stock" } } }, "Order": { "type": "object", "required": ["id", "userId", "productId", "quantity"], "properties": { "id": { "type": "integer", "description": "The order ID" }, "userId": { "type": "integer", "description": "The user ID placing the order" }, "productId": { "type": "integer", "description": "The product being ordered" }, "quantity": { "type": "integer", "description": "The quantity ordered" }, "status": { "type": "string", "enum": ["pending", "completed", "cancelled"], "description": "The order status" } } } } } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/wycats/mcpify'

If you have feedback or need assistance with the MCP directory API, please join our Discord server