naftiko: 1.0.0-alpha2 info: label: m3ter API — Meter description: 'm3ter API — Meter. 5 operations. Lead operation: List Meters. Self-contained Naftiko capability covering one M3ter business surface.' tags: - M3ter - Meter created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: M3TER_API_KEY: M3TER_API_KEY capability: consumes: - type: http namespace: m3ter-meter baseUri: https://api.m3ter.com description: m3ter API — Meter business capability. Self-contained, no shared references. resources: - name: organizations-orgId-meters path: /organizations/{orgId}/meters operations: - name: listmeters method: GET description: List Meters outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: UUID of the Organization. The Organization represents your company as a direct customer of the m3ter service. required: true - name: pageSize in: query type: integer description: Number of Meters to retrieve per page. - name: nextToken in: query type: string description: '`nextToken` for multi page retrievals.' - name: productId in: query type: array description: The UUIDs of the Products to retrieve Meters for. - name: ids in: query type: array description: List of Meter IDs to retrieve. - name: codes in: query type: array description: List of Meter codes to retrieve. These are the unique short codes that identify each Meter. - name: postmeter method: POST description: Create Meter outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: UUID of the organization. The Organization represents your company as a direct customer of the m3ter service. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: organizations-orgId-meters-id path: /organizations/{orgId}/meters/{id} operations: - name: getmeter method: GET description: Retrieve Meter outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: UUID of the organization. The Organization represents your company as a direct customer of the m3ter service. required: true - name: id in: path type: string description: The UUID of the Meter to retrieve. required: true - name: putmeter method: PUT description: Update Meter outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: UUID of the organization. The Organization represents your company as a direct customer of the m3ter service. required: true - name: id in: path type: string description: The UUID of the Meter to update. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deletemeter method: DELETE description: Delete Meter outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: UUID of the organization. The Organization represents your company as a direct customer of the m3ter service. required: true - name: id in: path type: string description: The UUID of the Meter to delete. required: true authentication: type: bearer token: '{{env.M3TER_API_KEY}}' exposes: - type: rest namespace: m3ter-meter-rest port: 8080 description: REST adapter for m3ter API — Meter. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/organizations/{orgid}/meters name: organizations-orgid-meters description: REST surface for organizations-orgId-meters. operations: - method: GET name: listmeters description: List Meters call: m3ter-meter.listmeters with: orgId: rest.orgId pageSize: rest.pageSize nextToken: rest.nextToken productId: rest.productId ids: rest.ids codes: rest.codes outputParameters: - type: object mapping: $. - method: POST name: postmeter description: Create Meter call: m3ter-meter.postmeter with: orgId: rest.orgId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/organizations/{orgid}/meters/{id} name: organizations-orgid-meters-id description: REST surface for organizations-orgId-meters-id. operations: - method: GET name: getmeter description: Retrieve Meter call: m3ter-meter.getmeter with: orgId: rest.orgId id: rest.id outputParameters: - type: object mapping: $. - method: PUT name: putmeter description: Update Meter call: m3ter-meter.putmeter with: orgId: rest.orgId id: rest.id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletemeter description: Delete Meter call: m3ter-meter.deletemeter with: orgId: rest.orgId id: rest.id outputParameters: - type: object mapping: $. - type: mcp namespace: m3ter-meter-mcp port: 9090 transport: http description: MCP adapter for m3ter API — Meter. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-meters description: List Meters hints: readOnly: true destructive: false idempotent: true call: m3ter-meter.listmeters with: orgId: tools.orgId pageSize: tools.pageSize nextToken: tools.nextToken productId: tools.productId ids: tools.ids codes: tools.codes outputParameters: - type: object mapping: $. - name: create-meter description: Create Meter hints: readOnly: false destructive: false idempotent: false call: m3ter-meter.postmeter with: orgId: tools.orgId body: tools.body outputParameters: - type: object mapping: $. - name: retrieve-meter description: Retrieve Meter hints: readOnly: true destructive: false idempotent: true call: m3ter-meter.getmeter with: orgId: tools.orgId id: tools.id outputParameters: - type: object mapping: $. - name: update-meter description: Update Meter hints: readOnly: false destructive: false idempotent: true call: m3ter-meter.putmeter with: orgId: tools.orgId id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: delete-meter description: Delete Meter hints: readOnly: false destructive: true idempotent: true call: m3ter-meter.deletemeter with: orgId: tools.orgId id: tools.id outputParameters: - type: object mapping: $.