Forum Discussion
Fabric Data agent integration with Rayfin/Fabric App
Hello Community,
Is there a way where in we can integrate Fabric data agent within Fabric App?
Also it is Possible where we can trigger any external REST API (based on it's own auth) via Fabric app by creating some button?
Hi Nirav_Synapx,
Yes, but I would separate the two requirements because Fabric Apps and Fabric Data Agent currently have different runtime models.
Fabric Apps, built on Rayfin, is currently in Preview. Microsoft documents the deployed app as providing static frontend hosting, Fabric authentication, a managed SQL database, GraphQL APIs and storage.
You can review the current architecture in the Fabric Apps overview.
A published Fabric Data Agent works differently. Microsoft now exposes a published Data Agent as an MCP server, and an MCP client can send questions to it through the Fabric API.
The current Fabric Data Agent MCP documentation explains that the client must authenticate with Fabric and attach a valid Fabric bearer token to the MCP requests.
The important limitation for a Fabric App is authentication.
Fabric Apps uses Fabric SSO and gives the application a Rayfin session, but the application is not intended to inspect or extract the underlying Fabric access token from that session.
Therefore I would not put a Service Principal client secret or other confidential credential inside the Fabric App frontend just to call the Data Agent.
For a production implementation today, I would use an architecture such as:
Fabric App
-> server-side API/backend
-> Fabric Data Agent MCP endpoint
-> Lakehouse/Warehouse/Semantic ModelThe backend could be something such as Azure Functions, App Service or another trusted server-side component that can securely hold the Service Principal credential and call Fabric.
There is also a newer Fabric Apps data app template that provides Fabric authentication, semantic-model connectivity and AI-assisted analytical capabilities. However, I would not confuse that with directly embedding an existing published Fabric Data Agent. They are different capabilities.
For your second question about triggering an external REST API from a button, that is possible from a web application, but the authentication model matters.
If the REST endpoint is safe to call from the browser and supports CORS and an appropriate user/public authentication flow, your button can make the HTTP request directly.
If the external API requires a client secret, API key or another confidential credential, I would again put that call behind a server-side API rather than storing the credential in the Fabric App frontend.
So the architecture could be:
Fabric App button
-> backend API
-> external REST serviceAt the moment I would not treat the Fabric App GraphQL backend as a general server-side proxy for arbitrary external REST calls.
If your main goal is only conversational analysis over a Power BI semantic model, I would also evaluate the Fabric Apps data app template before introducing a full Fabric Data Agent.
If you specifically need an existing Fabric Data Agent with its instructions, data sources and MCP interface, I would use the external backend pattern for now.
AI-assisted drafting: AI was used to help structure and phrase this response. I reviewed and validated the technical content before posting.
4 Replies
- v-achippa
Community Support
Hi Nirav_Synapx,
Thank you for reaching out to Microsoft Fabric Community.
Thank you ShivekMaharajShivekMaharaj for the prompt response.
As we haven’t heard back from you, we wanted to kindly follow up to check if the solution provided by the user for the issue worked? or let us know if you need any further assistance.
Thanks and regards,
Anjan Kumar Chippa- v-achippa
Community Support
Hi Nirav_Synapx,
We wanted to kindly follow up to check if the solution provided by the user for the issue worked? or let us know if you need any further assistance.
Thanks and regards,
Anjan Kumar Chippa
- ShivekMaharaj
Community Champion
Hi Nirav_Synapx,
Yes, but I would separate the two requirements because Fabric Apps and Fabric Data Agent currently have different runtime models.
Fabric Apps, built on Rayfin, is currently in Preview. Microsoft documents the deployed app as providing static frontend hosting, Fabric authentication, a managed SQL database, GraphQL APIs and storage.
You can review the current architecture in the Fabric Apps overview.
A published Fabric Data Agent works differently. Microsoft now exposes a published Data Agent as an MCP server, and an MCP client can send questions to it through the Fabric API.
The current Fabric Data Agent MCP documentation explains that the client must authenticate with Fabric and attach a valid Fabric bearer token to the MCP requests.
The important limitation for a Fabric App is authentication.
Fabric Apps uses Fabric SSO and gives the application a Rayfin session, but the application is not intended to inspect or extract the underlying Fabric access token from that session.
Therefore I would not put a Service Principal client secret or other confidential credential inside the Fabric App frontend just to call the Data Agent.
For a production implementation today, I would use an architecture such as:
Fabric App
-> server-side API/backend
-> Fabric Data Agent MCP endpoint
-> Lakehouse/Warehouse/Semantic ModelThe backend could be something such as Azure Functions, App Service or another trusted server-side component that can securely hold the Service Principal credential and call Fabric.
There is also a newer Fabric Apps data app template that provides Fabric authentication, semantic-model connectivity and AI-assisted analytical capabilities. However, I would not confuse that with directly embedding an existing published Fabric Data Agent. They are different capabilities.
For your second question about triggering an external REST API from a button, that is possible from a web application, but the authentication model matters.
If the REST endpoint is safe to call from the browser and supports CORS and an appropriate user/public authentication flow, your button can make the HTTP request directly.
If the external API requires a client secret, API key or another confidential credential, I would again put that call behind a server-side API rather than storing the credential in the Fabric App frontend.
So the architecture could be:
Fabric App button
-> backend API
-> external REST serviceAt the moment I would not treat the Fabric App GraphQL backend as a general server-side proxy for arbitrary external REST calls.
If your main goal is only conversational analysis over a Power BI semantic model, I would also evaluate the Fabric Apps data app template before introducing a full Fabric Data Agent.
If you specifically need an existing Fabric Data Agent with its instructions, data sources and MCP interface, I would use the external backend pattern for now.
AI-assisted drafting: AI was used to help structure and phrase this response. I reviewed and validated the technical content before posting.
- pacifist
Helper II
Hi ShivekMaharaj , good info, thanks. But from what I"m hearing from the product team, the backend functions are planned (if not already released, was supposed to be done in September), do you have any more information on this? The ability to do the token exchange securely is important and should be baked into the fabric app backend support.
Keen to hear your thoughts. With regards,