Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
You can create, configure, run, and monitor pipelines in Microsoft Fabric directly from Visual Studio Code (VS Code). The Microsoft DataFactory Model Context Protocol (MCP) server and GitHub Copilot let you build and orchestrate data pipelines from a single development environment without switching to the Fabric portal.
In this article, you learn how to:
- Set up the DataFactory MCP server in VS Code with pipeline tools enabled
- Create a pipeline item in a Fabric workspace
- Define pipeline activities using natural language
- Run a Fabric pipeline on demand
- Monitor Fabric pipeline run status
- Schedule a Fabric pipeline to run on a recurring basis
- List and update pipelines in a Fabric workspace
Prerequisites
- Visual Studio Code with the GitHub Copilot extension installed.
- .NET 10.0 SDK or later installed on your machine, required to install the DataFactory MCP server as a global .NET tool. Download it from dot.net.
- A Microsoft Fabric workspace with an assigned capacity (Free and Premium Per User workspaces aren't supported for pipeline execution).
- Permissions to create and run items in the Fabric workspace.
Install the DataFactory MCP server
The DataFactory MCP server exposes Fabric Data Factory operations as tools that GitHub Copilot can call. Pipeline management is a preview feature that requires the --pipeline flag in your server configuration.
Install the
Microsoft.DataFactory.MCPpackage as a global .NET tool:dotnet tool install --global Microsoft.DataFactory.MCPOpen or create
.vscode/mcp.jsonat the root of your VS Code workspace and add the following configuration. The--pipelineargument enables the pipeline management tools.{ "servers": { "datafactory": { "type": "stdio", "command": "datafactorymcp", "args": ["--pipeline"] } } }Important
Without the
--pipelineflag, the pipeline management tools don't appear in Copilot's tool list. Authentication, Fabric workspace, connection, and dataflow tools are always available and don't require a flag.Reload VS Code (
Ctrl+Shift+P> Developer: Reload Window) so Copilot recognizes the new server.
Authenticate to Microsoft Fabric
Before calling any Fabric API through the MCP server, authenticate with your Microsoft Entra ID account.
Open GitHub Copilot Chat (
Ctrl+Shift+I) and make sure Agent Mode is active (the toggle at the top of the Copilot Chat panel that enables tool use).Ask Copilot to authenticate:
Authenticate to my Fabric account.
Copilot calls
mcp_datafactorymc_authenticate_interactive, which opens a browser tab for Microsoft Entra ID sign-in. Sign in with the account that has permissions in your Fabric workspace.After sign-in succeeds, Copilot confirms the authentication. Copilot reuses your cached token for every subsequent tool call in the session.
Create a pipeline
In Copilot Chat, describe the pipeline you want to create. For example:
Create a pipeline called 'Daily Sales Ingest' in my Fabric workspace for loading daily sales data into a Lakehouse.
Copilot calls
mcp_datafactorymc_list_workspacesto resolve your Fabric workspace ID, then callsmcp_datafactorymc_create_pipelineand returns the new pipeline's ID and metadata.Tip
If you have multiple Fabric workspaces, include the workspace name in your prompt, or ask Copilot to list them first: "List my Fabric workspaces."
Follow-up prompts in the same conversation automatically use the returned pipeline ID.
Define pipeline activities
Once you have a pipeline item in your Fabric workspace, you can add activity definitions to it. Pipeline definitions are JSON objects that describe activities, data flow, and control logic. You can describe the intent in natural language and let Copilot construct the payload. The following operations can be performed in any order.
Ask Copilot to define the pipeline's activities:
Update the definition of my 'Daily Sales Ingest' pipeline to include a Copy Activity that reads from an Azure Blob Storage source named 'SalesBlob' and writes to a Lakehouse destination named 'SalesLakehouse'.
Copilot calls
mcp_datafactorymc_update_pipeline_definitionwith a JSON definition for the activity. The MCP server validates and submits the definition to the Fabric API.To add control flow between activities:
Update my 'Daily Sales Ingest' pipeline to run a Stored Procedure activity first to truncate the staging table, then run the Copy Activity only if the stored procedure succeeds.
To review the current definition at any time:
Get the definition for my 'Daily Sales Ingest' pipeline and summarize the activities.
Copilot calls
mcp_datafactorymc_get_pipeline_definitionand returns the activity graph in a readable summary.
Run a Fabric pipeline on demand from VS Code
Trigger an on-demand pipeline run directly from Copilot Chat.
Ask Copilot to run the pipeline:
Run my 'Daily Sales Ingest' pipeline now.
Copilot calls
mcp_datafactorymc_run_pipelineand returns a run ID that you can reference when checking status.
Pass runtime parameters
To pass parameter values when triggering a run:
Run my 'Daily Sales Ingest' pipeline with the parameter sourceDate set to 2026-06-07.
Copilot includes the parameter values in the run request payload.
Monitor Fabric pipeline run status from VS Code
You can check the progress of any pipeline runs in your Fabric workspace directly from VS Code.
Ask Copilot for the run status:
What's the status of my last 'Daily Sales Ingest' pipeline run?
Copilot calls
mcp_datafactorymc_get_pipeline_run_statusand returns the current state (queued, running, succeeded, or failed), elapsed duration, and any error messages.To diagnose a failure:
My 'Daily Sales Ingest' pipeline run failed. What went wrong?
Copilot retrieves the run status with activity-level error details and summarizes the root cause.
Schedule a Fabric pipeline
Create a recurring schedule so the pipeline runs automatically.
Describe the schedule to Copilot:
Schedule my 'Daily Sales Ingest' pipeline to run every day at 2:00 AM UTC.
Copilot calls
mcp_datafactorymc_create_pipeline_schedulewith a recurrence definition. Fabric saves the schedule in your Fabric workspace.To review existing schedules:
List all schedules for my 'Daily Sales Ingest' pipeline.
Copilot calls
mcp_datafactorymc_list_pipeline_schedulesand returns each schedule's recurrence pattern, next run time, and enabled status.
List all pipelines in a Fabric workspace
To audit the pipelines in a Fabric workspace:
List all pipelines in my Fabric workspace.
Copilot calls mcp_datafactorymc_list_pipelines, which returns paginated results including each pipeline's ID, display name, description, and last-modified time. When more results are available, Copilot handles the continuation token and retrieves the full list automatically.
Update pipeline metadata
Update pipeline metadata in your Fabric workspace using natural language prompts.
Update display name or description
Rename my 'Daily Sales Ingest' pipeline to 'Daily Sales Load' and update its description to 'Loads daily sales data from Azure Blob Storage into the Sales Lakehouse'.
Copilot calls mcp_datafactorymc_update_pipeline with the new display name and description.
Retrieve metadata for a specific pipeline
Get the details for my 'Daily Sales Load' pipeline.
Copilot calls mcp_datafactorymc_get_pipeline and returns the pipeline's current metadata, including its Fabric workspace location, description, and timestamps.
Note
Pipeline deletion and schedule modification aren't available through the MCP server. Use the Fabric portal to delete pipelines or update existing schedules.
Available MCP tools reference
All pipeline tools share the mcp_datafactorymc_ prefix and call the Fabric REST API at https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/pipelines. Pipeline tools require the --pipeline feature flag in your MCP server configuration.
| Tool | Description |
|---|---|
mcp_datafactorymc_list_pipelines |
List all pipeline items in a Fabric workspace (paginated) |
mcp_datafactorymc_create_pipeline |
Create a new pipeline item |
mcp_datafactorymc_get_pipeline |
Retrieve metadata for a pipeline |
mcp_datafactorymc_update_pipeline |
Update the display name or description |
mcp_datafactorymc_get_pipeline_definition |
Read the current pipeline activity definition |
mcp_datafactorymc_update_pipeline_definition |
Push a new or updated pipeline activity definition |
mcp_datafactorymc_run_pipeline |
Trigger an on-demand run with optional parameters |
mcp_datafactorymc_get_pipeline_run_status |
Check the status and results of a pipeline run |
mcp_datafactorymc_create_pipeline_schedule |
Create a recurring scheduled trigger for a pipeline |
mcp_datafactorymc_list_pipeline_schedules |
List all schedules for a pipeline |