naftiko: 1.0.0-alpha2 info: label: Grafana — Reports description: 'Grafana — Reports. 12 operations. Lead operation: Grafana Get Custom Permissions Report. Self-contained Naftiko capability covering one Grafana business surface.' tags: - Grafana - Reports created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GRAFANA_API_KEY: GRAFANA_API_KEY capability: consumes: - type: http namespace: grafana-reports baseUri: http://{defaultHost} description: Grafana — Reports business capability. Self-contained, no shared references. resources: - name: licensing-custom-permissions path: /licensing/custom-permissions operations: - name: getcustompermissionsreport method: GET description: Grafana Get Custom Permissions Report outputRawFormat: json outputParameters: - name: result type: object value: $. - name: reports path: /reports operations: - name: getreports method: GET description: Grafana Get Reports outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createreport method: POST description: Grafana Create Report outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: reports-dashboards-uid path: /reports/dashboards/{uid} operations: - name: getreportsbydashboarduid method: GET description: Grafana Get Reports By Dashboard UID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: uid in: path type: string required: true - name: reports-email path: /reports/email operations: - name: sendreport method: POST description: Grafana Send Report outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: reports-render-csvs path: /reports/render/csvs operations: - name: renderreportcsvs method: GET description: Grafana Render Report CS Vs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: dashboards in: query type: string - name: title in: query type: string - name: reports-render-pdfs path: /reports/render/pdfs operations: - name: renderreportpdfs method: GET description: Grafana Render Report PD Fs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: dashboards in: query type: string - name: orientation in: query type: string - name: layout in: query type: string - name: title in: query type: string - name: scaleFactor in: query type: string - name: includeTables in: query type: string - name: reports-settings path: /reports/settings operations: - name: getreportsettings method: GET description: Grafana Get Report Settings outputRawFormat: json outputParameters: - name: result type: object value: $. - name: savereportsettings method: POST description: Grafana Save Report Settings outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: reports-id path: /reports/{id} operations: - name: getreport method: GET description: Grafana Get Report outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer required: true - name: updatereport method: PUT description: Grafana Update Report outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deletereport method: DELETE description: Grafana Delete Report outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer required: true authentication: type: apikey key: Authorization value: '{{env.GRAFANA_API_KEY}}' placement: header exposes: - type: rest namespace: grafana-reports-rest port: 8080 description: REST adapter for Grafana — Reports. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/licensing/custom-permissions name: licensing-custom-permissions description: REST surface for licensing-custom-permissions. operations: - method: GET name: getcustompermissionsreport description: Grafana Get Custom Permissions Report call: grafana-reports.getcustompermissionsreport outputParameters: - type: object mapping: $. - path: /v1/reports name: reports description: REST surface for reports. operations: - method: GET name: getreports description: Grafana Get Reports call: grafana-reports.getreports outputParameters: - type: object mapping: $. - method: POST name: createreport description: Grafana Create Report call: grafana-reports.createreport with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/reports/dashboards/{uid} name: reports-dashboards-uid description: REST surface for reports-dashboards-uid. operations: - method: GET name: getreportsbydashboarduid description: Grafana Get Reports By Dashboard UID call: grafana-reports.getreportsbydashboarduid with: uid: rest.uid outputParameters: - type: object mapping: $. - path: /v1/reports/email name: reports-email description: REST surface for reports-email. operations: - method: POST name: sendreport description: Grafana Send Report call: grafana-reports.sendreport with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/reports/render/csvs name: reports-render-csvs description: REST surface for reports-render-csvs. operations: - method: GET name: renderreportcsvs description: Grafana Render Report CS Vs call: grafana-reports.renderreportcsvs with: dashboards: rest.dashboards title: rest.title outputParameters: - type: object mapping: $. - path: /v1/reports/render/pdfs name: reports-render-pdfs description: REST surface for reports-render-pdfs. operations: - method: GET name: renderreportpdfs description: Grafana Render Report PD Fs call: grafana-reports.renderreportpdfs with: dashboards: rest.dashboards orientation: rest.orientation layout: rest.layout title: rest.title scaleFactor: rest.scaleFactor includeTables: rest.includeTables outputParameters: - type: object mapping: $. - path: /v1/reports/settings name: reports-settings description: REST surface for reports-settings. operations: - method: GET name: getreportsettings description: Grafana Get Report Settings call: grafana-reports.getreportsettings outputParameters: - type: object mapping: $. - method: POST name: savereportsettings description: Grafana Save Report Settings call: grafana-reports.savereportsettings with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/reports/{id} name: reports-id description: REST surface for reports-id. operations: - method: GET name: getreport description: Grafana Get Report call: grafana-reports.getreport with: id: rest.id outputParameters: - type: object mapping: $. - method: PUT name: updatereport description: Grafana Update Report call: grafana-reports.updatereport with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletereport description: Grafana Delete Report call: grafana-reports.deletereport with: id: rest.id outputParameters: - type: object mapping: $. - type: mcp namespace: grafana-reports-mcp port: 9090 transport: http description: MCP adapter for Grafana — Reports. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: grafana-get-custom-permissions-report description: Grafana Get Custom Permissions Report hints: readOnly: true destructive: false idempotent: true call: grafana-reports.getcustompermissionsreport outputParameters: - type: object mapping: $. - name: grafana-get-reports description: Grafana Get Reports hints: readOnly: true destructive: false idempotent: true call: grafana-reports.getreports outputParameters: - type: object mapping: $. - name: grafana-create-report description: Grafana Create Report hints: readOnly: false destructive: false idempotent: false call: grafana-reports.createreport with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-get-reports-dashboard-uid description: Grafana Get Reports By Dashboard UID hints: readOnly: true destructive: false idempotent: true call: grafana-reports.getreportsbydashboarduid with: uid: tools.uid outputParameters: - type: object mapping: $. - name: grafana-send-report description: Grafana Send Report hints: readOnly: false destructive: false idempotent: false call: grafana-reports.sendreport with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-render-report-cs-vs description: Grafana Render Report CS Vs hints: readOnly: true destructive: false idempotent: true call: grafana-reports.renderreportcsvs with: dashboards: tools.dashboards title: tools.title outputParameters: - type: object mapping: $. - name: grafana-render-report-pd-fs description: Grafana Render Report PD Fs hints: readOnly: true destructive: false idempotent: true call: grafana-reports.renderreportpdfs with: dashboards: tools.dashboards orientation: tools.orientation layout: tools.layout title: tools.title scaleFactor: tools.scaleFactor includeTables: tools.includeTables outputParameters: - type: object mapping: $. - name: grafana-get-report-settings description: Grafana Get Report Settings hints: readOnly: true destructive: false idempotent: true call: grafana-reports.getreportsettings outputParameters: - type: object mapping: $. - name: grafana-save-report-settings description: Grafana Save Report Settings hints: readOnly: false destructive: false idempotent: false call: grafana-reports.savereportsettings with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-get-report description: Grafana Get Report hints: readOnly: true destructive: false idempotent: true call: grafana-reports.getreport with: id: tools.id outputParameters: - type: object mapping: $. - name: grafana-update-report description: Grafana Update Report hints: readOnly: false destructive: false idempotent: true call: grafana-reports.updatereport with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: grafana-delete-report description: Grafana Delete Report hints: readOnly: false destructive: true idempotent: true call: grafana-reports.deletereport with: id: tools.id outputParameters: - type: object mapping: $.