naftiko: 1.0.0-alpha2 info: title: Customer360 Context Composition description: A capability composing CRM, support, and billing into a unified Customer 360 context. tags: [Naftiko, Customer 360, Composition] created: '2026-05-01' modified: '2026-05-04' binds: - namespace: hubspot-env keys: {HUBSPOT_TOKEN: HUBSPOT_TOKEN} - namespace: zendesk-env keys: {ZENDESK_SUBDOMAIN: ZENDESK_SUBDOMAIN, ZENDESK_TOKEN: ZENDESK_TOKEN} - namespace: stripe-env keys: {STRIPE_API_KEY: STRIPE_API_KEY} capability: consumes: - namespace: hubspot type: http baseUri: https://api.hubapi.com authentication: {type: bearer, token: '{{HUBSPOT_TOKEN}}'} resources: - name: contact path: /crm/v3/objects/contacts/{{contact_id}} operations: - {name: get-contact, method: GET, inputParameters: [{name: contact_id, in: path}]} - namespace: zendesk type: http baseUri: https://{{ZENDESK_SUBDOMAIN}}.zendesk.com authentication: {type: bearer, token: '{{ZENDESK_TOKEN}}'} resources: - {name: tickets, path: /api/v2/tickets, operations: [{name: list-tickets, method: GET}]} - namespace: stripe type: http baseUri: https://api.stripe.com authentication: {type: bearer, token: '{{STRIPE_API_KEY}}'} resources: - name: customer path: /v1/customers/{{customer_id}} operations: - {name: get-stripe-customer, method: GET, inputParameters: [{name: customer_id, in: path}]} exposes: - type: rest address: 0.0.0.0 port: 8080 namespace: customer360-context-composition-rest description: REST surface for Customer 360. resources: - name: customer-360 path: /customers/{{contact_id}}/360 operations: - {method: GET, name: get-customer-360, inputParameters: [{name: contact_id, in: path, type: string}], call: hubspot.get-contact} - type: mcp address: 0.0.0.0 port: 3010 namespace: customer360-context-composition-mcp description: MCP for Customer 360. tools: - name: get-customer-360 hints: {readOnly: true} inputParameters: [{name: contact_id, type: string, required: true}] call: hubspot.get-contact - type: skill address: 0.0.0.0 port: 3011 namespace: customer360-context-composition-skills description: Skill for Customer 360. skills: - name: customer360-context-composition description: Composed Customer 360 context. location: file:///opt/naftiko/skills/customer360-context-composition allowed-tools: get-customer-360 tools: - {name: get-customer-360, from: {sourceNamespace: customer360-context-composition-mcp, action: get-customer-360}}