naftiko: 1.0.0-alpha2 info: label: Metronome description: 'Metronome. 3 operations. Lead operation: Create a billable metric. Self-contained Naftiko capability covering one Metronome business surface.' tags: - Metronome created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: METRONOME_API_KEY: METRONOME_API_KEY capability: consumes: - type: http namespace: metronome-general baseUri: https://api.metronome.com description: Metronome business capability. Self-contained, no shared references. resources: - name: v1-billable-metrics path: /v1/billable-metrics operations: - name: createbillablemetricv1 method: POST description: Create a billable metric outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: v1-integrations-log path: /v1/integrations/log operations: - name: integrationcloudwatchloggerv1 method: POST description: Log events from integration services to Cloudwatch outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: v1-packages-list path: /v1/packages/list operations: - name: listpackagesv1 method: POST description: List all packages outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false authentication: type: bearer token: '{{env.METRONOME_API_KEY}}' exposes: - type: rest namespace: metronome-general-rest port: 8080 description: REST adapter for Metronome. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/billable-metrics name: v1-billable-metrics description: REST surface for v1-billable-metrics. operations: - method: POST name: createbillablemetricv1 description: Create a billable metric call: metronome-general.createbillablemetricv1 with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/integrations/log name: v1-integrations-log description: REST surface for v1-integrations-log. operations: - method: POST name: integrationcloudwatchloggerv1 description: Log events from integration services to Cloudwatch call: metronome-general.integrationcloudwatchloggerv1 with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/packages/list name: v1-packages-list description: REST surface for v1-packages-list. operations: - method: POST name: listpackagesv1 description: List all packages call: metronome-general.listpackagesv1 with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: metronome-general-mcp port: 9090 transport: http description: MCP adapter for Metronome. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: create-billable-metric description: Create a billable metric hints: readOnly: false destructive: false idempotent: false call: metronome-general.createbillablemetricv1 with: body: tools.body outputParameters: - type: object mapping: $. - name: log-events-integration-services-cloudwatch description: Log events from integration services to Cloudwatch hints: readOnly: false destructive: false idempotent: false call: metronome-general.integrationcloudwatchloggerv1 with: body: tools.body outputParameters: - type: object mapping: $. - name: list-all-packages description: List all packages hints: readOnly: true destructive: false idempotent: false call: metronome-general.listpackagesv1 with: body: tools.body outputParameters: - type: object mapping: $.