PowerBI MCP Server
PowerBI MCP Server
Servidor Model Context Protocol (MCP) totalmente funcional para la integración con Microsoft Power BI a través de Azure AD API.
🎯 Características
📖 Operaciones READ (7 herramientas):
get_workspaces- Obtención de la lista de todos los workspaces disponiblesget_datasets- Obtención de la lista de datasets (con posibilidad de filtrar por workspace)get_reports- Obtención de la lista de informes (con posibilidad de filtrar por workspace)get_dataset_tables- Obtención de la estructura de tablas del datasetquery_dataset- Ejecución de consultas DAX al datasetrefresh_dataset- Inicio de la actualización del datasetget_refresh_history- Obtención del historial de actualizaciones del dataset
🏗️ Gestión de WORKSPACE (3 herramientas):
create_workspace- Creación de nuevos workspacesdelete_workspace- Eliminación de workspacesadd_workspace_user- Adición de usuarios con permisos de acceso
📊 Gestión de DATASET (3 herramientas):
create_dataset- Creación de datasets con tablas y esquemadelete_dataset- Eliminación de datasetsupdate_dataset- Actualización de la configuración de datasets
🗃️ Gestión de TABLAS (3 herramientas):
create_table- Creación de tablas en datasetsdelete_table- Eliminación de tablasupdate_table- Modificación de la estructura de tablas
📋 Gestión de COLUMNAS (3 herramientas):
add_column- Adición de columnas con tipos de datosdelete_column- Eliminación de columnasupdate_column- Cambio de propiedades de columnas
🧮 Gestión de MEDIDAS (3 herramientas):
create_measure- Creación de medidas calculadas (DAX)delete_measure- Eliminación de medidasupdate_measure- Actualización de expresiones DAX
📈 Gestión de INFORMES (3 herramientas):
create_report- Creación de nuevos informesdelete_report- Eliminación de informesclone_report- Clonación de informes
📥 Importación de DATOS (2 herramientas):
add_table_rows- Adición de datos a las tablasclear_table_rows- Limpieza de datos de las tablas
🌐 Gestión de GATEWAY (2 herramientas):
get_gateways- Obtención de la lista de gatewaysget_gateway_datasources- Obtención de fuentes de datos del gateway
TOTAL: 28 herramientas MCP totalmente funcionales para la gestión completa de PowerBI.
Funciones compatibles:
✅ Gestión completa de PowerBI: desde la creación de workspaces hasta la adición de visualizaciones
✅ Autenticación a través de Azure AD (Service Principal)
✅ Actualización automática de tokens
✅ Manejo integral de errores y registro de logs
✅ Operaciones CRUD para todas las entidades principales
✅ Ejecución de consultas DAX y medidas calculadas
✅ Importación de datos y gestión de tablas
✅ Integración con Gateway para fuentes de datos externas
✅ Gestión de workspaces y permisos
Related MCP server: PowerBI MCP Server
📋 Requisitos
Node.js 18+
TypeScript
Aplicación registrada en Azure AD
Permisos para Power BI API
🚀 Instalación
1. Clonación e instalación de dependencias
git clone <repository-url>
cd powerbi_mcp_server
npm install2. Configuración de la aplicación Azure AD
Vaya a Azure Portal → App registrations
Cree una nueva aplicación o use una existente
En la sección "API permissions" agregue:
Power BI Service permissions:
Dataset.Read.AllDataset.ReadWrite.AllReport.Read.AllWorkspace.Read.All
Microsoft Graph (opcional):
User.Read
En la sección "Certificates & secrets" cree un nuevo client secret
Copie el Application (client) ID, Directory (tenant) ID y el client secret
3. Configuración de variables de entorno
Copie .env.example a .env y complételo:
cp .env.example .envEdite .env:
# Azure AD Configuration
AZURE_CLIENT_ID=your_application_client_id
AZURE_CLIENT_SECRET=your_client_secret
AZURE_TENANT_ID=your_tenant_id
# PowerBI API Configuration
POWERBI_API_URL=https://api.powerbi.com/v1.0/myorg
# Logging
LOG_LEVEL=info4. Compilación del proyecto
npm run build🎮 Uso
Inicio del servidor
npm start
# или для development:
npm run devIntegración con Claude Desktop
Agregue al archivo de configuración de Claude Desktop:
{
"mcpServers": {
"powerbi": {
"command": "node",
"args": ["/path/to/powerbi_mcp_server/build/index.js"],
"env": {
"AZURE_CLIENT_ID": "your_client_id",
"AZURE_CLIENT_SECRET": "your_client_secret",
"AZURE_TENANT_ID": "your_tenant_id"
}
}
}
}Uso en clientes compatibles con MCP
Después de la conexión, están disponibles las siguientes herramientas:
Obtención de workspaces
get_workspaces()Obtención de datasets
get_datasets(workspace_id?: string)Ejecución de consulta DAX
query_dataset(
dataset_id: "your-dataset-id",
dax_query: "EVALUATE VALUES('Table'[Column])",
workspace_id?: "workspace-id"
)Creación de un nuevo dataset con tabla
create_dataset(
name: "Sales Dataset",
tables: [{
name: "Sales",
columns: [
{ name: "Date", dataType: "Datetime" },
{ name: "Amount", dataType: "Double" },
{ name: "Product", dataType: "String" }
],
measures: [{
name: "Total Sales",
expression: "SUM(Sales[Amount])",
formatString: "Currency"
}]
}],
workspace_id?: "workspace-id"
)Adición de datos a una tabla
add_table_rows(
dataset_id: "dataset-id",
table_name: "Sales",
rows: [
["2024-01-01", 1000, "Product A"],
["2024-01-02", 1500, "Product B"]
],
workspace_id?: "workspace-id"
)📊 Ejemplos de uso
Ejemplo 1: Obtención de todos los workspaces
// Tool call: get_workspaces
// Response:
{
"success": true,
"data": [
{
"id": "workspace-guid",
"name": "My Workspace",
"isReadOnly": false,
"isOnDedicatedCapacity": true
}
],
"count": 1
}Ejemplo 2: Consulta DAX
// Tool call: query_dataset
{
"dataset_id": "dataset-guid",
"dax_query": "EVALUATE TOPN(10, 'Sales', 'Sales'[Amount], DESC)",
"workspace_id": "workspace-guid"
}
// Response:
{
"success": true,
"data": {
"tables": [
{
"rows": [
["Product A", 1000],
["Product B", 800]
]
}
]
}
}🔧 Desarrollo
Estructura del proyecto
src/
├── auth.ts # Azure AD authentication
├── powerbi-client.ts # PowerBI REST API client
├── server.ts # MCP server implementation
├── types.ts # TypeScript interfaces
├── logger.ts # Logging configuration
└── index.ts # Entry pointComandos de desarrollo
npm run build # Сборка TypeScript
npm run dev # Development режим
npm start # Production запуск🛡️ Seguridad
✅ Almacenamiento seguro de tokens y actualización automática
✅ Nunca se registran credenciales ni tokens
✅ Validación de todos los parámetros entrantes
✅ HTTPS para todas las llamadas API
✅ Manejo de errores para todos los escenarios
📝 Registro de logs
El servidor usa Winston para el registro de logs. El nivel de registro se configura mediante la variable LOG_LEVEL:
error- solo erroreswarn- advertencias y erroresinfo- mensajes informativos (por defecto)debug- información de depuración detallada
❗ Solución de problemas
Problema: "Authentication failed"
Solución: Verifique la corrección de las credenciales y permisos de Azure AD
Problema: "Dataset not found"
Solución: Asegúrese de que el service principal tenga acceso al workspace/dataset
Problema: "DAX query failed"
Solución: Verifique la sintaxis de la consulta DAX y los permisos de acceso al dataset
Problema: "MCP connection failed"
Solución: Verifique que el servidor esté iniciado correctamente y sea accesible a través de stdio
📖 Recursos adicionales
📄 Licencia
Licencia ISC
🤝 Contribución al proyecto
Se aceptan pull requests e informes de issues. Antes de realizar cambios:
Asegúrese de que todas las pruebas pasen
Siga el code style del proyecto
Actualice la documentación si es necesario
Creado para el ecosistema Model Context Protocol 🚀
This server cannot be deployed
Maintenance
Related MCP Connectors
- BasedashOAuthcom.basedash
Governed BI MCP. Ask questions of live company data and list workspace sources via OAuth.
Manage Microsoft 365 email, calendar, contacts and inbox rules via the Graph API with OAuth 2.0.
Permissioned access to Outlook, OneDrive and Teams via the user's own Microsoft account
- ZopDev MCPOAuthdev.zop
Cloud cost, inventory and governance on AWS/Azure/GCP. Read-only by default, optional scoped writes
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to programmatically manage Power BI workspaces, reports, and dashboards while executing DAX queries and triggering dataset refreshes. It supports secure OAuth2 authentication for operations like report exporting, workspace management, and real-time push dataset updates.14 npm4MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to query PowerBI workspaces, datasets, and execute DAX queries through the PowerBI REST API.717 PyPIMIT
- AlicenseNot gradedqualityDmaintenanceEnables discovery of Power BI workspaces and datasets, retrieval of semantic model definitions (TMDL), and execution of DAX queries through the Power BI and Microsoft Fabric REST APIs, using MSAL/WAM authentication for secure token caching.MIT
- FlicenseAqualityDmaintenanceEnables discovery of Power BI workspaces and semantic models via REST API and Microsoft Modeling MCP, with authentication options including service principal and device login.7-