{"_id":"@bossforce.ai/mcp-power-bi","name":"@bossforce.ai/mcp-power-bi","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@bossforce.ai/mcp-power-bi","version":"0.1.0","type":"module","repository":{"type":"git","url":"git+https://github.com/bossforce-ai/bossforce-tools.git","directory":"mcps/bi-dashboards/power-bi"},"publishConfig":{"access":"public"},"bin":{"bossforce-mcp-power-bi":"dist/bin.js"},"dependencies":{"zod":"^4.4.3","@bossforce.ai/mcp-core":"0.3.0","@bossforce.ai/mcp-microsoft":"0.1.0"},"devDependencies":{"@bossforce.ai/mcp-testkit":"0.0.0"},"scripts":{"build":"tsc -p tsconfig.json","test":"node --test \"dist/*.test.js\""},"_id":"@bossforce.ai/mcp-power-bi@0.1.0","description":"MCP server for **Power BI** (Power BI REST API v1.0). List the datasets, reports and dashboards in your My workspace and run DAX queries against a dataset. Reuses the shared `@bossforce.ai/mcp-microsoft` token source and HTTP client (pointed at the Power ","bugs":{"url":"https://github.com/bossforce-ai/bossforce-tools/issues"},"homepage":"https://github.com/bossforce-ai/bossforce-tools#readme","_integrity":"sha512-Cqws3gC4pbEnOHKi7f7jRBDXwFDv3pL9ONgrPPhIBQpJY9/zStGbQzLF79okqQCJEDdPLCOL5bM0LqrGt18HrQ==","_resolved":"C:\\Users\\user\\AppData\\Local\\Temp\\4b8af34b63b051a8f526dca2e0624c4f\\bossforce.ai-mcp-power-bi-0.1.0.tgz","_from":"file:bossforce.ai-mcp-power-bi-0.1.0.tgz","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-Cqws3gC4pbEnOHKi7f7jRBDXwFDv3pL9ONgrPPhIBQpJY9/zStGbQzLF79okqQCJEDdPLCOL5bM0LqrGt18HrQ==","shasum":"17fde9b683b4b0f964953e5d5f1d22bdfaf2e96e","tarball":"https://registry.npmjs.org/@bossforce.ai/mcp-power-bi/-/mcp-power-bi-0.1.0.tgz","fileCount":22,"unpackedSize":15178,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD/RIcZU9jShcrrazVLk9lNLCDWtiqd0cBOxvs4hZubfgIgZiuvu4sc3o7P8sH4wfbXPcJYmzWhaeS+jrTYM6eMCHg="}]},"_npmUser":{"name":"bossforce.ai","email":"bossforce.ai@gmail.com"},"directories":{},"maintainers":[{"name":"bossforce.ai","email":"bossforce.ai@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-power-bi_0.1.0_1781069234504_0.03665428063817333"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-10T05:27:14.369Z","0.1.0":"2026-06-10T05:27:14.717Z","modified":"2026-06-10T05:27:14.966Z"},"maintainers":[{"name":"bossforce.ai","email":"bossforce.ai@gmail.com"}],"description":"MCP server for **Power BI** (Power BI REST API v1.0). List the datasets, reports and dashboards in your My workspace and run DAX queries against a dataset. Reuses the shared `@bossforce.ai/mcp-microsoft` token source and HTTP client (pointed at the Power ","homepage":"https://github.com/bossforce-ai/bossforce-tools#readme","repository":{"type":"git","url":"git+https://github.com/bossforce-ai/bossforce-tools.git","directory":"mcps/bi-dashboards/power-bi"},"bugs":{"url":"https://github.com/bossforce-ai/bossforce-tools/issues"},"readme":"# @bossforce.ai/mcp-power-bi\n\nMCP server for **Power BI** (Power BI REST API v1.0). List the datasets, reports\nand dashboards in your My workspace and run DAX queries against a dataset. Reuses\nthe shared `@bossforce.ai/mcp-microsoft` token source and HTTP client (pointed at\nthe Power BI resource instead of Microsoft Graph).\n\n## Auth (OAuth2)\n\nThe platform performs the Microsoft authorization and injects these env vars; the\nserver exchanges the refresh token for short-lived access tokens itself (cached,\nrefreshed a minute before expiry). The access token is requested for the Power BI\nresource (`https://analysis.windows.net/powerbi/api/.default offline_access`).\n\n| Env                      | Source                          |\n| ------------------------ | ------------------------------- |\n| `POWER_BI_CLIENT_ID`     | OAuth client id (server `.env`) |\n| `POWER_BI_CLIENT_SECRET` | OAuth client secret             |\n| `POWER_BI_REFRESH_TOKEN` | per-workspace, from OAuth flow  |\n| `POWER_BI_TENANT_ID`     | optional; defaults to `common`  |\n\nCredentials are read lazily, so the server boots and answers `tools/list`\nwithout them.\n\nScopes: `Dataset.Read.All`, `Report.Read.All`, `Dashboard.Read.All` (Power BI\nresource scopes — read access for the listed and queried content).\n\n## Tools\n\n| Tool              | Arguments                               | Power BI REST endpoint                      |\n| ----------------- | --------------------------------------- | ------------------------------------------- |\n| `list_datasets`   | —                                       | `GET /datasets`                             |\n| `list_reports`    | —                                       | `GET /reports`                              |\n| `list_dashboards` | —                                       | `GET /dashboards`                           |\n| `execute_queries` | `dataset_id`, `query`, `include_nulls?` | `POST /datasets/{datasetId}/executeQueries` |\n\nAll paths are relative to the base `https://api.powerbi.com/v1.0/myorg`, so every\ntool operates on the signed-in user's **My workspace**. The list endpoints return\nan OData wrapper `{ value: [...] }`.\n\n`execute_queries` sends `{ queries: [{ query }], serializerSettings: { includeNulls } }`\nand returns `{ results: [{ tables: [{ rows: [...] }] }] }`. The Power BI service\nlimits this to one query and one result table per call. The **Dataset Execute\nQueries REST API** tenant setting must be enabled, and the user needs dataset read\nand build permissions.\n\n## Not supported (v0.1.0)\n\nWorkspace (group)-scoped operations, refreshes, exports and write operations are\nout of scope for this version — only My-workspace listing and DAX query execution\nare exposed.\n\n## Develop\n\n```bash\npnpm --filter @bossforce.ai/mcp-power-bi build\npnpm --filter @bossforce.ai/mcp-power-bi test\nUPDATE_SNAPSHOTS=1 pnpm --filter @bossforce.ai/mcp-power-bi test  # after a signature change\n```\n","readmeFilename":"README.md","_rev":"1-bf177e1420a15ca7a9b813e4178d5d31"}