naftiko: 1.0.0-alpha2 info: label: Vendure Admin API — Customers description: >- Vendure Admin API capability for customer and customer-group management. Requires Read/Update Customer permissions. tags: - Vendure - Admin - Customers - CRM created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: VENDURE_ADMIN_API_URL: VENDURE_ADMIN_API_URL VENDURE_ADMIN_TOKEN: VENDURE_ADMIN_TOKEN capability: consumes: - type: http namespace: admin-customers baseUri: '{{env.VENDURE_ADMIN_API_URL}}' description: Vendure Admin GraphQL endpoint for customer operations. resources: - name: admin-graphql path: / operations: - { name: queryCustomers, method: POST, description: List customers., outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ], inputParameters: [ { name: body, in: body, type: object, required: true } ] } - { name: queryCustomer, method: POST, description: Get a customer., outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ], inputParameters: [ { name: body, in: body, type: object, required: true } ] } - { name: createCustomer, method: POST, description: Create a customer., outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ], inputParameters: [ { name: body, in: body, type: object, required: true } ] } - { name: updateCustomer, method: POST, description: Update a customer., outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ], inputParameters: [ { name: body, in: body, type: object, required: true } ] } - { name: deleteCustomer, method: POST, description: Delete a customer., outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ], inputParameters: [ { name: body, in: body, type: object, required: true } ] } - { name: createCustomerAddress, method: POST, description: Add an address to a customer., outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ], inputParameters: [ { name: body, in: body, type: object, required: true } ] } - { name: queryCustomerGroups, method: POST, description: List customer groups., outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ], inputParameters: [ { name: body, in: body, type: object, required: true } ] } - { name: createCustomerGroup, method: POST, description: Create a customer group., outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ], inputParameters: [ { name: body, in: body, type: object, required: true } ] } - { name: addCustomersToGroup, method: POST, description: Add customers to a group., outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ], inputParameters: [ { name: body, in: body, type: object, required: true } ] } authentication: type: bearer token: '{{env.VENDURE_ADMIN_TOKEN}}' exposes: - type: rest namespace: admin-customers-rest port: 8080 description: REST adapter exposing Admin customer operations. resources: - { path: /v1/admin/customers/query, name: customers, operations: [ { method: POST, name: queryCustomers, call: admin-customers.queryCustomers, with: { body: rest.body }, outputParameters: [ { type: object, mapping: $. } ] } ] } - { path: /v1/admin/customer/query, name: customer, operations: [ { method: POST, name: queryCustomer, call: admin-customers.queryCustomer, with: { body: rest.body }, outputParameters: [ { type: object, mapping: $. } ] } ] } - { path: /v1/admin/customer/create, name: customer-create, operations: [ { method: POST, name: createCustomer, call: admin-customers.createCustomer, with: { body: rest.body }, outputParameters: [ { type: object, mapping: $. } ] } ] } - { path: /v1/admin/customer/update, name: customer-update, operations: [ { method: POST, name: updateCustomer, call: admin-customers.updateCustomer, with: { body: rest.body }, outputParameters: [ { type: object, mapping: $. } ] } ] } - { path: /v1/admin/customer/delete, name: customer-delete, operations: [ { method: POST, name: deleteCustomer, call: admin-customers.deleteCustomer, with: { body: rest.body }, outputParameters: [ { type: object, mapping: $. } ] } ] } - { path: /v1/admin/customer/address, name: customer-address, operations: [ { method: POST, name: createCustomerAddress, call: admin-customers.createCustomerAddress, with: { body: rest.body }, outputParameters: [ { type: object, mapping: $. } ] } ] } - { path: /v1/admin/customer-groups/query, name: customer-groups, operations: [ { method: POST, name: queryCustomerGroups, call: admin-customers.queryCustomerGroups, with: { body: rest.body }, outputParameters: [ { type: object, mapping: $. } ] } ] } - { path: /v1/admin/customer-group/create, name: customer-group-create, operations: [ { method: POST, name: createCustomerGroup, call: admin-customers.createCustomerGroup, with: { body: rest.body }, outputParameters: [ { type: object, mapping: $. } ] } ] } - { path: /v1/admin/customer-group/add-customers, name: customer-group-add, operations: [ { method: POST, name: addCustomersToGroup, call: admin-customers.addCustomersToGroup, with: { body: rest.body }, outputParameters: [ { type: object, mapping: $. } ] } ] } - type: mcp namespace: admin-customers-mcp port: 9090 transport: http description: MCP adapter — one tool per Admin customer operation. tools: - { name: vendure-admin-list-customers, description: List customers., hints: { readOnly: true, destructive: false, idempotent: true }, call: admin-customers.queryCustomers, with: { body: tools.body }, outputParameters: [ { type: object, mapping: $. } ] } - { name: vendure-admin-get-customer, description: Get a customer., hints: { readOnly: true, destructive: false, idempotent: true }, call: admin-customers.queryCustomer, with: { body: tools.body }, outputParameters: [ { type: object, mapping: $. } ] } - { name: vendure-admin-create-customer, description: Create a customer., hints: { readOnly: false, destructive: false, idempotent: false }, call: admin-customers.createCustomer, with: { body: tools.body }, outputParameters: [ { type: object, mapping: $. } ] } - { name: vendure-admin-update-customer, description: Update a customer., hints: { readOnly: false, destructive: false, idempotent: true }, call: admin-customers.updateCustomer, with: { body: tools.body }, outputParameters: [ { type: object, mapping: $. } ] } - { name: vendure-admin-delete-customer, description: Delete a customer., hints: { readOnly: false, destructive: true, idempotent: true }, call: admin-customers.deleteCustomer, with: { body: tools.body }, outputParameters: [ { type: object, mapping: $. } ] } - { name: vendure-admin-add-customer-address, description: Add an address to a customer., hints: { readOnly: false, destructive: false, idempotent: false }, call: admin-customers.createCustomerAddress, with: { body: tools.body }, outputParameters: [ { type: object, mapping: $. } ] } - { name: vendure-admin-list-customer-groups, description: List customer groups., hints: { readOnly: true, destructive: false, idempotent: true }, call: admin-customers.queryCustomerGroups, with: { body: tools.body }, outputParameters: [ { type: object, mapping: $. } ] } - { name: vendure-admin-create-customer-group, description: Create a customer group., hints: { readOnly: false, destructive: false, idempotent: false }, call: admin-customers.createCustomerGroup, with: { body: tools.body }, outputParameters: [ { type: object, mapping: $. } ] } - { name: vendure-admin-add-customers-to-group, description: Add customers to a group., hints: { readOnly: false, destructive: false, idempotent: false }, call: admin-customers.addCustomersToGroup, with: { body: tools.body }, outputParameters: [ { type: object, mapping: $. } ] }