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: $. } ] }