naftiko: 1.0.0-alpha2 info: label: Grafana — Public description: 'Grafana — Public. 8 operations. Lead operation: Grafana List Public Dashboards. Self-contained Naftiko capability covering one Grafana business surface.' tags: - Grafana - Public created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GRAFANA_API_KEY: GRAFANA_API_KEY capability: consumes: - type: http namespace: grafana-public baseUri: http://{defaultHost} description: Grafana — Public business capability. Self-contained, no shared references. resources: - name: dashboards-public-dashboards path: /dashboards/public-dashboards operations: - name: listpublicdashboards method: GET description: Grafana List Public Dashboards outputRawFormat: json outputParameters: - name: result type: object value: $. - name: dashboards-uid-dashboardUid-public-dashboards path: /dashboards/uid/{dashboardUid}/public-dashboards operations: - name: getpublicdashboard method: GET description: Grafana Get Public Dashboard outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: dashboardUid in: path type: string required: true - name: createpublicdashboard method: POST description: Grafana Create Public Dashboard outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: dashboardUid in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: dashboards-uid-dashboardUid-public-dashboards-uid path: /dashboards/uid/{dashboardUid}/public-dashboards/{uid} operations: - name: deletepublicdashboard method: DELETE description: Grafana Delete Public Dashboard outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: dashboardUid in: path type: string required: true - name: uid in: path type: string required: true - name: updatepublicdashboard method: PATCH description: Grafana Update Public Dashboard outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: dashboardUid in: path type: string required: true - name: uid in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: public-dashboards-accessToken path: /public/dashboards/{accessToken} operations: - name: viewpublicdashboard method: GET description: Grafana View Public Dashboard outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: accessToken in: path type: string required: true - name: public-dashboards-accessToken-annotations path: /public/dashboards/{accessToken}/annotations operations: - name: getpublicannotations method: GET description: Grafana Get Public Annotations outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: accessToken in: path type: string required: true - name: public-dashboards-accessToken-panels-panelId-query path: /public/dashboards/{accessToken}/panels/{panelId}/query operations: - name: querypublicdashboard method: POST description: Grafana Query Public Dashboard outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: accessToken in: path type: string required: true - name: panelId in: path type: integer required: true authentication: type: apikey key: Authorization value: '{{env.GRAFANA_API_KEY}}' placement: header exposes: - type: rest namespace: grafana-public-rest port: 8080 description: REST adapter for Grafana — Public. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/dashboards/public-dashboards name: dashboards-public-dashboards description: REST surface for dashboards-public-dashboards. operations: - method: GET name: listpublicdashboards description: Grafana List Public Dashboards call: grafana-public.listpublicdashboards outputParameters: - type: object mapping: $. - path: /v1/dashboards/uid/{dashboarduid}/public-dashboards name: dashboards-uid-dashboarduid-public-dashboards description: REST surface for dashboards-uid-dashboardUid-public-dashboards. operations: - method: GET name: getpublicdashboard description: Grafana Get Public Dashboard call: grafana-public.getpublicdashboard with: dashboardUid: rest.dashboardUid outputParameters: - type: object mapping: $. - method: POST name: createpublicdashboard description: Grafana Create Public Dashboard call: grafana-public.createpublicdashboard with: dashboardUid: rest.dashboardUid body: rest.body outputParameters: - type: object mapping: $. - path: /v1/dashboards/uid/{dashboarduid}/public-dashboards/{uid} name: dashboards-uid-dashboarduid-public-dashboards-uid description: REST surface for dashboards-uid-dashboardUid-public-dashboards-uid. operations: - method: DELETE name: deletepublicdashboard description: Grafana Delete Public Dashboard call: grafana-public.deletepublicdashboard with: dashboardUid: rest.dashboardUid uid: rest.uid outputParameters: - type: object mapping: $. - method: PATCH name: updatepublicdashboard description: Grafana Update Public Dashboard call: grafana-public.updatepublicdashboard with: dashboardUid: rest.dashboardUid uid: rest.uid body: rest.body outputParameters: - type: object mapping: $. - path: /v1/public/dashboards/{accesstoken} name: public-dashboards-accesstoken description: REST surface for public-dashboards-accessToken. operations: - method: GET name: viewpublicdashboard description: Grafana View Public Dashboard call: grafana-public.viewpublicdashboard with: accessToken: rest.accessToken outputParameters: - type: object mapping: $. - path: /v1/public/dashboards/{accesstoken}/annotations name: public-dashboards-accesstoken-annotations description: REST surface for public-dashboards-accessToken-annotations. operations: - method: GET name: getpublicannotations description: Grafana Get Public Annotations call: grafana-public.getpublicannotations with: accessToken: rest.accessToken outputParameters: - type: object mapping: $. - path: /v1/public/dashboards/{accesstoken}/panels/{panelid}/query name: public-dashboards-accesstoken-panels-panelid-query description: REST surface for public-dashboards-accessToken-panels-panelId-query. operations: - method: POST name: querypublicdashboard description: Grafana Query Public Dashboard call: grafana-public.querypublicdashboard with: accessToken: rest.accessToken panelId: rest.panelId outputParameters: - type: object mapping: $. - type: mcp namespace: grafana-public-mcp port: 9090 transport: http description: MCP adapter for Grafana — Public. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: grafana-list-public-dashboards description: Grafana List Public Dashboards hints: readOnly: true destructive: false idempotent: true call: grafana-public.listpublicdashboards outputParameters: - type: object mapping: $. - name: grafana-get-public-dashboard description: Grafana Get Public Dashboard hints: readOnly: true destructive: false idempotent: true call: grafana-public.getpublicdashboard with: dashboardUid: tools.dashboardUid outputParameters: - type: object mapping: $. - name: grafana-create-public-dashboard description: Grafana Create Public Dashboard hints: readOnly: false destructive: false idempotent: false call: grafana-public.createpublicdashboard with: dashboardUid: tools.dashboardUid body: tools.body outputParameters: - type: object mapping: $. - name: grafana-delete-public-dashboard description: Grafana Delete Public Dashboard hints: readOnly: false destructive: true idempotent: true call: grafana-public.deletepublicdashboard with: dashboardUid: tools.dashboardUid uid: tools.uid outputParameters: - type: object mapping: $. - name: grafana-update-public-dashboard description: Grafana Update Public Dashboard hints: readOnly: false destructive: false idempotent: true call: grafana-public.updatepublicdashboard with: dashboardUid: tools.dashboardUid uid: tools.uid body: tools.body outputParameters: - type: object mapping: $. - name: grafana-view-public-dashboard description: Grafana View Public Dashboard hints: readOnly: true destructive: false idempotent: true call: grafana-public.viewpublicdashboard with: accessToken: tools.accessToken outputParameters: - type: object mapping: $. - name: grafana-get-public-annotations description: Grafana Get Public Annotations hints: readOnly: true destructive: false idempotent: true call: grafana-public.getpublicannotations with: accessToken: tools.accessToken outputParameters: - type: object mapping: $. - name: grafana-query-public-dashboard description: Grafana Query Public Dashboard hints: readOnly: true destructive: false idempotent: false call: grafana-public.querypublicdashboard with: accessToken: tools.accessToken panelId: tools.panelId outputParameters: - type: object mapping: $.