Configure Fabric External Resource

This article describes the fourth step of Connecting to Fabric Data Agent MCP Server. Configure Concierge External Resource in Metric Insights account.

Prerequisites:

  • Data from Microsoft Power BI account;
  • For "User OAuth" Auth Type: Credentials from Azure account.

1. Open Metric Insights Account

Go to Metric Insights, access Admin > Concierge Setup and open the Content Sources tab

  1. [+ Add External Resource Configuration]
  2. Select "Microsoft Fabric Data Agent" option.

2. Authentication Tab

The Name is generated automatically, but it can be changed if necessary.

2.1. Auth Type: User OAuth

Choosing "User OAuth" type of authentication means that the Token will be requested and then automatically inserted to the configuration code by Metric Insights. Concierge checks what accesses the User that makes query has and provides answers according to them. "User OAuth" authentication type is used when the Fabric has a security model configured which gives users different access rights.

The credentials are obtained in Azure Account.

2.2. Auth Type: Inherited from Plugin

Choosing "Inherited from Plugin" type of authentication means that the Token will be requested using credentials from the Power BI plugin and then automatically inserted to the configuration code by Metric Insights.

Select the Data Source from which to inherit authentication. The dropdown menu contains only Data Sources that use OAuth authentication for connection. Data Sources set up with Service Principal, Password or Identity profile authentication method can not be used for External Resource.

NOTE: For the "Inherited from Plugin" authentication type to work correctly, make sure the corresponding Application in Azure account has all the necessary permissions.

3. Configuration Tab

Proceed to Configuration tab

  1. Icon: To add a custom icon, upload an SVG image on a transparent background.
  2. A block of example JSON code is added to the field automatically. The parts in double curvy brackets ("{{}}") has to be filled with information specific to your instance.
  3. [Test Resource Connection] to check if it is possible to establish connection to the external tool.

Check the JSON code usage example for Fabric External Resource configuration.

Code Example

{
  "name": "{{ unique resource name }}",
  "enabled": true,
  "title": "{{ display title }}",
  "scenario_type": "mcp_single_tool",
  "display": "llm",
  "use_in_slack_bot": false,
  "use_in_msteams_bot": false,
  "mcp_server": {
    "url": "http://mcp.metricinsights.com:8010/mcp",
    "name": "{{ unique mcp server name }}",
    "transport": "streamable_http",
    "auth": {
      "token": "<auth_token>",
      "workspace_id": "{{paste workspace_id here}}"
    }
  },
  "tool": "ask_fabric_data_agent",
  "domain_id_field": "domain_id",
  "display_progress": "{{title}} : {{progress | int}}/{{total | int}} {{message}}",
  "timeout": 300
}

Fabric Code Specifics

FieldDescription
nameThe value of this variable should be unique and exactly match the Name field in the UI above the editor. It is allowed to use A-Z/a-z alphabetic symbols, digits, and underscore (_) when setting a name.
enabled
This field allows to disable External Resource instead of deleting it. If it is true, the External Resource is enabled. If it is false, the External Resource is disables.

NOTE: After disabling the External Resource make sure to disconnect or disable all Domains connected to it.
titleThe display name. This name is shown in the All Sources button and in Concierge responses.
displayDefines how data from the external agent is shown. The llm is the required option for this variable. It means that Concierge uses an LLM to reformat the external agent’s data for display.
use_in_slack_bot
If this field is true, it allows external tool to be used for requests from Slack bot.
use_in_msteams_bot
If this field is true, it allows external tool to be used for requests from MS Teams bot.
scenario_typeThe mcp_single_tool option is mandatory for this variable.
scopeA prompt that instructs the LLM when to use this external resource. List all the domains here, using the structure [(domain_name, domain_id), ...].
mcp_serverurlUse the "http://mcp.metricinsights.com:8010/mcp" URL for Fabric Data Agent.
nameName of MCP Server. It should be unique, but is an optional variable.
authThe token field has to contain <auth_token> value. Also, insert the workspace_id value copied in the Step 1.3.
transportThis variable is required. Databricks MCP server supports only the streamable_http transport mode.
toolscenario_type variable is set to mcp_single_tool, so this field is required. Use ask_fabric_data_agent value.
domain_id_field
If an MCP server supports features like agents/spaces/catalogs as tool parameters, where user requests may be processed using different data catalogs, you may want to treat those entities as separate domains in MI terminology instead of having multiple MCP servers serving different domains. For this purpose, you may use assigned domain IDs to pass corresponding values to the MCP server as values of the tool argument specified by this field.
Insert here the domain_id value copied in the Step 1.3.
display_progress
The template for displaying MCP execution progress status messages from the MCP server if available.
timeoutRecommended value is from 300 to 600 seconds.

4. Get Token

Go back to the Authentication tab

Click [Get Token], so Metric Insights will obtain the Token from Fabric. If Token was generated successfully, the confirmation message "Token generated for <...>" will appear.

Don't forget to [Save] the External Resource.

Fabric Data Agent will not appear in the All Sources menu. Add a Domain to it and that Domain will be visible in All Sources menu.