snahrup/microsoft-fabric-mcp
If you are the rightful owner of microsoft-fabric-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Microsoft Fabric MCP Server is a Model Context Protocol server that facilitates interaction between AI assistants like Claude and Microsoft Fabric and Power BI services.
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
-
Check Service Principal Permissions
- Ensure the service principal is added to the Power BI workspace
- Verify API permissions in Azure Portal
-
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
-
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.