Repository navigation
Description
Version
Remote Power BI MCP Server — https://api.fabric.microsoft.com/v1/mcp/powerbi
Model used
Claude Sonnet 4.6 (via GitHub Copilot CLI v1.0.2)
Description
The Remote Power BI MCP server's browser-based OAuth authentication flow stopped working around March 7–8, 2026. The authorization URL constructed by the server sends both a scope and a resource parameter on the OAuth v2.0 endpoint. This combination is invalid on v2.0 and now triggers AADSTS9010010 due to a Microsoft Entra ID enforcement change rolled out in early March 2026.
The v2.0 endpoint does not support the resource parameter (Microsoft docs). Azure AD previously tolerated this parameter silently, but stricter validation now rejects any request where resource conflicts with or duplicates the scope value.
The problematic authorization URL constructed by the server:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?
response_type=code&
client_id=aebc6443-996d-45c2-90f0-388ff96faa56&
code_challenge=RLVE6Q5yxa2kgoIBUD1FN5_Y_PKqAA9C-cqW8C2ju7w&
code_challenge_method=S256&
redirect_uri=http://127.0.0.1:50389/&
state=XOzIbjumFRWmQmrNu226Z8O29x6qt-dlakQ5MYOmISY&
scope=https://analysis.windows.net/powerbi/api/.default&
resource=https://api.fabric.microsoft.com/v1/mcp/powerbi
| Parameter | Value | Issue |
|---|---|---|
scope |
https://analysis.windows.net/powerbi/api/.default |
✅ Correct for v2.0 |
resource |
https://api.fabric.microsoft.com/v1/mcp/powerbi |
❌ Not supported in v2.0; mismatched resource |
Expected Behavior
The server initiates the browser OAuth flow, the user authenticates successfully, and the MCP client connects to https://api.fabric.microsoft.com/v1/mcp/powerbi with a valid token.
The OAuth v2.0 authorization request should include only the scope parameter. The resource parameter must be removed from the request.
Actual Behavior
The browser redirect to Azure AD returns:
AADSTS9010010: The resource parameter provided in the request doesn't match with the requested scopes.
Authentication never completes, and the MCP client reports:
MCP error -32001: Request timed out
Reproduction steps:
- Configure the Remote Power BI MCP server in any MCP client (no
headers/ pre-auth):{ "powerbi-remote": { "url": "https://api.fabric.microsoft.com/v1/mcp/powerbi", "type": "http" } } - Attempt to connect — the server initiates the browser OAuth flow.
- Browser shows the AADSTS9010010 error; authentication never completes.
- MCP client reports:
MCP error -32001: Request timed out
Additional Context
- OS: Windows 11
- Tenant: Microsoft corp (
72f988bf-86f1-41af-91ab-2d7cd011db47) - Date broken: ~March 7–8, 2026 (worked fine the prior week)
- Screenshot: [Screenshot 2026-03-09 154643.png] showing AADSTS9010010 in browser
Activity
[-][Bug]:[/-][+][Bug]:Remote MCP server OAuth flow broken — AADSTS9010010: `resource` parameter conflicts with `scope` on v2.0 endpoint[/+]adriandsa commentedon Mar 12, 2026
I am seeing the same issue in one of my mcp servers. Does anyone know the solution?
stephengodderidge commentedon Mar 16, 2026
Hey Lei Liu (@lei-liu), the GitHub Copilot CLI update caused a bug where that error is shown .
It should be resolved now. I verified this morning with
v1.0.5. You may need to update your GitHub CLI version (run/updatewith Copilot open).Can you let me know if you're still seeing issues?
stephengodderidge commentedon Mar 16, 2026
adriandsa is your issue also with the GitHub Copilot CLI and a separate MCP server?
FranFdezColoma commentedon Mar 18, 2026
Stephen Godderidge (@stephengodderidge) I am having exactly the same problem with the Dataverse MCP server for Github Copilot CLI ( 1.0.7), token expires after 1 hour and does not refresh correctly
Tools: AADSTS9010010: The resource parameter provided in the request doesn't match with the requested scopes.
naqvir90 commentedon Mar 19, 2026
I am having this error too, when testing oauth flow in the mcp inspector using . I want to add, when i use postman, it doesnt add the resource parameter and it works fine.
ericchansen commentedon Mar 20, 2026
Adding concrete data from the Copilot CLI side.
Stephen Godderidge (@stephengodderidge) mentioned this was fixed in CLI v1.0.5, but Francisco Fernandez Coloma (@FranFdezColoma) and naqvir90 are still hitting it. I believe the root cause is server-side, not CLI-side.
We confirmed that the Power BI Remote server is the only MCP server (out of 7 configured) that triggers a browser auth prompt on every CLI session start. Tested by launching with
--disable-mcp-server powerbi-remote— popup disappears completely.Inspecting the CLI's cached OAuth metadata (
~/.copilot/mcp-oauth-config/), the Power BI Remote server includes aresourceUrlfield that other servers (e.g., Dataverse MCP) do not:resourceUrlhttps://api.fabric.microsoft.com/v1/mcp/powerbiauthorizationServerUrl/common/v2.0/<tenant-id>/v2.0This
resourceUrlis what gets sent as theresourceparameter in the v2.0 authorization URL — the direct cause ofAADSTS9010010. The Dataverse MCP server omits this field and its auth works silently.The CLI does cache a refresh token for Power BI (1,743 chars), but it appears the silent token refresh path also fails — likely because the refresh request includes the same invalid
resourceparameter — forcing a full browser flow every time.Suggested fix: Remove
resourceUrlfrom the Power BI Remote server's OAuth discovery response, matching the pattern used by Dataverse MCP.Workaround:
--disable-mcp-server powerbi-remotewhen launching the CLI.Related: microsoft/mcp#1922 (tracking the startup prompt UX issue).
mfernandezfidesol commentedon Mar 23, 2026
same problem here with claude desktop
AviHack commentedon Mar 31, 2026
Affected client: Claude Cowork (Anthropic desktop app)
Confirming this issue. When adding
https://api.fabric.microsoft.com/v1/mcp/powerbias a custom remote MCP connector in Claude Cowork, clicking Connect immediately returns "Couldn't reach the MCP server" — no sign-in prompt appears at all.The tenant setting "Users can use the Power BI Model Context Protocol server endpoint (preview)" is enabled for the entire organization, so that's not the blocker.
Based on the diagnosis in this thread, the
resourceUrlfield in the OAuth discovery response is causing the auth flow to fail before it even reaches the sign-in step. This affects Claude Cowork users the same way it affects GitHub Copilot CLI users.+1 on the fix: removing
resourceUrlfrom the discovery response to match the Dataverse MCP pattern.drathore-upland commentedon Apr 2, 2026
We are seeing the same issue in an integration with Amazon QuickSight and Azure AD (Entra ID).
QuickSight generates the authorize URL and includes both:
scope=api:///SH.ALL (v2 style)
resource= (v1 style)
against the /oauth2/v2.0/authorize endpoint, which results in:
AADSTS9010010: The resource parameter provided in the request doesn't match with the requested scopes
From what we can tell, this appears to be due to stricter validation in Azure AD, since the v2 endpoint expects scope and does not support resource in the same request. ()
The challenge is that we don’t control the final authorize URL—QuickSight constructs it internally—so we cannot remove the resource parameter.
Questions:
Has there been a recent enforcement change around rejecting resource + scope on v2 endpoints?
Is there any backward compatibility or mitigation planned for third-party tools that still send resources?
Any recommended approach for integrations where the OAuth request cannot be fully controlled?
This seems like a broader compatibility issue affecting tools that haven’t fully migrated to pure v2 semantics.
LlewellynS96 commentedon Apr 19, 2026
Confirming we're hitting this too. First-time setup, never worked for us. Tenant setting is enabled.
Connecting from the claude.ai connector against https://api.fabric.microsoft.com/v1/mcp/powerbi gives us one of two errors:
Couldn't connect Microsoft Power BI — Failed to generate authorization URLCouldn't reach the MCP serverAny ETA on a fix or workaround?
isabellec23 commentedon Apr 28, 2026
Hitting the same AADSTS9010010 error connecting Claude.ai (web) to a Fabric Data Agent MCP endpoint - not just Power BI MCP. Same root cause: resource parameter on Entra v2 endpoint.
Endpoint pattern: https://api.fabric.microsoft.com/v1/mcp/workspaces/{id}/dataagents/{id}/agent
AbdullahShareef79 commentedon Apr 29, 2026
Confirming same issue connecting ChatGPT Enterprise (custom MCP connector) to https://api.fabric.microsoft.com/v1/mcp/powerbi. Tenant setting is enabled, Fabric Trial workspace configured, app registration correct. Connector creation succeeds but OAuth fails with AADSTS9010010. +1 on removing resourceUrl from the OAuth discovery response.
dshaverPIH commentedon May 4, 2026
Confirmed same issue still occurring in Claude Desktop when attempting to authenticate to the PowerBI MCP server: https://api.fabric.microsoft.com/v1/mcp/powerbi. I receive the AADSTS9010010 error.
17 remaining items
abeckett86 commentedon Jun 30, 2026
Also confirming this is still an issue. Tried this in ChatGPT, Codex and Claude.
Strangely using VScode and GitHub copilot works fine but not the external clients
CarlOhlsson commentedon Jun 30, 2026
Confirm also have the same issue with Claude Desktop on my end trying to connect to Power BI service
stefandesmet09 commentedon Jul 1, 2026
+1
RuiRomano commentedon Jul 8, 2026
Quick update: unfortunately, the fix took a little longer than expected. It is now rolling out and is expected to be fully deployed to production by the end of next week (July 18).
I'll update this issue once the rollout is complete.
RuiRomano commentedon Jul 20, 2026
The fix has now been fully deployed, and the Power BI MCP should work correctly with external clients.
Please follow the guidance in the documentation: https://learn.microsoft.com/en-us/power-bi/developer/mcp/remote-mcp-server-external-clients
Simon-SBOX commentedon Jul 20, 2026
Confirmed it's now working for me. Much appreciated.
abdelilahNaitBenamer commentedon Jul 27, 2026
Hello Rui Romano (@RuiRomano),
I confirm this works on windows machine.
But I tried to use the MCP on mac, this was my mcp.json :
{ "servers": { "powerbi-remote": { "type": "http", "url": "https://api.fabric.microsoft.com/v1/mcp/powerbi" } } }and I still get the same issues :
2026-07-27 11:36:41.137 [info] Starting server powerbi-remote
2026-07-27 11:36:41.138 [info] Connection state: Starting
2026-07-27 11:36:41.138 [info] Starting server from LocalProcess extension host
2026-07-27 11:36:41.138 [info] Connection state: Running
2026-07-27 11:36:41.243 [info] Discovered resource metadata at https://api.fabric.microsoft.com/.well-known/oauth-protected-resource/v1/mcp/powerbi
2026-07-27 11:36:41.243 [info] Using auth server metadata url: https://login.microsoftonline.com/organizations/v2.0
2026-07-27 11:36:41.481 [warning] Error fetching authorization server metadata: Error: Failed to fetch authorization server metadata from https://login.microsoftonline.com/.well-known/oauth-authorization-server/organizations/v2.0: 404
2026-07-27 11:36:41.482 [warning] Error fetching authorization server metadata: Error: Failed to fetch authorization server metadata from https://login.microsoftonline.com/.well-known/openid-configuration/organizations/v2.0: 404
2026-07-27 11:36:41.482 [info] Discovered authorization server metadata at https://login.microsoftonline.com/organizations/v2.0/.well-known/openid-configuration
2026-07-27 11:36:46.140 [info] Waiting for server to respond to initialize request...
2026-07-27 11:36:51.140 [info] Waiting for server to respond to initialize request...
2026-07-27 11:36:56.141 [info] Waiting for server to respond to initialize request...
2026-07-27 11:37:01.140 [info] Waiting for server to respond to initialize request...
2026-07-27 11:37:03.425 [warning] Error getting token from server metadata: ServerError: invalid_target: Error(s): 9010010 - Timestamp: 2026-07-27 09:37:03Z - Description: AADSTS9010010: The resource parameter provided in the request doesn't match with the requested scopes.
By adding the token to the mcp configuration this works fine, but without the token in the config it gives that error.
Could you confirm this please, thanks for helping us.
Regards
tsileo-wdi commentedon Aug 2, 2026
Cross-posting because this looks like the same root cause hitting a different Microsoft first-party MCP server: Dataverse MCP.
We're seeing an identical failure pattern connecting claude.ai's custom connector to the Dataverse MCP remote endpoint (
https://<org>.crm.dynamics.com/api/mcp): the connector fails with a generic "Authorization with the MCP server failed" +ofid_reference, while Entra sign-in logs show the underlying auth attempt succeeding cleanly every time (errorCode: 0, MFA satisfied).We dug into it and confirmed the app registration, delegated permissions (
mcp.tools+user_impersonation, both tenant-consented), redirect URI, and Allowed MCP Clients entry are all correctly configured — and a token minted directly for the same app registration authenticates against/api/mcpwith a clean200 OK. So the failure is specific to the claude.ai connector's OAuth handshake against Entra, not our tenant config.This matches the diagnosis already filed against the Dataverse MCP repo: microsoft/Dataverse-MCP#15 — the server's OAuth Protected Resource Metadata advertises a
resourcevalue (https://<org>.crm.dynamics.com/api/mcp, with the path) that doesn't match where the Dynamics CRM scopes are actually registered in Entra (https://<org>.crm.dynamics.com, without the path) — causingAADSTS9010010for spec-compliant remote clients, same shape as the bug here.That repo appears to be an unmonitored labs repo (no Microsoft response since March), so flagging it here since Rui Romano (@RuiRomano) is clearly engaged on the underlying Entra v2.0
resource+scopeenforcement change for Power BI/Fabric. Given it's hit at least three first-party MCP servers now (Power BI, Fabric Data Agents, Dataverse), is there a chance the fix being rolled out for Power BI MCP also covers Dataverse, or does that need separate engineering attention?mfernandezfidesol commentedon Aug 3, 2026
+1
jcozar87 commentedon Aug 20, 2026
Seeing this same
AADSTS9010010reproduce today (2026-08-20) againsthttps://api.fabric.microsoft.com/v1/mcp/powerbi, both from VS Code's own native MCP client (the documented, first-party path) and from a fully custom OAuth client, across two different Entra tenants. Posting the details in case it helps narrow down the root cause.Repro #1: VS Code native MCP client (first-party, as documented)
Installed via the one-click installer from the [remote MCP server docs](https://learn.microsoft.com/en-us/power-bi/developer/mcp/remote-mcp-server-get-started), no custom app registration involved — VS Code handles the OAuth client itself.
Because the token request itself fails with
AADSTS9010010(mixingresourceandscopeagainst the v2.0 token endpoint — same shape as the original report in this issue), the server never receives a token at all, henceTokenIsMissing.Repro #2: Custom OAuth client (mcp-remote and a plain MSAL/httpx client)
Separately, using a custom Entra app registration (Delegated permissions
Item.Read.All+Item.Execute.All, admin consent granted, "Users can use the Power BI Model Context Protocol server endpoint (preview)" tenant setting enabled), the token request itself succeeds (presumably because these clients sendscope=.../.defaultwithout a conflictingresourceparam, or Entra tolerates it), but the very firstinitializecall to the MCP endpoint is rejected:Decoded token claims for that request:
{ "aud": "https://analysis.windows.net/powerbi/api", "idtyp": "user", "scp": "Item.Execute.All Item.Read.All", "upn": "<redacted>", "tid": "<redacted>" }This exact
invalid_request/-32600 "Unable to process the request"response reproduced identically across:mcp-remotewith--static-oauth-client-info, and a plain Python/MSAL/httpx client)Some of the other
requestIds collected across attempts, in case they're useful for correlating server-side logs:20d04310-c836-4dd8-83bc-c110fc120d90,9978ec20-0314-4f16-be7b-4abe603dec42(this one returnedFeatureNotAvailablebefore the tenant setting was enabled — so the endpoint clearly does distinguish that case from the genericinvalid_requestone above).Question
Given the native VS Code client (first-party, documented path) fails with the same
resource/scopeconflict described in this issue, is this a live regression on the authorization-server-metadata / token-request side for the/v1/mcp/powerbiendpoint under theorganizations(multi-tenant) authority? And separately, is the genericinvalid_request/-32600response oninitialize(repro #2, where a valid delegated token is successfully obtained) expected to mean something specific — malformed request, unsupported client, or something else — since the error code/message don't indicate what's actually wrong?Happy to provide more logs/traces if useful.
mohitsingh-techo commentedon Aug 21, 2026
Another data point:
403 FeatureNotAvailableindependent of the OAuthresourcebugAdding evidence from a Google Gemini Enterprise integration, because I think there are two separate failures being conflated in this thread. The
resourceUrl/AADSTS9010010issue is real, but it isnot the only thing broken on
/v1/mcp/powerbi.Setup
Single-tenant Entra app registration (Web platform, client secret), delegated Power BI Service permissions, all admin-consented:
App.Read.All,Catalog.Read.All,Dataset.Read.All,MLModel.Execute.All,Report.Read.All,Workspace.Read.AllUser.ReadConfigured in Gemini Enterprise as a Custom MCP Server data store:
https://api.fabric.microsoft.com/v1/mcp/powerbihttps://login.microsoftonline.com/<tenant>/oauth2/v2.0/authorizehttps://login.microsoftonline.com/<tenant>/oauth2/v2.0/tokenhttps://analysis.windows.net/powerbi/api/.default offline_accessOAuth completes successfully. "Verify Auth" returns
Successfully logged in with associated identity: <user>@<tenant>. The connector shows as authenticated.Tool discovery then fails. Gemini Enterprise's
RefreshDataConnectorToolsreturns gRPC code 9FAILED_PRECONDITION("Precondition check failed"), surfaced in the UI as "Failed to reload custom actions".No tools are ever imported, so the agent has no actions to call.
Isolating it outside any MCP client
To rule out the client, I minted delegated tokens directly and called
initializeby hand — no OAuth authorize step, therefore noresourceparameter involved at all:philipedoughty commentedon Sep 2, 2026
I'm having the same AADSTS9010010 failure on the Fabric Data Warehouse MCP endpoint (https://api.fabric.microsoft.com/v1/mcp/dataPlane/sqlEndpoint), reproduced from VS Code stable (built-in MCP client) and claude.ai custom connectors on 2026-09-01.
VS Code log excerpt:
Discovered resource metadata at https://api.fabric.microsoft.com/.well-known/oauth-protected-resource/v1/mcp/dataPlane/sqlEndpoint
Error getting token: ServerError: invalid_target: AADSTS9010010: The resource parameter provided in the request doesn't match with the requested scopes.
Trace ID: e1deb430-c3cf-4236-91fd-58026e5d1f00
Correlation ID: b40a5f3c-6c90-47de-920d-55774d1b3db4
→ 401 {"errorCode":"TokenIsMissing"}
Note: the Core endpoint (/v1/mcp/core) authenticates fine with the same identity and app registration — only the dataPlane/sqlEndpoint metadata triggers the mismatch.
mohitsingh-techo commentedon Sep 2, 2026
Hey can you check if this is enabled from the admin portal, mine was fixed after enabling "Use POWERBI MCP" from PowerBI Admin dashboard.
Check Fabric Data Warehouse Admin Portal, you might have a clue there!!
URL : https://app.fabric.microsoft.com/admin-portal?experience=fabric-developer
philipedoughty commentedon Sep 10, 2026
Thanks for the tip, but I had no luck with that approach. When I access Admin portal > Tenant settings > I can only see Fabric MCP access, which is the current group my account belongs to, and has access. Would you mind sharing your setup on this page, maybe with a screen cap? Feel free to DM me as well.
harsha0x3 commentedon Oct 22, 2026
Faced same issue with entra and MCP login for our MCP gateway. Fix adding the exact URL your MCP client (.i.e, claude, VS Code, etc) sending in
resourcequery param to the entra registered app's manifest'sidentifierUrisas below:"identifierUris": [ "", "" ]