fabric-admin-mcp
If you are the rightful owner of fabric-admin-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Fabric Admin MCP Server is an open-source server designed to manage and administer Microsoft Fabric capacities using the Model Context Protocol (MCP).
Fabric Admin MCP Server
An open-source MCP server to perform operations on Microsoft Fabric, like administration and management of Fabric capacities. At this moment, this repo has an initial set of tools to manage Capacities, but it will be expanded to further support additional tools and Fabric administration workloads.
✨ Features
- Exposes Fabric admin operations as MCP tools;
- Uses secure, yet flexible, authentication mechanisms for Azure and Fabric, like Service Principal and Managed Identities;
- FastAPI + FastMCP for a modern, async, extensible backend;
🤖 Interacting with the MCP Server
You can use any MCP Client to interact with this MCP server. Below, is a sample showing how to interact with it using GitHub Copilot on VSCode as a MCP Client:
This example demonstrates how the MCP tools are exposed and can be accessed for managing Microsoft Fabric resources.
🗂️ Project Structure
server.py
— Main entry point to start the MCP servercommon.py
— Shared utilities and loggingsrc/capacity/
— Logic to interact with Fabric and expose then as MCP toolsrequirements.txt
— Python dependencies
⚡ Quickstart
-
Install dependencies:
pip install -r requirements.txt
-
Set up authentication:
- The server uses
DefaultAzureCredential
for secure Azure API access. - You can authenticate using:
- Azure CLI: Run
az login
in your terminal. - Managed Identity: If running in Azure, ensure the managed identity has the required permissions.
- Service Principal: Create a
.env
file in the project root with applicable variables (see "Using a Service Principal for Authentication" section below for details).
- Azure CLI: Run
- The server uses
-
Run the MCP server locally:
python server.py
The server will start at http://127.0.0.1:8000/mcp/.
-
Test with VS Code as a Client:
- Open the Command Palette (
Ctrl+Shift+P
), search for "MCP: Connect to Server", and enterhttp://127.0.0.1:8000/mcp/
. - You can now use MCP tools exposed by this server directly from VS Code using Agent Mode.
- Open the Command Palette (
📦 Requirements
- Python 3.8+;
- Azure credentials with proper access to the backend (Azure/Fabric admin)/
🔐 Using a Service Principal for Authentication
-
Create a Service Principal (if you don't have one):
az ad sp create-for-rbac --name <your-app-name> --role Contributor --scopes /subscriptions/<your-subscription-id>
Note the
appId
(Client ID),tenant
, andpassword
(Client Secret) from the output. -
Create a
.env
file in the project root: Copy.env.example
to.env
and fill in your values:AZURE_CLIENT_ID=your-service-principal-client-id AZURE_TENANT_ID=your-tenant-id AZURE_CLIENT_SECRET=your-service-principal-client-secret
-
Authorize the Service Principal: Ensure the Service Principal has appropriate permissions. For example, at least
Contributor
at subscription or Resource Group level to manage Fabric Capacities. Additional Admin API access will be required for additional tools yet to be developed. -
Run the server: The server will automatically use these credentials for authentication via
DefaultAzureCredential
.
🚀 Future Improvements
- Add option to deploy as a Docker image.
- Add option to deploy as an Azure Function.
- Add tools for additional Fabric management operations, such as Workspace management and reviewing capacity settings.
- Improve documentation and provide more usage examples.
- Add automated tests and CI/CD pipeline for deployments.