Forum Discussion

Nirav_Synapx's avatar
Nirav_Synapx
Frequent Visitor
23 days ago
Solved

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 Model

    The 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 service

    At 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's avatar
    v-achippa
    Icon for Community Support rankCommunity Support

    Hi Nirav_Synapx​,

    Thank you for reaching out to Microsoft Fabric Community.

    Thank you ShivekMaharaj​ShivekMaharaj​ 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's avatar
      v-achippa
      Icon for Community Support rankCommunity 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's avatar
    ShivekMaharaj
    Icon for Community Champion rankCommunity 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 Model

    The 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 service

    At 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's avatar
      pacifist
      Icon for Helper II rankHelper 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,