naftiko: 1.0.0-alpha2 info: label: Power BI REST API — Groups description: 'Power BI REST API — Groups. 12 operations. Lead operation: Power Bi List Workspaces. Self-contained Naftiko capability covering one Power Bi business surface.' tags: - Power Bi - Groups created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: POWER_BI_API_KEY: POWER_BI_API_KEY capability: consumes: - type: http namespace: rest-groups baseUri: https://api.powerbi.com/v1.0/myorg description: Power BI REST API — Groups business capability. Self-contained, no shared references. resources: - name: groups path: /groups operations: - name: getgroups method: GET description: Power Bi List Workspaces outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: $filter in: query type: string description: OData filter expression to filter workspaces - name: $top in: query type: integer description: Maximum number of workspaces to return - name: $skip in: query type: integer description: Number of workspaces to skip - name: creategroup method: POST description: Power Bi Create a Workspace outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: groups-groupId path: /groups/{groupId} operations: - name: deletegroup method: DELETE description: Power Bi Delete a Workspace outputRawFormat: json outputParameters: - name: result type: object value: $. - name: groups-groupId-dashboards path: /groups/{groupId}/dashboards operations: - name: getdashboardsingroup method: GET description: Power Bi List Dashboards in a Workspace outputRawFormat: json outputParameters: - name: result type: object value: $. - name: groups-groupId-datasets path: /groups/{groupId}/datasets operations: - name: getdatasetsingroup method: GET description: Power Bi List Datasets in a Workspace outputRawFormat: json outputParameters: - name: result type: object value: $. - name: groups-groupId-imports path: /groups/{groupId}/imports operations: - name: getimportsingroup method: GET description: Power Bi List Imports in a Workspace outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createimportingroup method: POST description: Power Bi Import Content Into a Workspace outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: datasetDisplayName in: query type: string description: Display name of the dataset required: true - name: nameConflict in: query type: string description: Action to take if a dataset with the same name exists - name: body in: body type: object description: Request body (JSON). required: true - name: groups-groupId-reports path: /groups/{groupId}/reports operations: - name: getreportsingroup method: GET description: Power Bi List Reports in a Workspace outputRawFormat: json outputParameters: - name: result type: object value: $. - name: groups-groupId-users path: /groups/{groupId}/users operations: - name: getgroupusers method: GET description: Power Bi List Workspace Users outputRawFormat: json outputParameters: - name: result type: object value: $. - name: addgroupuser method: POST description: Power Bi Add a Workspace User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: groups-groupId-users-userId path: /groups/{groupId}/users/{userId} operations: - name: updategroupuser method: PUT description: Power Bi Update Workspace User Access outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: deletegroupuser method: DELETE description: Power Bi Remove a Workspace User outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: bearer token: '{{env.POWER_BI_API_KEY}}' exposes: - type: rest namespace: rest-groups-rest port: 8080 description: REST adapter for Power BI REST API — Groups. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/groups name: groups description: REST surface for groups. operations: - method: GET name: getgroups description: Power Bi List Workspaces call: rest-groups.getgroups with: $filter: rest.$filter $top: rest.$top $skip: rest.$skip outputParameters: - type: object mapping: $. - method: POST name: creategroup description: Power Bi Create a Workspace call: rest-groups.creategroup with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/groups/{groupid} name: groups-groupid description: REST surface for groups-groupId. operations: - method: DELETE name: deletegroup description: Power Bi Delete a Workspace call: rest-groups.deletegroup outputParameters: - type: object mapping: $. - path: /v1/groups/{groupid}/dashboards name: groups-groupid-dashboards description: REST surface for groups-groupId-dashboards. operations: - method: GET name: getdashboardsingroup description: Power Bi List Dashboards in a Workspace call: rest-groups.getdashboardsingroup outputParameters: - type: object mapping: $. - path: /v1/groups/{groupid}/datasets name: groups-groupid-datasets description: REST surface for groups-groupId-datasets. operations: - method: GET name: getdatasetsingroup description: Power Bi List Datasets in a Workspace call: rest-groups.getdatasetsingroup outputParameters: - type: object mapping: $. - path: /v1/groups/{groupid}/imports name: groups-groupid-imports description: REST surface for groups-groupId-imports. operations: - method: GET name: getimportsingroup description: Power Bi List Imports in a Workspace call: rest-groups.getimportsingroup outputParameters: - type: object mapping: $. - method: POST name: createimportingroup description: Power Bi Import Content Into a Workspace call: rest-groups.createimportingroup with: datasetDisplayName: rest.datasetDisplayName nameConflict: rest.nameConflict body: rest.body outputParameters: - type: object mapping: $. - path: /v1/groups/{groupid}/reports name: groups-groupid-reports description: REST surface for groups-groupId-reports. operations: - method: GET name: getreportsingroup description: Power Bi List Reports in a Workspace call: rest-groups.getreportsingroup outputParameters: - type: object mapping: $. - path: /v1/groups/{groupid}/users name: groups-groupid-users description: REST surface for groups-groupId-users. operations: - method: GET name: getgroupusers description: Power Bi List Workspace Users call: rest-groups.getgroupusers outputParameters: - type: object mapping: $. - method: POST name: addgroupuser description: Power Bi Add a Workspace User call: rest-groups.addgroupuser with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/groups/{groupid}/users/{userid} name: groups-groupid-users-userid description: REST surface for groups-groupId-users-userId. operations: - method: PUT name: updategroupuser description: Power Bi Update Workspace User Access call: rest-groups.updategroupuser with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletegroupuser description: Power Bi Remove a Workspace User call: rest-groups.deletegroupuser outputParameters: - type: object mapping: $. - type: mcp namespace: rest-groups-mcp port: 9090 transport: http description: MCP adapter for Power BI REST API — Groups. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: power-bi-list-workspaces description: Power Bi List Workspaces hints: readOnly: true destructive: false idempotent: true call: rest-groups.getgroups with: $filter: tools.$filter $top: tools.$top $skip: tools.$skip outputParameters: - type: object mapping: $. - name: power-bi-create-workspace description: Power Bi Create a Workspace hints: readOnly: false destructive: false idempotent: false call: rest-groups.creategroup with: body: tools.body outputParameters: - type: object mapping: $. - name: power-bi-delete-workspace description: Power Bi Delete a Workspace hints: readOnly: false destructive: true idempotent: true call: rest-groups.deletegroup outputParameters: - type: object mapping: $. - name: power-bi-list-dashboards-workspace description: Power Bi List Dashboards in a Workspace hints: readOnly: true destructive: false idempotent: true call: rest-groups.getdashboardsingroup outputParameters: - type: object mapping: $. - name: power-bi-list-datasets-workspace description: Power Bi List Datasets in a Workspace hints: readOnly: true destructive: false idempotent: true call: rest-groups.getdatasetsingroup outputParameters: - type: object mapping: $. - name: power-bi-list-imports-workspace description: Power Bi List Imports in a Workspace hints: readOnly: true destructive: false idempotent: true call: rest-groups.getimportsingroup outputParameters: - type: object mapping: $. - name: power-bi-import-content-workspace description: Power Bi Import Content Into a Workspace hints: readOnly: false destructive: false idempotent: false call: rest-groups.createimportingroup with: datasetDisplayName: tools.datasetDisplayName nameConflict: tools.nameConflict body: tools.body outputParameters: - type: object mapping: $. - name: power-bi-list-reports-workspace description: Power Bi List Reports in a Workspace hints: readOnly: true destructive: false idempotent: true call: rest-groups.getreportsingroup outputParameters: - type: object mapping: $. - name: power-bi-list-workspace-users description: Power Bi List Workspace Users hints: readOnly: true destructive: false idempotent: true call: rest-groups.getgroupusers outputParameters: - type: object mapping: $. - name: power-bi-add-workspace-user description: Power Bi Add a Workspace User hints: readOnly: false destructive: false idempotent: false call: rest-groups.addgroupuser with: body: tools.body outputParameters: - type: object mapping: $. - name: power-bi-update-workspace-user description: Power Bi Update Workspace User Access hints: readOnly: false destructive: false idempotent: true call: rest-groups.updategroupuser with: body: tools.body outputParameters: - type: object mapping: $. - name: power-bi-remove-workspace-user description: Power Bi Remove a Workspace User hints: readOnly: false destructive: true idempotent: true call: rest-groups.deletegroupuser outputParameters: - type: object mapping: $.