Labsco
jonaolden logo

Tabular MCP Server

โ˜… 20

from jonaolden

An MCP server for local Tabular Models like PowerBI. It allows LLM clients to debug, analyze, and compose DAX queries by connecting to a local Tabular model instance.

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedFreeAdvanced setup

MCPBI - Tabular Model MCP Server

This is a Model Context Protocol (MCP) server for locally running Tabular Models, i.e. PowerBI models running on PowerBI Desktop.

This server allows MCP-enabled LLM clients to communicate with your tabular models and help you debug, analyse and compose DAX queries.

Example: Copilot querying Tabular Model via MCP

roocodedemo

How it works

It connects to a local running instance of Tabular models using the AdomdConnection in ADOMD.NET.

Using this connection, the server then allows clients to execute DAX-queries and retrieve model metadata (using DMV queries) through pre-defined tools for high accuracy, as well as custom DAX queries for debugging and development.

Features

Tools

list_objects

  • Lists all objects in the model (tables, columns, measures, relationships)
  • Returns object type, name, and basic metadata

get_object_details

  • Retrieves detailed metadata for a specific object (table, column, measure)
  • Returns properties, data types, relationships, and dependencies

list_functions

  • Lists available DAX functions with optional filtering by category or origin
  • Returns function name, description, interface classification, and origin

get_function_details

  • Retrieves comprehensive details for a specific DAX function including full parameter information
  • Returns function signature, parameter requirements, return type, and DirectQuery compatibility

run_query

  • Executes a custom DAX query against the model
  • Returns query results with metadata (total rows, truncated status)

1. Model Discovery

Use [ListTables], [GetTableColumns], and [GetTableRelationships] to quickly understand an unfamiliar model's structure without manually clicking through Power BI Desktop.

2. DAX Assistance

LLM clients can use [ListMeasures] and [GetMeasureDetails] to learn your existing DAX patterns and suggest consistent new measures that follow your naming conventions and calculation styles.

3. Debugging

Combine [RunQuery] with [ValidateDaxSyntax] to iteratively test and refine DAX expressions with immediate feedback on syntax and results.

validate_query

  • Validates DAX query syntax without execution
  • Returns syntax correctness and error messages if applicable

analyze_query_performance

  • Analyzes DAX query performance and provides optimization suggestions
  • Returns execution time, resource usage, and improvement recommendations