Salta l'installazione. Attivo in meno di 2 minuti.
Avvia una prova gratuita su cloud.anythingmcp.com, aggiungi Microsoft Power BI con un clic, poi punta il tuo client AI (Claude, ChatGPT, Copilot o Cursor) all'endpoint MCP generato. Niente Docker, niente git clone, nessuna esperienza di sviluppo richiesta.
In breve
Power BI REST API, con accesso tramite il tuo account Microsoft aziendale: workspace, modelli semantici, report, dashboard, dataflow, gateway e app, query DAX su un modello, origini dati, parametri, cronologia e pianificazione degli aggiornamenti, avvio o annullamento degli aggiornamenti. La modifica dei parametri del modello è disattivata all'installazione.
Prova a chiedere
Prompt di esempio per Microsoft Power BI
Clicca su un prompt per copiarlo. Incollalo in Claude, ChatGPT, Cursor, Gemini, Copilot o OpenClaw per eseguirlo contro questo connettore.
Claude è un'AI e può sbagliare. Verifica sempre le risposte.
💡 Niente installazione? Vai direttamente su cloud.anythingmcp.com. Accedi, clicca Connectors → Microsoft Power BI, inserisci le credenziali, genera una MCP API key e hai finito. Niente Docker, niente
git clone, niente server locale.
Microsoft Power BI + Microsoft Copilot
Power BI REST API, con accesso tramite il tuo account Microsoft aziendale: workspace, modelli semantici, report, dashboard, dataflow, gateway e app, query DAX su un modello, origini dati, parametri, cronologia e pianificazione degli aggiornamenti, avvio o annullamento degli aggiornamenti. La modifica dei parametri del modello è disattivata all'installazione.
Prerequisiti
Le istruzioni di setup complete sono incluse nel connettore stesso (visibili nello store quando lo selezioni). Le variabili d'ambiente richieste sono:
MICROSOFT_CLIENT_ID, MICROSOFT_CLIENT_SECRET, MICROSOFT_TENANT_ID
Step 1 — Ottieni le credenziali
La configurazione richiede circa 10 minuti, una volta sola. Ti servono un account Microsoft aziendale o dell'istituto con licenza Power BI (Free, Pro o Premium Per User) e una registrazione app gratuita in Microsoft Entra. In alcune organizzazioni solo un amministratore può dare il consenso.
- Apri https://entra.microsoft.com, poi Applications, App registrations, New registration. Si può riutilizzare la registrazione app di un altro connettore Microsoft.
- Tipi di account supportati: di solito Accounts in this organizational directory only. Power BI funziona solo con account aziendali o dell'istituto, non con account Microsoft personali.
- URI di reindirizzamento: piattaforma Web,
https://cloud.anythingmcp.com/api/mcp-oauth/callbacksu AnythingMCP Cloud, oppure<your AnythingMCP URL>/api/mcp-oauth/callbackse ospiti AnythingMCP in proprio. Deve coincidere carattere per carattere, altrimenti Microsoft risponde AADSTS50011. - API permissions, Add a permission, Power BI Service, Delegated permissions: seleziona
Workspace.Read.All,Dataset.ReadWrite.All,Report.Read.All,Dashboard.Read.All,Dataflow.ReadWrite.All,Gateway.Read.AlleApp.Read.All. Per un connettore che deve solo leggere, usa inveceDataset.Read.AlleDataflow.Read.All. Poi clicca Grant admin consent se nella tua organizzazione gli utenti non possono dare il consenso da soli. - Certificates & secrets, New client secret: copia il Value del segreto (mostrato una sola volta), non il Secret ID.
- Incolla l'Application (client) ID in
MICROSOFT_CLIENT_IDe il valore del segreto inMICROSOFT_CLIENT_SECRET. ImpostaMICROSOFT_TENANT_IDsul Directory (tenant) ID, sul tuo dominio comecontoso.onmicrosoft.comoppure suorganizationsper un'app multi-tenant;commoneconsumersnon valgono. Installa il connettore. - Nella pagina del connettore clicca Authorize with Provider e accedi con un utente che ha una licenza Power BI. Il refresh token viene salvato cifrato e gli access token si rinnovano da soli. Esegui
power_bi_list_workspacesper verificare.
Scope: il connettore chiede https://analysis.windows.net/powerbi/api/.default offline_access. .default concede i permessi Power BI selezionati al passo 4 (aggiungili o toglili lì, poi autorizza di nuovo) e offline_access fornisce il refresh token. Non aggiungere scope di Microsoft Graph a questo connettore: un token serve una sola API.
Con quali accessi: l'AI vede esattamente ciò che l'utente collegato può vedere nel servizio Power BI. I modelli con sicurezza a livello di riga restituiscono solo le righe che quell'utente può vedere.
Cosa legge: i workspace e chi vi ha accesso con quale ruolo; per ogni workspace i modelli semantici (dataset), i report e le loro pagine, le dashboard e i loro riquadri, i dataflow e le importazioni di file .pbix, .rdl, .xlsx o .json; il contenuto dell'area di lavoro personale dell'utente (My workspace), che non ha un ID di workspace, con power_bi_list_my_datasets, power_bi_list_my_reports e power_bi_list_my_dashboards; le app installate con i loro report e dashboard; le origini dati e i parametri Power Query di un modello; la cronologia degli aggiornamenti (un aggiornamento fallito riporta l'errore in serviceExceptionJson), i dettagli di un aggiornamento avanzato e la pianificazione; le transazioni di aggiornamento e le origini dati dei dataflow; i gateway locali che l'utente amministra, le loro origini dati e se un gateway riesce a raggiungerne una.
Query DAX: power_bi_execute_dax_query risponde a domande con numeri presi da un modello semantico. Richiede l'impostazione del tenant Dataset Execute Queries REST API (nei portali di amministrazione più recenti Semantic model Execute Queries REST API; Admin portal, Tenant settings, Integration settings) e i permessi Read e Build sul modello. I modelli ospitati in Azure Analysis Services non sono supportati. Una query per chiamata, che inizia con EVALUATE (eventualmente dopo DEFINE), solo DAX. Per conoscere un modello, EVALUATE COLUMNSTATISTICS() elenca tabelle e colonne e EVALUATE TOPN(5, 'Table') mostra righe di esempio. L'API non elenca le misure (funzioni INFO e query DMV vengono rifiutate), quindi l'AI ti chiede i nomi delle misure o usa quelle mostrate nel report, e preferisce le misure del modello alla somma di colonne grezze. impersonated_user_name verifica la vista di un altro utente con la sicurezza a livello di riga e richiede il permesso di scrittura sul modello.
Cosa scrive: power_bi_refresh_dataset, power_bi_cancel_refresh e power_bi_refresh_dataflow sono attivi all'installazione. Un aggiornamento carica le origini e conta nel limite giornaliero, quindi l'AI chiede conferma prima di avviarlo. L'aggiornamento di un dataset risponde 202 senza contenuto; la nuova esecuzione compare in cima a power_bi_get_refresh_history con stato Unknown finché è in corso. La capacità condivisa (Pro) consente 8 aggiornamenti al giorno per modello, compresi quelli pianificati, e solo notify_option. Opzioni come type, objects o commit_mode lo rendono un aggiornamento avanzato, che richiede capacità Premium, PPU o Fabric e non deve inviare notify_option. Solo gli aggiornamenti avanzati si possono seguire con power_bi_get_refresh_details e annullare con power_bi_cancel_refresh.
Disattivato all'installazione: power_bi_update_dataset_parameters, che modifica i parametri Power Query di un modello (per esempio quale server o quale periodo carica) e ha effetto al prossimo aggiornamento. Attivalo come singolo tool solo se l'AI deve farlo.
Formati dei dati: gli elenchi arrivano come {"value": [...]}. Gli ID sono GUID. Gli orari sono ISO 8601 in UTC. webUrl apre l'elemento nel servizio Power BI. I risultati DAX arrivano in results[0].tables[0].rows, con chiavi di colonna come Table[Column] e colonne calcolate come [Name].
Paginazione e filtri: i tool di elenco restituiscono tutto in una volta, tranne power_bi_list_workspaces e power_bi_list_workspace_users, che si sfogliano con top e skip. I workspace si filtrano con OData, per esempio contains(name,'Sales').
Limiti: una query DAX restituisce una tabella con al massimo 100.000 righe o 1.000.000 di valori, a seconda di quale soglia si raggiunge prima, e 15 MB; ogni utente può eseguire 120 query al minuto. La Power BI REST API limita le chiamate per utente e per tenant, e una risposta 429 contiene Retry-After. Le capacità Premium rallentano gli aggiornamenti quando sono sovraccariche, e un aggiornamento rallentato per più di un'ora fallisce.
Errori comuni: 401 indica che l'autorizzazione è scaduta o revocata, o che il client secret è scaduto: incolla un nuovo segreto se serve e clicca di nuovo Authorize with Provider. 403 PowerBINotAuthorizedException o Unauthorized indica che l'utente non ha accesso a quel workspace o elemento, che manca un permesso del passo 4, oppure, per DAX, che mancano il permesso Build o l'impostazione del tenant. 404 ItemNotFound o PowerBIEntityNotFound indica un ID errato o un elemento in un altro workspace. 400 DatasetExecuteQueriesError indica una query DAX non valida; il messaggio del motore spiega perché. 400 su un aggiornamento indica notify_option inviato con opzioni avanzate, opzioni avanzate su capacità condivisa o un aggiornamento già in corso.
Il connettore non crea, modifica né elimina report, dashboard o modelli, non carica file .pbix e non usa Microsoft Graph. Non funziona con account Microsoft personali.
Step 2 — Installa l'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
Step 3 — Aggiungi il connettore in Microsoft Copilot
L'URL del tuo server: in AnythingMCP apri MCP Servers → il server su cui si trova questo connettore e copia il suo URL (
https://cloud.anythingmcp.com/mcp/…). Usalo ovunque questa guida mostraYOUR_SERVER_ID.
Microsoft Copilot usa i server MCP tramite gli agenti creati in Copilot Studio: aggiungi AnythingMCP a un agente come strumento, poi pubblichi l'agente in Microsoft 365 Copilot e in Teams. Copilot Studio si collega dal cloud di Microsoft via Streamable HTTP, che AnythingMCP supporta.
- In Copilot Studio apri il tuo agente (o creane uno), vai su Tools e scegli Add a tool → New tool → Model Context Protocol.
- Inserisci un Server name (per esempio
AnythingMCP), una Server description che dica cosa fa il connettore e il Server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID. Copilot Studio usa la descrizione per decidere quando chiamare il server. - Come autenticazione scegli API key, imposta Type su Header e come nome dell'header
X-API-Key, poi seleziona Create. - In Add tool scegli Create a new connection, incolla una chiave API MCP di AnythingMCP (MCP Servers → il tuo server → API keys) e seleziona Add to agent.
- Provalo nel riquadro Test dell'agente: chiedi qualcosa che richiede i tool di
Microsoft Power BI. - Seleziona Publish, poi Channels → Microsoft 365 and Microsoft Teams, lascia selezionato Make agent available in Microsoft Copilot e scegli Add channel. See agent in Teams lo installa per te; in Microsoft 365 Copilot scrivi @ e scegli l'agente.
Preferisci un accesso per ogni utente? Al posto della chiave API scegli OAuth 2.0 → Dynamic discovery: ogni persona accede ad AnythingMCP la prima volta che l'agente lo chiama.
Usi il self-hosting? Usa l'indirizzo HTTPS pubblico della tua istanza al posto di https://cloud.anythingmcp.com. Copilot Studio si collega dal cloud di Microsoft, quindi localhost non funziona.
Tool disponibili
| 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) |
Esempi di prompt
- "Quali modelli semantici del workspace Vendite hanno fallito l'ultimo aggiornamento, e perché?"
- "Secondo il modello dietro il report Panoramica vendite, qual è stato il fatturato per regione nel Q3 2026?"
- "Mostrami tabelle e colonne del modello Finanza e cinque righe di esempio della tabella Ordini."
- "Elenca le pagine del report Executive Summary e i riquadri della dashboard KPI."
- "Mostra la cronologia di oggi degli aggiornamenti del modello Magazzino, poi avvia un aggiornamento quando confermo."
FAQ
Per quale Copilot vale? Per Microsoft 365 Copilot in azienda, tramite gli agenti di Copilot Studio. L'app Microsoft Copilot per account personali non permette di aggiungere un proprio server MCP.
Cosa mi serve? Un account di lavoro con accesso a Copilot Studio (licenza o prova) per creare l'agente. Chi lo usa in Microsoft 365 Copilot o in Teams deve avere accesso all'agente: condividilo, oppure chiedi a un amministratore di pubblicarlo per l'organizzazione. Se la tua organizzazione applica criteri sui dati ai connettori di Power Platform, valgono anche per i server MCP.
L'agente non chiama i tool. Controlla che il nome dell'header sia esattamente X-API-Key e che la chiave appartenga allo stesso server MCP dell'URL, e scrivi una Server description precisa: Copilot Studio la usa per decidere quando chiamare il server. Dopo ogni modifica pubblica di nuovo l'agente; in una chat già aperta scrivi "start over" per passare alla nuova versione.
Prossimi passi
- Landing del connettore
- Collegare a Claude
- Collegare a ChatGPT
- Collegare a Cursor
- Collegare a Gemini
- Collegare a Meta Muse
Questa guida ti è stata utile?