mcp-adf
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-adflist pipelines in the dev factory"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-adf — Azure Data Factory MCP server
One FastMCP server fronting one or more
Azure Data Factory instances. Every tool takes a factory argument naming a
target in connections.json; call list_factories first to see the configured
targets.
Built on azure-mgmt-datafactory + azure-identity. Read tools work on any
target; tools that create resources or trigger runs require the target to be
flagged "writable": true.
Tools
Discovery / read (any target):
list_factories— configured targetsdiscover_factories— every ADF in a target's subscription (to fill in config)list_pipelines/get_pipelinelist_datasets/get_datasetlist_linked_services/get_linked_servicelist_triggers/get_trigger
Run monitoring / error analysis (any target):
list_pipeline_runs— run history over the last N days; filter by pipeline/statusget_pipeline_runlist_activity_runs— per-activity status / timing / error for a runanalyze_run_errors— run message + every failed activity's error code & message
Write (only against a "writable": true target):
create_or_update_linked_servicecreate_or_update_datasetcreate_or_update_pipelinerun_pipeline— trigger a run, returns the run_idcancel_pipeline_runstart_trigger/stop_trigger
Resource definitions are the JSON you see in ADF Studio's code view — pass
either the full { "name": ..., "properties": {...} } object or just the inner
properties object.
Related MCP server: Azure AI Foundry MCP Server
Configure
Copy connections.example.json to connections.json and fill in your targets:
{
"dev": {
"subscription_id": "00000000-0000-0000-0000-000000000000",
"resource_group": "rg-data-dev",
"factory_name": "adf-dev",
"auth": "azure-cli",
"writable": true
},
"prod": {
"subscription_id": "00000000-0000-0000-0000-000000000000",
"resource_group": "rg-data-prod",
"factory_name": "adf-prod",
"auth": "azure-cli",
"writable": false
}
}connections.json and .env are gitignored — they never leave your machine.
Auth
Set "auth" per target:
value | how it signs in |
| reuses an |
| Windows WAM broker popup (no CLI needed; great in tenants that block device-code flow) |
| browser sign-in popup |
| app registration; secret read from |
|
|
The identity needs an ADF RBAC role on the factory — Data Factory Contributor for create/trigger, Reader for the read tools.
Setup
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
copy connections.example.json connections.json # then edit it
.\.venv\Scripts\python.exe server.py # smoke test (Ctrl+C to stop)Finding your factories
discover.py signs in once and lists every subscription and the data factories
in each, so you can fill in subscription_id / resource_group / factory_name:
.\.venv\Scripts\python.exe -m pip install azure-mgmt-subscription azure-mgmt-resource
.\.venv\Scripts\python.exe discover.pyRegister with an MCP client
See examples/mcp.json:
{
"mcpServers": {
"adf": {
"command": "C:\\path\\to\\mcp-adf\\.venv\\Scripts\\python.exe",
"args": ["C:\\path\\to\\mcp-adf\\server.py"],
"env": {}
}
}
}License
MIT — see LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rajivdatta/mcp-adf'
If you have feedback or need assistance with the MCP directory API, please join our Discord server