Microsoft Fabric MCP Server

$npm install -g @strainprint/microsoft-fabric-mcp
README.md

Interact with Microsoft Fabric and Power BI services through MCP

Microsoft Fabric MCP Server

A Model Context Protocol (MCP) server that enables AI assistants like Claude to interact with Microsoft Fabric and Power BI services.

Features

  • 📊 Power BI Integration

    • List and query datasets
    • Execute DAX queries
    • Refresh datasets
    • Manage workspaces
  • 🏭 Microsoft Fabric Support

    • Create and manage notebooks
    • Upload data to warehouses
    • Access Fabric workspaces

Installation

Via NPM (Recommended)

npm install -g @strainprint/microsoft-fabric-mcp

From Source

git clone https://github.com/strainprint/microsoft-fabric-mcp.git
cd microsoft-fabric-mcp
npm install
npm run build

Configuration

1. Azure App Registration

Create an Azure App Registration with the following permissions:

  • Power BI Service (Delegated or Application):
    • Dataset.Read.All
    • Workspace.Read.All
    • Dataset.Execute.All (for DAX queries)

2. Power BI Tenant Settings

Enable in Power BI Admin Portal → Tenant settings:

  • "Allow service principals to use Power BI APIs"
  • "Service principals can access read-only admin APIs"

3. Environment Variables

Create a .env file or set environment variables:

# Required
AZURE_TENANT_ID=your-tenant-id
AZURE_CLIENT_ID=your-client-id
AZURE_CLIENT_SECRET=your-client-secret

# Optional
POWERBI_WORKSPACE_ID=workspace-id  # If not set, uses workspace-agnostic endpoints

4. Claude Desktop Configuration

Add to your Claude Desktop config (%APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "MicrosoftFabric": {
      "command": "npx",
      "args": [
        "-y",
        "@strainprint/microsoft-fabric-mcp"
      ],
      "env": {
        "AZURE_TENANT_ID": "your-tenant-id",
        "AZURE_CLIENT_ID": "your-client-id",
        "AZURE_CLIENT_SECRET": "your-client-secret",
        "POWERBI_WORKSPACE_ID": "optional-workspace-id"
      }
    }
  }
}

Usage

Once configured, Claude can use commands like:

  • "List my Power BI datasets"
  • "Execute this DAX query on dataset X"
  • "Refresh the sales dataset"
  • "Show me all workspaces"

Available Tools

`get_workspaces`

Get all accessible Power BI/Fabric workspaces

`get_powerbi_datasets`

List all datasets in the configured workspace

`execute_dax_query`

Execute DAX queries against a dataset

{
  "datasetId": "dataset-guid",
  "query": "EVALUATE TOPN(10, 'Sales')"
}

`refresh_dataset`

Trigger a dataset refresh

{
  "datasetId": "dataset-guid"
}

`create_notebook`

Create a new Fabric notebook

`upload_to_datawarehouse`

Upload data to a Fabric data warehouse

Troubleshooting

403 Forbidden Errors

  1. Check Service Principal Permissions

    • Ensure the service principal is added to the Power BI workspace
    • Verify API permissions in Azure Portal
  2. Power BI Tenant Settings

    • Confirm service principals are allowed to use Power BI APIs
    • Check if the service principal is in the allowed security group
  3. Token Issues

    • Verify client secret hasn't expired
    • Ensure correct tenant ID

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT © Strainprint Technologies

Credits

Developed by Steve Adams for the MCP community.

Special thanks to Anthropic for the Model Context Protocol specification.

Tools (6)

get_workspacesGet all accessible Power BI/Fabric workspaces
get_powerbi_datasetsList all datasets in the configured workspace
execute_dax_queryExecute DAX queries against a dataset
refresh_datasetTrigger a dataset refresh
create_notebookCreate a new Fabric notebook
upload_to_datawarehouseUpload data to a Fabric data warehouse

Environment Variables

AZURE_TENANT_IDrequiredAzure Active Directory tenant ID
AZURE_CLIENT_IDrequiredAzure App Registration client ID
AZURE_CLIENT_SECRETrequiredAzure App Registration client secret
POWERBI_WORKSPACE_IDSpecific workspace ID for operations

Configuration

claude_desktop_config.json
{"mcpServers": {"MicrosoftFabric": {"command": "npx", "args": ["-y", "@strainprint/microsoft-fabric-mcp"], "env": {"AZURE_TENANT_ID": "your-tenant-id", "AZURE_CLIENT_ID": "your-client-id", "AZURE_CLIENT_SECRET": "your-client-secret", "POWERBI_WORKSPACE_ID": "optional-workspace-id"}}}}

Try it

List my Power BI datasets
Execute this DAX query on dataset X: EVALUATE TOPN(10, 'Sales')
Refresh the sales dataset
Show me all workspaces
Create a new Fabric notebook for data analysis

Frequently Asked Questions

What are the key features of Microsoft Fabric MCP Server?

Execute DAX queries directly against Power BI datasets. Trigger and monitor dataset refreshes. Manage Microsoft Fabric notebooks and workspaces. Upload data directly to Fabric data warehouses.

What can I use Microsoft Fabric MCP Server for?

Automating Power BI report data refreshes via chat. Quickly querying business metrics using DAX without opening Power BI Desktop. Managing Fabric workspace resources and notebooks through natural language. Integrating Power BI metadata and dataset lists into AI workflows.

How do I install Microsoft Fabric MCP Server?

Install Microsoft Fabric MCP Server by running: npm install -g @strainprint/microsoft-fabric-mcp

What MCP clients work with Microsoft Fabric MCP Server?

Microsoft Fabric MCP Server works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Use Microsoft Fabric MCP Server with Conare

Manage MCP servers visually, upload persistent context, and never start from zero with Claude Code & Codex.

Try Free