# Power BI Modeling MCP server

> Create and change Power BI semantic models: tables, measures, relationships and DAX, from models open in Power BI Desktop or PBIP files.

- Listing: https://mcp.tc/i/powerbi-modeling
- Connect: this is a local (stdio) server; install it on your machine (see Install). The listing link is a page, not an MCP endpoint.
- Type: local (stdio)
- Auth: optional (works without sign-in)
- Category: [Data & Analytics](https://mcp.tc/c/analytics)
- Vendor: Microsoft
- Verified: yes, mcp.tc checked that this is the official server (https://mcp.tc/verify). It says who runs the server, not that it is safe.
- Homepage: <https://learn.microsoft.com/en-us/power-bi/developer/mcp/power-bi-authoring-mcp>
- Repository: <https://github.com/microsoft/powerbi-modeling-mcp>
- Package: npm `@microsoft/powerbi-modeling-mcp`

## About

Connects an AI assistant to Power BI semantic models so it can create and update tables, columns, measures and relationships. It supports batch operations on many objects, such as bulk renaming and refactoring, checks against modeling best practices, and running and validating DAX queries. It also works with TMDL and Power BI Project (PBIP) files.

Runs locally over stdio with npx and needs Node.js. Models open in Power BI Desktop and local PBIP/TMDL files need no sign-in. Fabric workspaces need Microsoft Entra ID sign-in. The EULA must be accepted before any other tool works. Back up your model first, since the assistant can make unintended changes.

## What it can do

- Create and edit tables, columns, measures and relationships
- Run bulk rename and refactor operations on many objects
- Execute and validate DAX queries against a model
- Evaluate a model against modeling best practices
- Work with TMDL and Power BI Project (PBIP) files
- Connect to models in Power BI Desktop or Fabric workspaces

## Example prompts

- "Connect to 'Sales.pbix' in Power BI Desktop and list its tables"
- "Add a year-over-year growth measure to the Sales table"
- "Rename all columns in the Customer table to Title Case"
- "Run a DAX query to check total revenue by region"

## Install

### Claude Code

1. Run this in a terminal, in your project folder:

```bash
claude mcp add --transport stdio powerbi-modeling -- npx -y @microsoft/powerbi-modeling-mcp --start
```

2. Start Claude Code and type `/mcp`. **powerbi-modeling** should show as connected.

Add `--scope user` to make it available in every project.

### Claude Desktop

1. Open **Settings → Developer → Edit Config**. It opens `claude_desktop_config.json`. Add:

`claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "powerbi-modeling": {
      "command": "npx",
      "args": [
        "-y",
        "@microsoft/powerbi-modeling-mcp",
        "--start"
      ]
    }
  }
}
```

2. Save the file and restart Claude Desktop.

Needs Node.js on your computer. The file lives in `~/Library/Application Support/Claude/` on macOS and `%APPDATA%\Claude\` on Windows.

### Cursor

[Add to Cursor](<https://cursor.com/install-mcp?name=powerbi-modeling&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBtaWNyb3NvZnQvcG93ZXJiaS1tb2RlbGluZy1tY3AiLCItLXN0YXJ0Il19>) (opens Cursor)

Or add it by hand to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (this project):

`mcp.json`:

```json
{
  "mcpServers": {
    "powerbi-modeling": {
      "command": "npx",
      "args": [
        "-y",
        "@microsoft/powerbi-modeling-mcp",
        "--start"
      ]
    }
  }
}
```

Needs Node.js on your computer.

### VS Code

[Install in VS Code](<https://vscode.dev/redirect/mcp/install?name=powerbi-modeling&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40microsoft%2Fpowerbi-modeling-mcp%22%2C%22--start%22%5D%7D>) (opens VS Code)

Or from a terminal:

```bash
code --add-mcp '{"name":"powerbi-modeling","type":"stdio","command":"npx","args":["-y","@microsoft/powerbi-modeling-mcp","--start"]}'
```

Or commit it to the repo in `.vscode/mcp.json`:

`.vscode/mcp.json`:

```json
{
  "servers": {
    "powerbi-modeling": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@microsoft/powerbi-modeling-mcp",
        "--start"
      ]
    }
  }
}
```

Needs Node.js on your computer.

### Devin Desktop

1. Add it to `~/.config/devin/mcp_config.json` (macOS and Linux) or `%APPDATA%\devin\mcp_config.json` (Windows):

`mcp_config.json`:

```json
{
  "mcpServers": {
    "powerbi-modeling": {
      "command": "npx",
      "args": [
        "-y",
        "@microsoft/powerbi-modeling-mcp",
        "--start"
      ]
    }
  }
}
```

2. Refresh the MCP server list in Cascade.

Devin Desktop is the new name for Windsurf.

### Codex

```bash
codex mcp add powerbi-modeling -- npx -y @microsoft/powerbi-modeling-mcp --start
```

Or edit `~/.codex/config.toml` directly:

`config.toml`:

```toml
[mcp_servers.powerbi-modeling]
command = "npx"
args = ["-y", "@microsoft/powerbi-modeling-mcp", "--start"]
```

Needs Node.js on your computer.

### Gemini CLI

```bash
gemini mcp add powerbi-modeling npx -- -y @microsoft/powerbi-modeling-mcp --start
```

This adds it to the current project. Add `-s user` to use it everywhere.

### Any client

Most clients that start local servers accept this shape:

```json
{
  "mcpServers": {
    "powerbi-modeling": {
      "command": "npx",
      "args": [
        "-y",
        "@microsoft/powerbi-modeling-mcp",
        "--start"
      ]
    }
  }
}
```

Zed puts servers under `context_servers` in its settings, with the same `command`, `args` and `env` fields.

Needs Node.js on your computer.

## Details

- Server version: 1.0.0
- Last checked: 2026-10-03
- Listed: 2026-10-03
- Updated: 2026-10-03

---
Source: https://mcp.tc/i/powerbi-modeling (mcp.tc is an independent directory, not affiliated with this server's publisher). Corrections: https://mcp.tc/report
