|
| 1 | +# Demo: configure the Microsoft Fabric (Power BI) MCP connector in Copilot Studio |
| 2 | + |
| 3 | +Costa Rica |
| 4 | + |
| 5 | +[](https://github.com) |
| 6 | +[](https://github.com/) |
| 7 | +[brown9804](https://github.com/brown9804) |
| 8 | + |
| 9 | +Last updated: 2025-07-17 |
| 10 | + |
| 11 | +---------- |
| 12 | + |
| 13 | +<details> |
| 14 | +<summary><b>List of References</b> (Click to expand)</summary> |
| 15 | + |
| 16 | +- [Copilot Studio MCP Catalog](https://learn.microsoft.com/en-us/microsoft-copilot-studio/mcp-microsoft-mcp-servers) |
| 17 | +- [Connect to an existing Model Context Protocol (MCP) server](https://learn.microsoft.com/en-us/microsoft-copilot-studio/mcp-add-existing-server-to-agent) |
| 18 | +- [Microsoft Copilot Studio - MCP](https://github.com/microsoft/mcsmcp) - GitHub repo |
| 19 | +- [Consume a Fabric Data Agent in Microsoft Copilot Studio (preview)](https://learn.microsoft.com/en-us/fabric/data-science/data-agent-microsoft-copilot-studio) |
| 20 | +- [Connecting an Agent in Copilot Studio to an MCP Server](https://techcommunity.microsoft.com/blog/microsoft365copilotblog/connecting-an-agent-in-copilot-studio-to-an-mcp-server/4448362) - blog |
| 21 | +- [Connect AI Agents to Fabric API for GraphQL with a local Model Context Protocol (MCP) server](https://learn.microsoft.com/en-us/fabric/data-engineering/api-graphql-local-model-context-protocol) |
| 22 | + |
| 23 | +</details> |
| 24 | + |
| 25 | +## Step 1: Prepare Your Environment |
| 26 | + |
| 27 | +Before you begin, make sure you have: |
| 28 | +- Access to **Microsoft Copilot Studio**: https://studio.copilot.microsoft.com |
| 29 | +- Access to **Power Platform**: https://make.powerapps.com |
| 30 | +- A **Power BI dataset** published in **Microsoft Fabric** |
| 31 | +- An **Azure subscription** (for secure deployment) |
| 32 | +- Admin rights to create **custom connectors** |
| 33 | + |
| 34 | +## Step 2: Deploy the Fabric MCP Server |
| 35 | + |
| 36 | +Microsoft provides a Fabric MCP server that supports: |
| 37 | +- Listing workspaces and datasets |
| 38 | +- Executing DAX queries |
| 39 | +- Triggering dataset refreshes |
| 40 | + |
| 41 | +You can deploy it using Azure Container Apps or run it locally using Docker. |
| 42 | + |
| 43 | +> To deploy: |
| 44 | +1. Clone the official repo: |
| 45 | + [Microsoft Fabric MCP GitHub](https://github.com/snahrup/microsoft-fabric-mcp) |
| 46 | +2. Follow the instructions in the `README.md` for: |
| 47 | + - Local development |
| 48 | + - Azure deployment |
| 49 | + - Authentication setup (OAuth 2.0 recommended) |
| 50 | + |
| 51 | +## Step 3: Create a Custom Connector in Power Platform |
| 52 | + |
| 53 | +1. Go to https://make.powerapps.com |
| 54 | +2. In the left menu: |
| 55 | + - Click **More** → **Discover all** |
| 56 | + - Under **Data**, pin **Custom connectors** |
| 57 | +3. Click **Custom connectors** → **New custom connector** → **Create from blank** |
| 58 | +4. Name your connector (e.g., `FabricMCPConnector`) → Click **Continue** |
| 59 | + |
| 60 | +## Step 4: Configure the Connector |
| 61 | +1. Toggle **Swagger editor** |
| 62 | +2. Paste the OpenAPI (Swagger) YAML from the MCP repo: |
| 63 | + - Replace `dummyurl.azurewebsites.net` with your deployed MCP server URL |
| 64 | +3. Click **Create connector** |
| 65 | + |
| 66 | +## Step 5: Add the MCP Connector to Copilot Studio |
| 67 | + |
| 68 | +1. Go to https://studio.copilot.microsoft.com |
| 69 | +2. Open your **agent** |
| 70 | +3. Go to **Tools** → **Add a tool** |
| 71 | +4. Choose **Model Context Protocol (MCP)** |
| 72 | +5. Fill in: |
| 73 | + - **Name**: Fabric MCP |
| 74 | + - **Description**: Connects to Power BI datasets via Fabric |
| 75 | + - **Server URL**: `https://your-mcp-server-url/mcp` |
| 76 | +6. Choose **Authentication**: |
| 77 | + - Use **OAuth 2.0** with Azure AD App credentials |
| 78 | +7. Click **Create** |
| 79 | + |
| 80 | +## Step 6: Test the Integration |
| 81 | + |
| 82 | +1. In Copilot Studio, create a **topic** like “Ask about sales data” |
| 83 | +2. Use the MCP tool to invoke: |
| 84 | + - `tools/list` → to list available datasets |
| 85 | + - `tools/query` → to run DAX queries |
| 86 | +3. Validate responses and format them using adaptive cards or plain text |
| 87 | + |
| 88 | + |
| 89 | + |
| 90 | +<!-- START BADGE --> |
| 91 | +<div align="center"> |
| 92 | + <img src="https://img.shields.io/badge/Total%20views-1443-limegreen" alt="Total views"> |
| 93 | + <p>Refresh Date: 2025-09-05</p> |
| 94 | +</div> |
| 95 | +<!-- END BADGE --> |
0 commit comments