# 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}-customers-mcp-ai-mcp-proxy namespace: ${NAMESPACE} plugin: ai-mcp-proxy config: mode: conversion-listener include_consumer_groups: true tools: - annotations: title: List all customers read_only_hint: true idempotent_hint: true destructive_hint: false open_world_hint: false description: Retrieve a paginated list of all customers with their contact and credit information. method: GET name: list-customers 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: /customers/v1/customers/ 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 nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: type: object description: Customer information and contact details properties: customernumber: type: integer maximum: 2147483647 minimum: -2147483648 customername: type: string maxLength: 50 contactlastname: type: string maxLength: 50 contactfirstname: type: string maxLength: 50 phone: type: string maxLength: 50 addressline1: type: string maxLength: 50 addressline2: type: string nullable: true maxLength: 50 city: type: string maxLength: 50 state: type: string nullable: true maxLength: 50 postalcode: type: string nullable: true maxLength: 15 country: type: string maxLength: 50 creditlimit: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ nullable: true salesrepemployeenumber: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true required: - addressline1 - city - contactfirstname - contactlastname - country - customername - customernumber - phone - annotations: title: Get a specific customer read_only_hint: true idempotent_hint: true destructive_hint: false open_world_hint: false description: Retrieve detailed information about a specific customer by their customer number. method: GET name: get-customer parameters: - description: A unique value identifying this customer. in: path name: customernumber required: true schema: type: integer path: /customers/v1/customers/{customernumber}/ acl: allow: - admin - read_only - product_manager - customer - support scheme: http host: ${REST_HOSTNAME} responses: '200': content: application/json: schema: type: object description: Customer information and contact details properties: customernumber: type: integer maximum: 2147483647 minimum: -2147483648 customername: type: string maxLength: 50 contactlastname: type: string maxLength: 50 contactfirstname: type: string maxLength: 50 phone: type: string maxLength: 50 addressline1: type: string maxLength: 50 addressline2: type: string nullable: true maxLength: 50 city: type: string maxLength: 50 state: type: string nullable: true maxLength: 50 postalcode: type: string nullable: true maxLength: 15 country: type: string maxLength: 50 creditlimit: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ nullable: true salesrepemployeenumber: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true required: - addressline1 - city - contactfirstname - contactlastname - country - customername - customernumber - phone - annotations: title: Create a new customer read_only_hint: false idempotent_hint: false destructive_hint: false open_world_hint: false description: Add a new customer to the system with their contact details and credit limit. method: POST name: create-customer path: /customers/v1/customers/ request_body: content: application/json: schema: properties: addressline1: type: string addressline2: type: string city: type: string contactfirstname: type: string contactlastname: type: string country: type: string creditlimit: type: string customername: type: string customernumber: type: integer phone: type: string postalcode: type: string salesrepemployeenumber: type: integer state: type: string required: - addressline1 - city - contactfirstname - contactlastname - country - customername - customernumber - phone type: object required: true acl: allow: - admin scheme: http host: ${REST_HOSTNAME} responses: '201': content: application/json: schema: type: object description: Customer information and contact details properties: customernumber: type: integer maximum: 2147483647 minimum: -2147483648 customername: type: string maxLength: 50 contactlastname: type: string maxLength: 50 contactfirstname: type: string maxLength: 50 phone: type: string maxLength: 50 addressline1: type: string maxLength: 50 addressline2: type: string nullable: true maxLength: 50 city: type: string maxLength: 50 state: type: string nullable: true maxLength: 50 postalcode: type: string nullable: true maxLength: 15 country: type: string maxLength: 50 creditlimit: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ nullable: true salesrepemployeenumber: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true required: - addressline1 - city - contactfirstname - contactlastname - country - customername - customernumber - phone