Sáltate la instalación. Funcionando en menos de 2 minutos.
Inicia una prueba gratuita en cloud.anythingmcp.com, añade Microsoft Power BI con un clic y apunta tu cliente de IA (Claude, ChatGPT, Copilot o Cursor) al endpoint MCP generado. Sin Docker, sin git clone, sin experiencia de desarrollo.
Resumen
Power BI REST API, con inicio de sesión con tu cuenta profesional de Microsoft: áreas de trabajo, modelos semánticos, informes, paneles, flujos de datos, puertas de enlace y aplicaciones, consultas DAX contra un modelo, orígenes de datos, parámetros, historial y programación de actualizaciones, e iniciar o cancelar actualizaciones. Cambiar los parámetros del modelo viene desactivado al instalar.
Prueba a pedir
Prompts de ejemplo para Microsoft Power BI
Haz clic en un prompt para copiarlo. Pégalo en Claude, ChatGPT, Cursor, Gemini, Copilot u OpenClaw para ejecutarlo contra este conector.
Claude es IA y puede equivocarse. Verifica siempre las respuestas.
💡 ¿Sin instalación? Usa cloud.anythingmcp.com directamente. Inicia sesión, pulsa Connectors → Microsoft Power BI, pega tus credenciales, genera una MCP API key y listo. Sin Docker, sin
git clone, sin servidor local.
Microsoft Power BI + Microsoft Copilot
Power BI REST API, con inicio de sesión con tu cuenta profesional de Microsoft: áreas de trabajo, modelos semánticos, informes, paneles, flujos de datos, puertas de enlace y aplicaciones, consultas DAX contra un modelo, orígenes de datos, parámetros, historial y programación de actualizaciones, e iniciar o cancelar actualizaciones. Cambiar los parámetros del modelo viene desactivado al instalar.
Requisitos previos
Las instrucciones de configuración completas están incluidas en el conector (visibles en el store al seleccionarlo). Las variables de entorno requeridas:
MICROSOFT_CLIENT_ID, MICROSOFT_CLIENT_SECRET, MICROSOFT_TENANT_ID
Paso 1 — Obtener credenciales
La configuración lleva unos 10 minutos, una sola vez. Necesitas una cuenta profesional o educativa de Microsoft con licencia de Power BI (Free, Pro o Premium Per User) y un registro de aplicación gratuito en Microsoft Entra. En algunas organizaciones solo un administrador puede dar el consentimiento.
- Abre https://entra.microsoft.com, luego Applications, App registrations, New registration. Se puede reutilizar el registro de aplicación de otro conector de Microsoft.
- Tipos de cuenta admitidos: lo habitual es Accounts in this organizational directory only. Power BI solo funciona con cuentas profesionales o educativas, no con cuentas Microsoft personales.
- URI de redirección: plataforma Web,
https://cloud.anythingmcp.com/api/mcp-oauth/callbacken AnythingMCP Cloud, o<your AnythingMCP URL>/api/mcp-oauth/callbacksi alojas AnythingMCP tú mismo. Debe coincidir carácter por carácter; si no, Microsoft responde AADSTS50011. - API permissions, Add a permission, Power BI Service, Delegated permissions: marca
Workspace.Read.All,Dataset.ReadWrite.All,Report.Read.All,Dashboard.Read.All,Dataflow.ReadWrite.All,Gateway.Read.AllyApp.Read.All. Para un conector que solo deba leer, usa en su lugarDataset.Read.AllyDataflow.Read.All. Después haz clic en Grant admin consent si en tu organización los usuarios no pueden dar el consentimiento por sí mismos. - Certificates & secrets, New client secret: copia el Value del secreto (se muestra una sola vez), no el Secret ID.
- Pega el Application (client) ID en
MICROSOFT_CLIENT_IDy el valor del secreto enMICROSOFT_CLIENT_SECRET. DefineMICROSOFT_TENANT_IDcon el Directory (tenant) ID, con tu dominio comocontoso.onmicrosoft.como conorganizationspara una aplicación multiinquilino;commonyconsumersno sirven. Instala el conector. - En la página del conector haz clic en Authorize with Provider e inicia sesión con un usuario que tenga licencia de Power BI. El refresh token se guarda cifrado y los access tokens se renuevan solos. Ejecuta
power_bi_list_workspacespara comprobarlo.
Scope: el conector pide https://analysis.windows.net/powerbi/api/.default offline_access. .default concede los permisos de Power BI marcados en el paso 4 (añádelos o quítalos allí y vuelve a autorizar) y offline_access da el refresh token. No añadas scopes de Microsoft Graph a este conector: un token sirve a una sola API.
Con qué acceso: la IA ve exactamente lo que el usuario conectado puede ver en el servicio Power BI. Los modelos con seguridad de nivel de fila devuelven solo las filas que ese usuario puede ver.
Qué lee: las áreas de trabajo y quién tiene acceso con qué rol; por área de trabajo, los modelos semánticos (datasets), los informes y sus páginas, los paneles y sus iconos, los flujos de datos y las importaciones de archivos .pbix, .rdl, .xlsx o .json; el contenido de Mi área de trabajo del usuario, que no tiene id de área, con power_bi_list_my_datasets, power_bi_list_my_reports y power_bi_list_my_dashboards; las aplicaciones instaladas con sus informes y paneles; los orígenes de datos y parámetros de Power Query de un modelo; el historial de actualizaciones (una actualización fallida lleva su error en serviceExceptionJson), los detalles de una actualización mejorada y la programación; las transacciones de actualización y los orígenes de datos de los flujos de datos; las puertas de enlace locales que administra el usuario, sus orígenes de datos y si una puerta de enlace llega a uno de ellos.
Consultas DAX: power_bi_execute_dax_query responde preguntas con cifras de un modelo semántico. Requiere la opción de inquilino Dataset Execute Queries REST API (en portales de administración más recientes, Semantic model Execute Queries REST API; Admin portal, Tenant settings, Integration settings) y permisos Read y Build sobre el modelo. Los modelos alojados en Azure Analysis Services no se admiten. Una consulta por llamada, que empieza por EVALUATE (opcionalmente tras DEFINE), solo DAX. Para conocer un modelo, EVALUATE COLUMNSTATISTICS() lista sus tablas y columnas y EVALUATE TOPN(5, 'Table') muestra filas de ejemplo. La API no lista las medidas (las funciones INFO y las consultas DMV se rechazan), así que la IA te pregunta los nombres de las medidas o usa las que muestra el informe, y prefiere las medidas del modelo a sumar columnas en bruto. impersonated_user_name prueba la vista de otro usuario con seguridad de nivel de fila y requiere permiso de escritura sobre el modelo.
Qué escribe: power_bi_refresh_dataset, power_bi_cancel_refresh y power_bi_refresh_dataflow están activos al instalar. Una actualización carga los orígenes y cuenta para el límite diario, así que la IA te pide confirmación antes de iniciarla. La actualización de un dataset responde 202 sin cuerpo; la nueva ejecución aparece arriba en power_bi_get_refresh_history con estado Unknown mientras se ejecuta. La capacidad compartida (Pro) permite 8 actualizaciones al día por modelo, programadas incluidas, y solo notify_option. Opciones como type, objects o commit_mode la convierten en una actualización mejorada, que necesita capacidad Premium, PPU o Fabric y no debe enviar notify_option. Solo las actualizaciones mejoradas se pueden seguir con power_bi_get_refresh_details y cancelar con power_bi_cancel_refresh.
Desactivada al instalar: power_bi_update_dataset_parameters, que cambia parámetros de Power Query de un modelo (por ejemplo qué servidor o qué periodo carga) y surte efecto en la siguiente actualización. Actívala como herramienta individual solo si la IA debe hacerlo.
Formatos de datos: las listas llegan como {"value": [...]}. Los ids son GUID. Las horas son ISO 8601 en UTC. webUrl abre el elemento en el servicio Power BI. Los resultados DAX llegan en results[0].tables[0].rows, con claves de columna como Table[Column] y columnas calculadas como [Name].
Paginación y filtros: las herramientas de lista devuelven todo de una vez, salvo power_bi_list_workspaces y power_bi_list_workspace_users, que paginan con top y skip. Las áreas de trabajo se filtran con OData, por ejemplo contains(name,'Sales').
Límites: una consulta DAX devuelve una tabla con como máximo 100.000 filas o 1.000.000 de valores, lo que llegue antes, y 15 MB; cada usuario puede ejecutar 120 consultas por minuto. La Power BI REST API limita por usuario y por inquilino, y una respuesta 429 trae Retry-After. Las capacidades Premium ralentizan las actualizaciones cuando están sobrecargadas, y una actualización limitada durante más de una hora falla.
Errores habituales: 401 significa que la autorización caducó o fue revocada, o que el client secret caducó: pega un secreto nuevo si hace falta y vuelve a hacer clic en Authorize with Provider. 403 PowerBINotAuthorizedException o Unauthorized significa que el usuario no tiene acceso a esa área o elemento, que falta un permiso del paso 4 o, para DAX, que falta el permiso Build o la opción de inquilino. 404 ItemNotFound o PowerBIEntityNotFound significa un id incorrecto o un elemento en otra área de trabajo. 400 DatasetExecuteQueriesError significa que la consulta DAX no es válida; el mensaje del motor dice por qué. 400 en una actualización significa que se envió notify_option con opciones mejoradas, que se usaron opciones mejoradas en capacidad compartida o que ya hay una actualización en curso.
El conector no crea, edita ni borra informes, paneles o modelos, no sube archivos .pbix y no usa Microsoft Graph. No funciona con cuentas Microsoft personales.
Paso 2 — Instalar el adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Paso 3 — Añadir el conector en Microsoft Copilot
La URL de tu servidor: en AnythingMCP abre MCP Servers → el servidor donde está este conector y copia su URL (
https://cloud.anythingmcp.com/mcp/…). Úsala donde esta guía muestraYOUR_SERVER_ID.
Microsoft Copilot usa servidores MCP a través de agentes creados en Copilot Studio: añades AnythingMCP a un agente como herramienta y luego publicas el agente en Microsoft 365 Copilot y Teams. Copilot Studio se conecta desde la nube de Microsoft por Streamable HTTP, que AnythingMCP admite.
- En Copilot Studio, abre tu agente (o crea uno), ve a Tools y elige Add a tool → New tool → Model Context Protocol.
- Escribe un Server name (por ejemplo
AnythingMCP), una Server description que diga qué hace el conector y la Server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID. Copilot Studio usa la descripción para decidir cuándo llamar al servidor. - En la autenticación, elige API key, pon Type en Header y
X-API-Keycomo nombre de la cabecera, y selecciona Create. - En Add tool, elige Create a new connection, pega una clave de API MCP de AnythingMCP (MCP Servers → tu servidor → API keys) y selecciona Add to agent.
- Pruébalo en el panel Test del agente: pide algo que necesite las herramientas de
Microsoft Power BI. - Selecciona Publish y luego Channels → Microsoft 365 and Microsoft Teams, deja marcada Make agent available in Microsoft Copilot y elige Add channel. See agent in Teams lo instala para ti; en Microsoft 365 Copilot, escribe @ y elige el agente.
¿Prefieres que cada persona inicie sesión? En lugar de la clave de API elige OAuth 2.0 → Dynamic discovery: cada usuario inicia sesión en AnythingMCP la primera vez que el agente lo llama.
¿Lo alojas tú mismo? Usa la dirección HTTPS pública de tu instancia en lugar de https://cloud.anythingmcp.com. Copilot Studio se conecta desde la nube de Microsoft, así que localhost no funciona.
Herramientas disponibles
| Tool | What it does |
|---|---|
power_bi_list_workspaces | List the workspaces (groups) the signed-in user can access: id, name, isReadOnly, isOnDedicatedCapacity (Premium or Fabric capacity) and… |
power_bi_get_workspace | Read one workspace: name, read-only flag, capacity and default semantic model storage format |
power_bi_list_workspace_users | List who has access to a workspace: email or app id, display name, principalType (User, Group, App) and groupUserAccessRight (Admin… |
power_bi_list_datasets | List the semantic models (datasets) of a workspace: id, name, configuredBy (owner), isRefreshable, isOnPremGatewayRequired… |
power_bi_list_my_datasets | List the semantic models (datasets) in the signed-in user's My workspace |
power_bi_get_dataset | Read one semantic model (dataset) of a workspace: name, owner (configuredBy), isRefreshable, storage mode, whether it needs a gateway or an… |
power_bi_execute_dax_query | Run a DAX query against a semantic model and get the rows back as JSON (results[0].tables[0].rows, keys like "Table[Column]" or "[Measure]") |
power_bi_list_dataset_datasources | List the data sources of a semantic model: datasourceType (Sql, AnalysisServices, SharePointList, Web, File, ...), connectionDetails… |
power_bi_list_dataset_parameters | List the Power Query parameters of a semantic model: name, type, currentValue, isRequired and suggestedValues |
power_bi_get_refresh_history | Refresh history of a semantic model, newest first: requestId, refreshType (Scheduled, OnDemand, ViaApi, ...), startTime, endTime, status… |
power_bi_get_refresh_details | Execution details of one refresh of a semantic model (enhanced refreshes started through the API on Premium, PPU or Fabric capacity)… |
power_bi_get_refresh_schedule | The scheduled refresh of a semantic model: enabled, days, times, localTimeZoneId and notifyOption |
power_bi_list_reports | List the reports of a workspace: id, name, reportType (PowerBIReport or PaginatedReport), the datasetId it reads, description and webUrl |
power_bi_list_my_reports | List the reports in the signed-in user's My workspace: id, name, type, datasetId and webUrl |
power_bi_get_report | Read one report of a workspace: name, type, the datasetId (semantic model) behind it, description and webUrl |
power_bi_list_report_pages | List the pages of a Power BI report: name (the internal id used in URLs), displayName and order |
power_bi_list_dashboards | List the dashboards of a workspace: id, displayName, isReadOnly and webUrl |
power_bi_list_my_dashboards | List the dashboards in the signed-in user's My workspace: id, displayName, isReadOnly and webUrl |
power_bi_list_dashboard_tiles | List the tiles of a dashboard: id, title, the reportId and datasetId each tile comes from, and its size (rowSpan, colSpan) |
power_bi_list_dataflows | List the dataflows (Gen1) of a workspace: objectId, name, description and configuredBy |
power_bi_list_dataflow_transactions | Refresh transactions of a dataflow, newest first: id, refreshType, startTime, endTime and status |
power_bi_list_dataflow_datasources | List the data sources a dataflow reads: type, connection details and gateway ids |
power_bi_list_gateways | List the on-premises data gateways the signed-in user administers: id, name, type and gatewayStatus |
power_bi_list_gateway_datasources | List the data sources configured on a gateway: id, datasourceName, datasourceType, connectionDetails and credentialType |
power_bi_get_gateway_datasource_status | Check whether a gateway can reach one of its data sources |
power_bi_list_apps | List the Power BI apps installed for the signed-in user: id, name, description, publishedBy and lastUpdate |
power_bi_get_app | Read one installed app: name, description, publisher and last update |
power_bi_list_app_reports | List the reports of an installed app (ids are the app copies; datasetId names the semantic model) |
power_bi_list_app_dashboards | List the dashboards of an installed app: id, displayName, isReadOnly and webUrl |
power_bi_list_imports | List the imports (uploads of .pbix, .rdl, .xlsx or .json files) of a workspace: id, name, importState (Publishing, Succeeded, Failed)… |
power_bi_get_import | Read one import of a workspace: its state and the reports and semantic models it created |
power_bi_refresh_dataset | Start a refresh of a semantic model |
power_bi_cancel_refresh | Cancel a running enhanced refresh of a semantic model (one started through the API with enhanced options) |
power_bi_refresh_dataflow | Start a refresh of a dataflow |
power_bi_update_dataset_parameters | Change Power Query parameter values of a semantic model (for example a server name or a date range) |
Ejemplos de prompts
- "¿Qué modelos semánticos del área de trabajo Ventas fallaron en su última actualización y por qué?"
- "Según el modelo detrás del informe Resumen de ventas, ¿cuánto se facturó por región en el T3 de 2026?"
- "Muéstrame las tablas y columnas del modelo Finanzas y cinco filas de ejemplo de la tabla Pedidos."
- "Lista las páginas del informe Resumen ejecutivo y los iconos del panel de KPI."
- "Muestra el historial de actualizaciones de hoy del modelo Inventario y luego inicia una actualización cuando lo confirme."
FAQ
¿Para qué Copilot es? Para Microsoft 365 Copilot en el trabajo, mediante agentes de Copilot Studio. La app de Microsoft Copilot para cuentas personales no permite añadir tu propio servidor MCP.
¿Qué necesito? Una cuenta de trabajo con acceso a Copilot Studio (licencia o prueba) para crear el agente. Quien lo use en Microsoft 365 Copilot o Teams necesita acceso al agente: compártelo o pide a un administrador que lo publique para la organización. Si tu organización aplica directivas de datos a los conectores de Power Platform, también cubren los servidores MCP.
El agente no llama a las herramientas. Comprueba que el nombre de la cabecera sea exactamente X-API-Key y que la clave pertenezca al mismo servidor MCP que la URL, y escribe una Server description concreta: Copilot Studio la usa para decidir cuándo llamar al servidor. Vuelve a publicar el agente después de cada cambio; en un chat abierto, escribe "start over" para usar la nueva versión.
Siguientes pasos
- Página del conector
- Conectar a Claude
- Conectar a ChatGPT
- Conectar a Cursor
- Conectar a Gemini
- Conectar a Meta Muse
¿Te ha sido útil esta guía?