# GENERATED — do not edit. Edit openapi.yaml or tools-policy.yaml, then: # k8s-platform/tools/generate-mcp-tools.py # # Produced by `deck file openapi2mcp`, then post-processed to add the ACLs, # the MCP behavioural annotations, the response schemas, the real upstream # host and the JSON-only bodies that Kong's generator does not emit. Each of # those is a documented gap — see k8s-platform/MCP-TOOL-GENERATION.md. apiVersion: configuration.konghq.com/v1 kind: KongPlugin metadata: name: ${NAME}-sales-mcp-ai-mcp-proxy namespace: ${NAMESPACE} plugin: ai-mcp-proxy config: mode: conversion-listener include_consumer_groups: true tools: - annotations: title: List all orders read_only_hint: true idempotent_hint: true destructive_hint: false open_world_hint: false description: Retrieve a paginated list of all customer orders with their status and details. method: GET name: list-orders parameters: - description: A page number within the paginated result set. in: query name: page required: false schema: type: integer - description: Number of results to return per page. in: query name: page_size required: false schema: type: integer path: /sales/v1/orders/ acl: allow: - admin - read_only - product_manager - customer - support scheme: http host: ${REST_HOSTNAME} responses: '200': content: application/json: schema: type: object properties: count: type: integer example: 123 next: type: - string - 'null' format: uri example: http://api.example.org/accounts/?page=4 previous: type: - string - 'null' format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: type: object description: Customer order information properties: ordernumber: type: integer maximum: 2147483647 minimum: -2147483648 orderdate: type: string format: date requireddate: type: string format: date shippeddate: type: - string - 'null' format: date status: type: string maxLength: 15 comments: type: - string - 'null' customernumber: type: integer maximum: 2147483647 minimum: -2147483648 required: - customernumber - orderdate - ordernumber - requireddate - status - annotations: title: Get a specific order read_only_hint: true idempotent_hint: true destructive_hint: false open_world_hint: false description: Retrieve detailed information about a specific order by its order number. method: GET name: get-order parameters: - description: A unique value identifying this order. in: path name: ordernumber required: true schema: type: integer path: /sales/v1/orders/{ordernumber}/ acl: allow: - admin - read_only - product_manager - customer - support scheme: http host: ${REST_HOSTNAME} responses: '200': content: application/json: schema: type: object description: Customer order information properties: ordernumber: type: integer maximum: 2147483647 minimum: -2147483648 orderdate: type: string format: date requireddate: type: string format: date shippeddate: type: - string - 'null' format: date status: type: string maxLength: 15 comments: type: - string - 'null' customernumber: type: integer maximum: 2147483647 minimum: -2147483648 required: - customernumber - orderdate - ordernumber - requireddate - status - annotations: title: Get order details by order read_only_hint: true idempotent_hint: true destructive_hint: false open_world_hint: false description: Retrieve all line items for a specific order. This endpoint supports order fulfillment and invoice generation. method: GET name: get-order-order-details parameters: - description: The order number in: path name: ordernumber required: true schema: type: integer - description: A page number within the paginated result set. in: query name: page required: false schema: type: integer - description: Number of results to return per page. in: query name: page_size required: false schema: type: integer path: /sales/v1/orders/{ordernumber}/order-details/ acl: allow: - admin - read_only - product_manager - customer - support scheme: http host: ${REST_HOSTNAME} responses: '200': content: application/json: schema: type: object properties: count: type: integer example: 123 next: type: - string - 'null' format: uri example: http://api.example.org/accounts/?page=4 previous: type: - string - 'null' format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: type: object description: Order line items with product details properties: id: type: integer readOnly: true quantityordered: type: integer maximum: 2147483647 minimum: -2147483648 priceeach: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ orderlinenumber: type: integer maximum: 32767 minimum: -32768 ordernumber: type: integer maximum: 2147483647 minimum: -2147483648 productcode: type: string required: - id - orderlinenumber - ordernumber - priceeach - productcode - quantityordered - annotations: title: Create a new order read_only_hint: false idempotent_hint: false destructive_hint: false open_world_hint: false description: Create a new customer order with order date, required date, and status information. method: POST name: create-order path: /sales/v1/orders/ request_body: content: application/json: schema: properties: comments: type: string customernumber: type: integer orderdate: type: string ordernumber: type: integer requireddate: type: string shippeddate: type: string status: type: string required: - customernumber - orderdate - ordernumber - requireddate - status type: object required: true acl: allow: - admin - customer - support scheme: http host: ${REST_HOSTNAME} responses: '201': content: application/json: schema: type: object description: Customer order information properties: ordernumber: type: integer maximum: 2147483647 minimum: -2147483648 orderdate: type: string format: date requireddate: type: string format: date shippeddate: type: - string - 'null' format: date status: type: string maxLength: 15 comments: type: - string - 'null' customernumber: type: integer maximum: 2147483647 minimum: -2147483648 required: - customernumber - orderdate - ordernumber - requireddate - status - annotations: title: List all order details read_only_hint: true idempotent_hint: true destructive_hint: false open_world_hint: false description: Retrieve a paginated list of all order line items with product and quantity information. Filter by product code to find what is committed on a reference, and by order status to count only orders still open. method: GET name: list-order-details parameters: - description: Only lines for this product reference. in: query name: productcode required: false schema: type: string - description: Only lines belonging to this order. in: query name: ordernumber required: false schema: type: integer - description: Only lines whose order has this status, e.g. In Process, On Hold, Shipped, Cancelled. An order that is Shipped or Cancelled commits no stock. in: query name: ordernumber__status required: false schema: type: string - description: A page number within the paginated result set. in: query name: page required: false schema: type: integer - description: Number of results to return per page. in: query name: page_size required: false schema: type: integer path: /sales/v1/orderdetails/ acl: allow: - admin - read_only - product_manager - customer - support scheme: http host: ${REST_HOSTNAME} responses: '200': content: application/json: schema: type: object properties: count: type: integer example: 123 next: type: - string - 'null' format: uri example: http://api.example.org/accounts/?page=4 previous: type: - string - 'null' format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: type: object description: Order line items with product details properties: id: type: integer readOnly: true quantityordered: type: integer maximum: 2147483647 minimum: -2147483648 priceeach: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ orderlinenumber: type: integer maximum: 32767 minimum: -32768 ordernumber: type: integer maximum: 2147483647 minimum: -2147483648 productcode: type: string required: - id - orderlinenumber - ordernumber - priceeach - productcode - quantityordered - annotations: title: Get a specific order detail read_only_hint: true idempotent_hint: true destructive_hint: false open_world_hint: false description: Retrieve a specific line item from an order using the composite key (orderNumber, productCode). method: GET name: get-order-detail parameters: - description: The order number in: path name: ordernumber required: true schema: type: integer - description: The product code in: path name: productcode required: true schema: type: string path: /sales/v1/orderdetails/{ordernumber}/{productcode}/ acl: allow: - admin - read_only - product_manager - customer - support scheme: http host: ${REST_HOSTNAME} responses: '200': content: application/json: schema: type: object description: Order line items with product details properties: id: type: integer readOnly: true quantityordered: type: integer maximum: 2147483647 minimum: -2147483648 priceeach: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ orderlinenumber: type: integer maximum: 32767 minimum: -32768 ordernumber: type: integer maximum: 2147483647 minimum: -2147483648 productcode: type: string required: - id - orderlinenumber - ordernumber - priceeach - productcode - quantityordered - annotations: title: Create a new order detail read_only_hint: false idempotent_hint: false destructive_hint: false open_world_hint: false description: Add a new line item to an existing order with product code, quantity, and price. method: POST name: create-order-detail path: /sales/v1/orderdetails/ request_body: content: application/json: schema: properties: orderlinenumber: type: integer ordernumber: type: integer priceeach: type: string productcode: type: string quantityordered: type: integer required: - orderlinenumber - ordernumber - priceeach - productcode - quantityordered type: object required: true acl: allow: - admin - customer - support scheme: http host: ${REST_HOSTNAME} responses: '201': content: application/json: schema: type: object description: Order line items with product details properties: id: type: integer readOnly: true quantityordered: type: integer maximum: 2147483647 minimum: -2147483648 priceeach: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ orderlinenumber: type: integer maximum: 32767 minimum: -32768 ordernumber: type: integer maximum: 2147483647 minimum: -2147483648 productcode: type: string required: - id - orderlinenumber - ordernumber - priceeach - productcode - quantityordered