naftiko: 1.0.0-alpha2 info: label: Grafana — Create description: 'Grafana — Create. 21 operations. Lead operation: Grafana Create Role. Self-contained Naftiko capability covering one Grafana business surface.' tags: - Grafana - Create created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GRAFANA_API_KEY: GRAFANA_API_KEY capability: consumes: - type: http namespace: grafana-create baseUri: http://{defaultHost} description: Grafana — Create business capability. Self-contained, no shared references. resources: - name: access-control-roles path: /access-control/roles operations: - name: createrole method: POST description: Grafana Create Role outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: admin-users path: /admin/users operations: - name: admincreateuser method: POST description: Grafana Admin Create User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: cloudmigration-migration path: /cloudmigration/migration operations: - name: createsession method: POST description: Grafana Create Session outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: cloudmigration-migration-uid-snapshot path: /cloudmigration/migration/{uid}/snapshot operations: - name: createsnapshot method: POST description: Grafana Create Snapshot outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: uid in: path type: string description: UID of a session required: true - name: body in: body type: object description: Request body (JSON). required: true - name: cloudmigration-token path: /cloudmigration/token operations: - name: createcloudmigrationtoken method: POST description: Grafana Create Cloud Migration Token outputRawFormat: json outputParameters: - name: result type: object value: $. - name: dashboards-uid-dashboardUid-public-dashboards path: /dashboards/uid/{dashboardUid}/public-dashboards operations: - 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: datasources-uid-sourceUID-correlations path: /datasources/uid/{sourceUID}/correlations operations: - name: createcorrelation method: POST description: Grafana Create Correlation outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: sourceUID in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: folders path: /folders operations: - name: createfolder method: POST description: Grafana Create Folder outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: groupsync-groups-group_id path: /groupsync/groups/{group_id} operations: - name: creategroupmappings method: POST description: Grafana Create Group Mappings outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: group_id in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: library-elements path: /library-elements operations: - name: createlibraryelement method: POST description: Grafana Create Library Element outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: orgs path: /orgs operations: - name: createorg method: POST description: Grafana Create Org outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: playlists path: /playlists operations: - name: createplaylist method: POST description: Grafana Create Playlist outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: query-history path: /query-history operations: - name: createquery method: POST description: Grafana Create Query outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: recording-rules path: /recording-rules operations: - name: createrecordingrule method: POST description: Grafana Create Recording Rule outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: recording-rules-test path: /recording-rules/test operations: - name: testcreaterecordingrule method: POST description: Grafana Test Create Recording Rule outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: recording-rules-writer path: /recording-rules/writer operations: - name: createrecordingrulewritetarget method: POST description: Grafana Create Recording Rule Write Target outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: reports path: /reports operations: - 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: serviceaccounts path: /serviceaccounts operations: - name: createserviceaccount method: POST description: Grafana Create Service Account outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: serviceaccounts-serviceAccountId-tokens path: /serviceaccounts/{serviceAccountId}/tokens operations: - name: createtoken method: POST description: Grafana Create Token outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: serviceAccountId in: path type: integer required: true - name: body in: body type: object description: Request body (JSON). required: false - name: snapshots path: /snapshots operations: - name: createdashboardsnapshot method: POST description: Grafana Create Dashboard Snapshot outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: teams path: /teams operations: - name: createteam method: POST description: Grafana Create Team outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true authentication: type: apikey key: Authorization value: '{{env.GRAFANA_API_KEY}}' placement: header exposes: - type: rest namespace: grafana-create-rest port: 8080 description: REST adapter for Grafana — Create. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/access-control/roles name: access-control-roles description: REST surface for access-control-roles. operations: - method: POST name: createrole description: Grafana Create Role call: grafana-create.createrole with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/admin/users name: admin-users description: REST surface for admin-users. operations: - method: POST name: admincreateuser description: Grafana Admin Create User call: grafana-create.admincreateuser with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cloudmigration/migration name: cloudmigration-migration description: REST surface for cloudmigration-migration. operations: - method: POST name: createsession description: Grafana Create Session call: grafana-create.createsession with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cloudmigration/migration/{uid}/snapshot name: cloudmigration-migration-uid-snapshot description: REST surface for cloudmigration-migration-uid-snapshot. operations: - method: POST name: createsnapshot description: Grafana Create Snapshot call: grafana-create.createsnapshot with: uid: rest.uid body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cloudmigration/token name: cloudmigration-token description: REST surface for cloudmigration-token. operations: - method: POST name: createcloudmigrationtoken description: Grafana Create Cloud Migration Token call: grafana-create.createcloudmigrationtoken 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: POST name: createpublicdashboard description: Grafana Create Public Dashboard call: grafana-create.createpublicdashboard with: dashboardUid: rest.dashboardUid body: rest.body outputParameters: - type: object mapping: $. - path: /v1/datasources/uid/{sourceuid}/correlations name: datasources-uid-sourceuid-correlations description: REST surface for datasources-uid-sourceUID-correlations. operations: - method: POST name: createcorrelation description: Grafana Create Correlation call: grafana-create.createcorrelation with: sourceUID: rest.sourceUID body: rest.body outputParameters: - type: object mapping: $. - path: /v1/folders name: folders description: REST surface for folders. operations: - method: POST name: createfolder description: Grafana Create Folder call: grafana-create.createfolder with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/groupsync/groups/{group-id} name: groupsync-groups-group-id description: REST surface for groupsync-groups-group_id. operations: - method: POST name: creategroupmappings description: Grafana Create Group Mappings call: grafana-create.creategroupmappings with: group_id: rest.group_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/library-elements name: library-elements description: REST surface for library-elements. operations: - method: POST name: createlibraryelement description: Grafana Create Library Element call: grafana-create.createlibraryelement with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/orgs name: orgs description: REST surface for orgs. operations: - method: POST name: createorg description: Grafana Create Org call: grafana-create.createorg with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/playlists name: playlists description: REST surface for playlists. operations: - method: POST name: createplaylist description: Grafana Create Playlist call: grafana-create.createplaylist with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/query-history name: query-history description: REST surface for query-history. operations: - method: POST name: createquery description: Grafana Create Query call: grafana-create.createquery with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/recording-rules name: recording-rules description: REST surface for recording-rules. operations: - method: POST name: createrecordingrule description: Grafana Create Recording Rule call: grafana-create.createrecordingrule with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/recording-rules/test name: recording-rules-test description: REST surface for recording-rules-test. operations: - method: POST name: testcreaterecordingrule description: Grafana Test Create Recording Rule call: grafana-create.testcreaterecordingrule with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/recording-rules/writer name: recording-rules-writer description: REST surface for recording-rules-writer. operations: - method: POST name: createrecordingrulewritetarget description: Grafana Create Recording Rule Write Target call: grafana-create.createrecordingrulewritetarget with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/reports name: reports description: REST surface for reports. operations: - method: POST name: createreport description: Grafana Create Report call: grafana-create.createreport with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/serviceaccounts name: serviceaccounts description: REST surface for serviceaccounts. operations: - method: POST name: createserviceaccount description: Grafana Create Service Account call: grafana-create.createserviceaccount with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/serviceaccounts/{serviceaccountid}/tokens name: serviceaccounts-serviceaccountid-tokens description: REST surface for serviceaccounts-serviceAccountId-tokens. operations: - method: POST name: createtoken description: Grafana Create Token call: grafana-create.createtoken with: serviceAccountId: rest.serviceAccountId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/snapshots name: snapshots description: REST surface for snapshots. operations: - method: POST name: createdashboardsnapshot description: Grafana Create Dashboard Snapshot call: grafana-create.createdashboardsnapshot with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/teams name: teams description: REST surface for teams. operations: - method: POST name: createteam description: Grafana Create Team call: grafana-create.createteam with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: grafana-create-mcp port: 9090 transport: http description: MCP adapter for Grafana — Create. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: grafana-create-role description: Grafana Create Role hints: readOnly: false destructive: false idempotent: false call: grafana-create.createrole with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-admin-create-user description: Grafana Admin Create User hints: readOnly: false destructive: false idempotent: false call: grafana-create.admincreateuser with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-create-session description: Grafana Create Session hints: readOnly: false destructive: false idempotent: false call: grafana-create.createsession with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-create-snapshot description: Grafana Create Snapshot hints: readOnly: false destructive: false idempotent: false call: grafana-create.createsnapshot with: uid: tools.uid body: tools.body outputParameters: - type: object mapping: $. - name: grafana-create-cloud-migration-token description: Grafana Create Cloud Migration Token hints: readOnly: false destructive: false idempotent: false call: grafana-create.createcloudmigrationtoken outputParameters: - type: object mapping: $. - name: grafana-create-public-dashboard description: Grafana Create Public Dashboard hints: readOnly: false destructive: false idempotent: false call: grafana-create.createpublicdashboard with: dashboardUid: tools.dashboardUid body: tools.body outputParameters: - type: object mapping: $. - name: grafana-create-correlation description: Grafana Create Correlation hints: readOnly: false destructive: false idempotent: false call: grafana-create.createcorrelation with: sourceUID: tools.sourceUID body: tools.body outputParameters: - type: object mapping: $. - name: grafana-create-folder description: Grafana Create Folder hints: readOnly: false destructive: false idempotent: false call: grafana-create.createfolder with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-create-group-mappings description: Grafana Create Group Mappings hints: readOnly: false destructive: false idempotent: false call: grafana-create.creategroupmappings with: group_id: tools.group_id body: tools.body outputParameters: - type: object mapping: $. - name: grafana-create-library-element description: Grafana Create Library Element hints: readOnly: false destructive: false idempotent: false call: grafana-create.createlibraryelement with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-create-org description: Grafana Create Org hints: readOnly: false destructive: false idempotent: false call: grafana-create.createorg with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-create-playlist description: Grafana Create Playlist hints: readOnly: false destructive: false idempotent: false call: grafana-create.createplaylist with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-create-query description: Grafana Create Query hints: readOnly: true destructive: false idempotent: false call: grafana-create.createquery with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-create-recording-rule description: Grafana Create Recording Rule hints: readOnly: false destructive: false idempotent: false call: grafana-create.createrecordingrule with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-test-create-recording-rule description: Grafana Test Create Recording Rule hints: readOnly: true destructive: false idempotent: false call: grafana-create.testcreaterecordingrule with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-create-recording-rule-write description: Grafana Create Recording Rule Write Target hints: readOnly: false destructive: false idempotent: false call: grafana-create.createrecordingrulewritetarget with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-create-report description: Grafana Create Report hints: readOnly: false destructive: false idempotent: false call: grafana-create.createreport with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-create-service-account description: Grafana Create Service Account hints: readOnly: false destructive: false idempotent: false call: grafana-create.createserviceaccount with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-create-token description: Grafana Create Token hints: readOnly: false destructive: false idempotent: false call: grafana-create.createtoken with: serviceAccountId: tools.serviceAccountId body: tools.body outputParameters: - type: object mapping: $. - name: grafana-create-dashboard-snapshot description: Grafana Create Dashboard Snapshot hints: readOnly: false destructive: false idempotent: false call: grafana-create.createdashboardsnapshot with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-create-team description: Grafana Create Team hints: readOnly: false destructive: false idempotent: false call: grafana-create.createteam with: body: tools.body outputParameters: - type: object mapping: $.