Fabric Real-Time Intelligence MCP Server
A comprehensive MCP server for Microsoft Fabric Real-Time Intelligence (RTI) that enables AI agents to interact with Eventhouse/Azure Data Explorer, Eventstreams, and Activator services through natural language queries and KQL operations.
๐ฏ Overview
A comprehensive Model Context Protocol (MCP) server implementation for Microsoft Fabric Real-Time Intelligence (RTI).
This server enables AI agents to interact with Fabric RTI services by providing tools through the MCP interface, allowing for seamless data querying, analysis, and streaming capabilities.
[!NOTE]
This project is in Public Preview and implementation may significantly change prior to General Availability.
๐ How It Works
The Fabric RTI MCP Server acts as a bridge between AI agents and Microsoft Fabric RTI services:
- ๐ MCP Protocol: Uses the Model Context Protocol to expose Fabric RTI capabilities as tools
- ๐๏ธ Natural Language to KQL: AI agents can translate natural language requests into KQL queries and Eventstream management
- ๐ก Secure Authentication: Leverages Azure Identity for seamless, secure access to your resources
- โก Real-time Data Access: Direct connection to Eventhouse and Eventstreams for live data analysis
- ๐ Unified Interface: For both analytics and streaming workloads with intelligent parameter suggestions
โจ Supported Services
Eventhouse (Kusto): Execute KQL queries against Microsoft Fabric RTI Eventhouse and Azure Data Explorer (ADX).
Eventstreams: Manage Microsoft Fabric Eventstreams for real-time data processing:
- List Eventstreams in workspaces
- Get Eventstream details and definitions
- Create new Eventstreams
- Update existing Eventstreams
- Delete Eventstreams
Activator: Create and manage Microsoft Fabric Activator triggers for real-time alerting:
- Create new triggers with KQL source monitoring
- Set up email and Teams notifications when a condition occurs
- List Activator artifacts in workspaces
Map: Create and manage Microsoft Fabric Map to visualize geospatial data:
- Create a new map from a provided configuration
- Visualize data on maps
- List Map items in workspaces
- Delete Map items
๐ง Coming soon
- Other RTI items
๐ Example Prompts
Eventhouse Analytics:
- "Get databases in my Eventhouse"
- "Sample 10 rows from table 'StormEvents' in Eventhouse"
- "What can you tell me about StormEvents data?"
- "Analyze the StormEvents to come up with trend analysis across past 10 years of data"
- "Analyze the commands in 'CommandExecution' table and categorize them as low/medium/high risks"
Eventstream Management:
- "List all Eventstreams in my workspace"
- "Show me the details of my IoT data Eventstream"
- "Create a new Eventstream for processing sensor data"
- "Update my existing Eventstream to add a new destination"
Activator Alerts:
- "Using the StormEvents table, notify me via email when there is a flood in Illinois"
- "Create a teams alert to notify me when my success rate drops below 95%"
- "List all Activator artifacts in my workspace"
Map Visualization::
- "List all Map items in my workspace"
- "Create a new Map and add LakeHouse with name 'MyLakeHouse' as a data source to Map item 'MyMap'"
- "Delete a Map item with name 'MyMap' from my workspace"
Available tools
Eventhouse (Kusto) - 12 Tools:
kusto_known_services- List all available Kusto services configured in the MCPkusto_query- Execute KQL queries on the specified databasekusto_command- Execute Kusto management commands (destructive operations)kusto_list_databases- List all databases in the Kusto clusterkusto_list_tables- List all tables in a specified databasekusto_get_entities_schema- Get schema information for all entities (tables, external tables, materialized views, functions) in a databasekusto_get_table_schema- Get detailed schema information for a specific tablekusto_get_function_schema- Get schema information for a specific function, including parameters and output schemakusto_sample_table_data- Retrieve random sample records from a specified tablekusto_sample_function_data- Retrieve random sample records from the result of a function callkusto_ingest_inline_into_table- Ingest inline CSV data into a specified tablekusto_get_shots- Retrieve semantically similar query examples from a shots table using AI embeddings
Eventstreams - 17 Tools:
Core Operations (6 tools):
eventstream_list- List all Eventstreams in your Fabric workspaceeventstream_get- Get detailed information about a specific Eventstreameventstream_get_definition- Retrieve complete JSON definition of an Eventstreameventstream_create- Create new Eventstreams with custom configuration (auto-includes default stream)eventstream_update- Modify existing Eventstream settings and destinationseventstream_delete- Remove Eventstreams and associated resources
Builder Tools (11 tools):
- Session Management:
eventstream_start_definition,eventstream_get_current_definition,eventstream_clear_definition - Sources:
eventstream_add_sample_data_source,eventstream_add_custom_endpoint_source - Streams:
eventstream_add_derived_stream - Destinations:
eventstream_add_eventhouse_destination,eventstream_add_custom_endpoint_destination - Validation:
eventstream_validate_definition,eventstream_create_from_definition,eventstream_list_available_components
๐ก Pro Tip: All tools work with natural language! Just describe what you want to do and the AI agent will use the appropriate tools automatically.
Activator - 2 Tools:
activator_list_artifacts- List all Activator artifacts in a Fabric workspaceactivator_create_trigger- Create new Activator triggers with KQL source monitoring and email/Teams alerts
Map - 7 Tools:
map_list- List all Map items in your Fabric workspacemap_get- Get detailed information about a specific Map itemmap_get_definition- Retrieve the full JSON definition of a Map itemmap_create- Create a new Map item from a provided configurationmap_update_definition- Replace the full JSON definition of an existing Map itemmap_update- Partially update properties of an existing Map itemmap_delete- Delete a Map item and its associated configuration
Getting Started
Prerequisites
- Install either the stable or Insiders release of VS Code:
- Install the GitHub Copilot and GitHub Copilot Chat extensions
- Install
uv
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
or, check here for other install options
- Open VS Code in an empty folder
Install from PyPI (Pip)
The Fabric RTI MCP Server is available on PyPI, so you can install it using pip. This is the easiest way to install the server.
From VS Code
1. Open the command palette (Ctrl+Shift+P) and run the command `MCP: Add Server`
2. Select install from Pip
3. When prompted, enter the package name `microsoft-fabric-rti-mcp`
4. Follow the prompts to install the package and add it to your settings.json or your mcp.json file
The process should end with the below settings in your settings.json or your mcp.json file.
settings.json
{
"mcp": {
"server": {
"fabric-rti-mcp": {
"command": "uvx",
"args": [
"microsoft-fabric-rti-mcp"
],
"env": {
"KUSTO_SERVICE_URI": "https://help.kusto.windows.net/",
"KUSTO_SERVICE_DEFAULT_DB": "Samples",
"FABRIC_API_BASE_URL": "https://api.fabric.microsoft.com/v1"
}
}
}
}
}
Note: All environment variables are optional. The
KUSTO_SERVICE_URIandKUSTO_SERVICE_DEFAULT_DBprovide default cluster and database settings. TheAZ_OPENAI_EMBEDDING_ENDPOINTis only needed for semantic search functionality in thekusto_get_shotstool.
From GitHub Copilot CLI
Use the interactive command within a GitHub Copilot CLI session:
/mcp add
Or manually add to your ~/.copilot/mcp-config.json:
{
"mcpServers": {
"fabric-rti-mcp": {
"command": "uvx",
"args": [
"microsoft-fabric-rti-mcp"
],
"env": {
"KUSTO_SERVICE_URI": "https://help.kusto.windows.net/",
"KUSTO_SERVICE_DEFAULT_DB": "Samples",
"FABRIC_API_BASE_URL": "https://api.fabric.microsoft.com/v1"
}
}
}
}
For more information, see the GitHub Copilot CLI documentation.
๐ง Manual Install (Install from source)
- Make sure you have Python 3.10+ installed properly and added to your PATH.
- Clone the repository
- Install the dependencies (
pip install .oruv tool install .) - Add the settings below into your vscode
settings.jsonor yourmcp.jsonfile. - Modify the path to match the repo location on your machine.
- Modify the cluster uri in the settings to match your cluster.
- Modify the cluster default database in the settings to match your database.
- Modify the embeddings endpoint in the settings to match yours. This step is optional and needed only in case you supply a shots table
{
"mcp": {
"servers": {
"fabric-rti-mcp": {
"command": "uv",
"args": [
"--directory",
"C:/path/to/fabric-rti-mcp/",
"run",
"-m",
"fabric_rti_mcp.server"
],
"env": {
"KUSTO_SERVICE_URI": "https://help.kusto.windows.net/",
"KUSTO_SERVICE_DEFAULT_DB": "Samples",
"FABRIC_API_BASE_URL": "https://api.fabric.microsoft.com/v1"
}
}
}
}
}
๐ Debugging the MCP Server locally
Assuming you have python installed and the repo cloned:
Install locally
pip install -e ".[dev]"
Configure
Follow the Manual Install instructions.
Attach the debugger
Use the Python: Attach configuration in your launch.json to attach to the running server.
Once VS Code picks up the server and starts it, navigate to its output:
- Open command palette (Ctrl+Shift+P) and run the command
MCP: List Servers - Navigate to
fabric-rti-mcpand selectShow Output - Pick up the process ID (PID) of the server from the output
- Run the
Python: Attachconfiguration in yourlaunch.jsonfile, and paste the PID of the server in the prompt - The debugger will attach to the server process, and you can start debugging
๐งช Test the MCP Server
Via GitHub Copilot
- Open GitHub Copilot in VS Code and switch to Agent mode
- You should see the Fabric RTI MCP Server in the list of tools
- Try prompts that tell the agent to use the RTI tools, such as:
- Eventhouse: "List my Kusto tables" or "Show me a sample from the StormEvents table"
- Eventstreams: "List all Eventstreams in my workspace" or "Show me details of my data processing Eventstream"
- The agent should be able use the Fabric RTI MCP Server tools to complete your query
Via VS Code Client Tool
For direct testing and development, use the included VS Code client:
# Interactive mode with menu
python eventstream_test/vscode_mcp_client.py
# Natural language commands
python eventstream_test/vscode_mcp_client.py "list eventstreams in workspace abc-123 with interactive auth"
python eventstream_test/vscode_mcp_client.py "query cluster https://example.kusto.windows.net: MyTable | take 10"
python eventstream_test/vscode_mcp_client.py "get fabric api base url"
The VS Code client includes:
- ๐ Interactive authentication - Browser-based Microsoft sign-in
- ๐ฃ๏ธ Natural language prompts - English commands for MCP operations
- โ๏ธ API configuration - Runtime control of Fabric API endpoints
- ๐ JSON output - Formatted results for analysis
