naftiko: 1.0.0-alpha2 info: label: Grafana HTTP API — Folders description: 'Grafana HTTP API — Folders. 5 operations. Lead operation: List all folders. Self-contained Naftiko capability covering one Grafana business surface.' tags: - Grafana - Folders created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GRAFANA_API_KEY: GRAFANA_API_KEY capability: consumes: - type: http namespace: grafana-folders baseUri: https://{instance}.grafana.net/api description: Grafana HTTP API — Folders business capability. Self-contained, no shared references. resources: - name: folders path: /folders operations: - name: getfolders method: GET description: List all folders outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: limit in: query type: integer - name: page in: query type: integer - name: createfolder method: POST description: Create a folder outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: folders-uid path: /folders/{uid} operations: - name: getfolderbyuid method: GET description: Get folder by UID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: uid in: path type: string required: true - name: updatefolder method: PUT description: Update folder outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: uid in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deletefolder method: DELETE description: Delete folder outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: uid in: path type: string required: true authentication: type: bearer token: '{{env.GRAFANA_API_KEY}}' exposes: - type: rest namespace: grafana-folders-rest port: 8080 description: REST adapter for Grafana HTTP API — Folders. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/folders name: folders description: REST surface for folders. operations: - method: GET name: getfolders description: List all folders call: grafana-folders.getfolders with: limit: rest.limit page: rest.page outputParameters: - type: object mapping: $. - method: POST name: createfolder description: Create a folder call: grafana-folders.createfolder with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/folders/{uid} name: folders-uid description: REST surface for folders-uid. operations: - method: GET name: getfolderbyuid description: Get folder by UID call: grafana-folders.getfolderbyuid with: uid: rest.uid outputParameters: - type: object mapping: $. - method: PUT name: updatefolder description: Update folder call: grafana-folders.updatefolder with: uid: rest.uid body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletefolder description: Delete folder call: grafana-folders.deletefolder with: uid: rest.uid outputParameters: - type: object mapping: $. - type: mcp namespace: grafana-folders-mcp port: 9090 transport: http description: MCP adapter for Grafana HTTP API — Folders. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-all-folders description: List all folders hints: readOnly: true destructive: false idempotent: true call: grafana-folders.getfolders with: limit: tools.limit page: tools.page outputParameters: - type: object mapping: $. - name: create-folder description: Create a folder hints: readOnly: false destructive: false idempotent: false call: grafana-folders.createfolder with: body: tools.body outputParameters: - type: object mapping: $. - name: get-folder-uid description: Get folder by UID hints: readOnly: true destructive: false idempotent: true call: grafana-folders.getfolderbyuid with: uid: tools.uid outputParameters: - type: object mapping: $. - name: update-folder description: Update folder hints: readOnly: false destructive: false idempotent: true call: grafana-folders.updatefolder with: uid: tools.uid body: tools.body outputParameters: - type: object mapping: $. - name: delete-folder description: Delete folder hints: readOnly: false destructive: true idempotent: true call: grafana-folders.deletefolder with: uid: tools.uid outputParameters: - type: object mapping: $.