naftiko: 1.0.0-alpha2 info: label: Grafana — Add description: 'Grafana — Add. 8 operations. Lead operation: Grafana Add Team Role. Self-contained Naftiko capability covering one Grafana business surface.' tags: - Grafana - Add created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GRAFANA_API_KEY: GRAFANA_API_KEY capability: consumes: - type: http namespace: grafana-add baseUri: http://{defaultHost} description: Grafana — Add business capability. Self-contained, no shared references. resources: - name: access-control-teams-teamId-roles path: /access-control/teams/{teamId}/roles operations: - name: addteamrole method: POST description: Grafana Add Team Role outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: teamId in: path type: integer required: true - name: body in: body type: object description: Request body (JSON). required: true - name: access-control-users-userId-roles path: /access-control/users/{userId}/roles operations: - name: adduserrole method: POST description: Grafana Add User Role outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: userId in: path type: integer required: true - name: body in: body type: object description: Request body (JSON). required: true - name: datasources path: /datasources operations: - name: adddatasource method: POST description: Grafana Add Data Source outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: org-invites path: /org/invites operations: - name: addorginvite method: POST description: Grafana Add Org Invite outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: org-users path: /org/users operations: - name: addorgusertocurrentorg method: POST description: Grafana Add Org User To Current Org outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: orgs-org_id-users path: /orgs/{org_id}/users operations: - name: addorguser method: POST description: Grafana Add Org User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: org_id in: path type: integer required: true - name: body in: body type: object description: Request body (JSON). required: true - name: teams-teamId-groups path: /teams/{teamId}/groups operations: - name: addteamgroupapi method: POST description: Grafana Add Team Group Api outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: teamId in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: teams-team_id-members path: /teams/{team_id}/members operations: - name: addteammember method: POST description: Grafana Add Team Member outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: team_id in: path type: string required: true - 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-add-rest port: 8080 description: REST adapter for Grafana — Add. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/access-control/teams/{teamid}/roles name: access-control-teams-teamid-roles description: REST surface for access-control-teams-teamId-roles. operations: - method: POST name: addteamrole description: Grafana Add Team Role call: grafana-add.addteamrole with: teamId: rest.teamId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/access-control/users/{userid}/roles name: access-control-users-userid-roles description: REST surface for access-control-users-userId-roles. operations: - method: POST name: adduserrole description: Grafana Add User Role call: grafana-add.adduserrole with: userId: rest.userId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/datasources name: datasources description: REST surface for datasources. operations: - method: POST name: adddatasource description: Grafana Add Data Source call: grafana-add.adddatasource with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/org/invites name: org-invites description: REST surface for org-invites. operations: - method: POST name: addorginvite description: Grafana Add Org Invite call: grafana-add.addorginvite with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/org/users name: org-users description: REST surface for org-users. operations: - method: POST name: addorgusertocurrentorg description: Grafana Add Org User To Current Org call: grafana-add.addorgusertocurrentorg with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/orgs/{org-id}/users name: orgs-org-id-users description: REST surface for orgs-org_id-users. operations: - method: POST name: addorguser description: Grafana Add Org User call: grafana-add.addorguser with: org_id: rest.org_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/teams/{teamid}/groups name: teams-teamid-groups description: REST surface for teams-teamId-groups. operations: - method: POST name: addteamgroupapi description: Grafana Add Team Group Api call: grafana-add.addteamgroupapi with: teamId: rest.teamId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/teams/{team-id}/members name: teams-team-id-members description: REST surface for teams-team_id-members. operations: - method: POST name: addteammember description: Grafana Add Team Member call: grafana-add.addteammember with: team_id: rest.team_id body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: grafana-add-mcp port: 9090 transport: http description: MCP adapter for Grafana — Add. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: grafana-add-team-role description: Grafana Add Team Role hints: readOnly: false destructive: false idempotent: false call: grafana-add.addteamrole with: teamId: tools.teamId body: tools.body outputParameters: - type: object mapping: $. - name: grafana-add-user-role description: Grafana Add User Role hints: readOnly: false destructive: false idempotent: false call: grafana-add.adduserrole with: userId: tools.userId body: tools.body outputParameters: - type: object mapping: $. - name: grafana-add-data-source description: Grafana Add Data Source hints: readOnly: false destructive: false idempotent: false call: grafana-add.adddatasource with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-add-org-invite description: Grafana Add Org Invite hints: readOnly: false destructive: false idempotent: false call: grafana-add.addorginvite with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-add-org-user-current description: Grafana Add Org User To Current Org hints: readOnly: false destructive: false idempotent: false call: grafana-add.addorgusertocurrentorg with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-add-org-user description: Grafana Add Org User hints: readOnly: false destructive: false idempotent: false call: grafana-add.addorguser with: org_id: tools.org_id body: tools.body outputParameters: - type: object mapping: $. - name: grafana-add-team-group-api description: Grafana Add Team Group Api hints: readOnly: false destructive: false idempotent: false call: grafana-add.addteamgroupapi with: teamId: tools.teamId body: tools.body outputParameters: - type: object mapping: $. - name: grafana-add-team-member description: Grafana Add Team Member hints: readOnly: false destructive: false idempotent: false call: grafana-add.addteammember with: team_id: tools.team_id body: tools.body outputParameters: - type: object mapping: $.