microsoft
powerbi.
READ Power BI with the person's rights: workspaces, reports, semantic models,
setup & usage
on the "Power BI" card, click Authorize Power BI and choose your work account. Nothing else to install or register. The account itself is the "Microsoft 365 account" connector: Power BI borrows it and only adds its own permissions (read workspaces, reports and semantic models).
microsoft_admin_consent, see the "Microsoft 365 account" connector)powerbi reads only (op=workspaces|reports|report_pages|datasets|query|measures), under the account the call names (_account=), otherwise the default one. Without workspace_id, the person's "My workspace".
powerbi() (the workspaces), then powerbi(op="reports", workspace_id=…); a report's datasetId is the model behind itpowerbi(op="measures", workspace_id=…, dataset_id=…): every measure with its table, folder, description and, when allowed, its DAX formulapowerbi(op="query", workspace_id=…, dataset_id=…, dax="EVALUATE SUMMARIZECOLUMNS('Date'[Month], \"CA\", [CA])"): aggregate in DAX, at most 2,000 rows come back (max_rows)op="measures" returns names, tables, folders and descriptions, expression_visible=false and a note — no formula. Nothing in oto can go around ittruncated) beyond Power BI's limits (100,000 rows, 15 MB) or max_rowsread only: workspaces, reports and their pages, semantic models, one DAX query at a time, measure definitions. No refresh, no export, no edit, no report rendering.
this connector accepts multiple comptes: connecting with another compte adds it alongside the others, named by its address; reconnecting with the same one replaces its own.
_account="<name>" on the tool; list them: oto_identity(op='list', connector='powerbi')oto_identity(op='set', connector='powerbi', identity_id='<name>')_account) and adding upoutils
usage
claude plugin marketplace add otomata-tech/oto-plugin — mcp + skill configured.pipx install oto-cli then oto powerbi …