mcpField
T
Tabular Mcp

Tabular Mcp

本地服务
github.com/jonaolden数据与分析2148 周前更新

关于 Tabular Mcp

Tabular Mcp(MCPBI)是一个 MCP 服务,用于连接在 Power BI Desktop 中本地运行的表格模型。它面向需要调试、分析和编写 DAX 查询的用户,帮助 LLM 客户端理解模型结构并执行查询。

主要功能

  1. 01列出表、列、度量值和关系
  2. 02查询 DAX 函数及其参数详情
  3. 03执行自定义 DAX 查询并返回结果
  4. 04验证 DAX 语法与分析查询性能
  5. 05可选的数据脱敏策略
  6. 06结果行数限制与截断信息

适用场景

  1. 01快速了解陌生 Power BI 模型的结构
  2. 02参考已有度量值风格编写新的 DAX 度量值
  3. 03迭代调试 DAX 表达式

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露模型对象浏览、DAX 函数查询、DAX 查询执行和语法验证等工具。它通过 ADOMD.NET 连接到本地 Power BI Desktop 实例的端口。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCPBI - 表格模型 MCP 服务

这是一个用于本地运行的表格模型的模型上下文协议(MCP)服务,即在 Power BI Desktop 中运行的 PowerBI 模型。

此服务允许启用 MCP 的大模型客户端与您的表格模型通信,并帮助您调试、分析和编写 DAX 查询。

示例:Copilot 通过 MCP 查询表格模型

roocodedemo

工作原理

它通过 ADOMD.NET 中的 AdomdConnection 连接到本地运行的表格模型实例。

基于此连接,服务可让客户端通过预定义工具执行 DAX 查询,并检索模型元数据(使用 DMV 查询),以确保高准确性;也可执行自定义 DAX 查询,用于调试和开发。

功能

配置选项

端口

指定要连接的 Power BI Desktop 实例端口(必填)。

# Example: Connect to Power BI Desktop instance on port 56751
dotnet run -- --port 56751
混淆

使用可配置的加密策略保护敏感数据:

  • 无(默认):不进行混淆
  • 全部:屏蔽所有值
  • 维度:仅屏蔽文本/日期字段(数值数据保持可见)
  • 事实:仅屏蔽数值字段(保留维度上下文)
# Example: Protect customer/product names while keeping sales figures visible
dotnet run -- --port 56751 --obfuscation-strategy dimensions --encryption-key "YourSecureKey123!"
输出截断

自动限制行数,并提供全面的元数据:

  • 默认限制为 500 行(可配置)
  • 响应包含:totalRows、displayedRows、truncated、hasMore
# Example: Increase row limit for analysis
dotnet run -- --port 56751 --max-rows 2000

工具

list_objects
  • 列出模型中的所有对象(表、列、度量值、关系)
  • 返回对象类型、名称和基本元数据
get_object_details
  • 获取特定对象(表、列、度量值)的详细元数据
  • 返回属性、数据类型、关系和依赖项
list_functions
  • 列出可用的 DAX 函数,可按类别或来源筛选
  • 返回函数名称、说明、接口分类和来源
get_function_details
  • 获取特定 DAX 函数的完整详细信息,包括完整的参数信息
  • 返回函数签名、参数要求、返回类型和 DirectQuery 兼容性
run_query
  • 对模型执行自定义 DAX 查询
  • 返回包含元数据(总行数、是否截断)的查询结果
1. 模型探索

使用 [ListTables]、[GetTableColumns] 和 [GetTableRelationships],无需在 Power BI Desktop 中手动逐项点击,即可快速了解陌生模型的结构。

2. DAX 辅助

大模型客户端可以使用 [ListMeasures] 和 [GetMeasureDetails] 了解您现有的 DAX 模式,并建议符合您命名惯例和计算风格的新度量值。

3. 调试

将 [RunQuery] 与 [ValidateDaxSyntax] 结合使用,即可迭代测试和改进 DAX 表达式,并立即获得语法和结果反馈。

validate_query
  • 验证 DAX 查询语法,但不执行查询
  • 返回语法是否正确,以及适用时的错误消息
analyze_query_performance
  • 分析 DAX 查询性能并提供优化建议
  • 返回执行时间、资源使用情况和改进建议

安装

设置说明

要求

  • Power BI Desktop(打开 PBIX 文件以进行探索)
  • Windows 操作系统
  • Visual Studio Code(用于 MCP 服务集成)
  • .NET 8.0 Runtime
从预构建版本安装
  1. 下载版本:从 Releases 目录或 GitHub Releases 页面下载,并解压到你选择的位置。

  2. 打开 Power BI Desktop,并加载你要操作的 PBIX 文件。

  3. 获取 Power BI 实例信息

有几种方法可以检测 Power BI Desktop 实例。 最简单的方法是打开 Tabular Editor,查看连接字符串中的端口。

Tabular Editor

只需在下一步的 MCP 服务配置中添加端口(上例中为 63717)即可(可以忽略数据库 ID,因为此服务会连接到默认模型)。
如果你没有 Tabular Editor,可以使用随附的发现工具查找正在运行的实例和数据库。

打开 PowerShell,切换到版本目录,然后运行:

cd path\to\release
.\pbi-local-mcp.DiscoverCli.exe

注意:在 PowerShell 中,必须使用 .\ 前缀来运行当前目录中的可执行文件。

按照提示执行以下操作:

  • 选择 Power BI Desktop 实例(通过端口识别)
  • 选择要连接的数据库/模型

这会在版本目录中创建一个包含 PBI_PORT 和 PBI_DB_ID 的 .env 文件,你可以在 MCP 配置中引用该文件;如果直接指定端口,也可以忽略此文件。

  1. 在编辑器中配置 MCP 服务。对于使用 Roo 的 VS Code,请创建/编辑 .roo/mcp.json:
    {
      "mcpServers": {
        "MCPBI": {
          "type": "stdio",
          "command": "path\\to\\release\\mcpbi.exe",
          "cwd": "path\\to\\release",
          "args": ["--port", "YOUR_PBI_PORT"],
          "disabled": false,
          "alwaysAllow": [
            "ListTables",
            "GetTableDetails",
            "GetTableColumns",
            "GetTableRelationships",
            "ListMeasures",
            "GetMeasureDetails",
            "PreviewTableData",
            "RunQuery",
            "ValidateDaxSyntax",
            "AnalyzeQueryPerformance",
            "ListFunctions",
            "GetFunctionDetails"
          ]
        }
      }
    }
    
    将 path\\to\\release 替换为实际的版本目录路径,并将 YOUR_PBI_PORT 替换为 PBI 实例的端口号。
从源代码安装(用于开发)
  1. 克隆仓库:

    git clone <repository-url>
    cd MCPBI
    
  2. 构建项目:

    dotnet build
    
  3. 打开 Power BI Desktop,并加载 PBIX 文件。

  4. 运行发现工具以创建 .env 文件:

    dotnet run --project pbi-local-mcp/pbi-local-mcp.csproj discover-pbi
    

    按照提示选择实例和数据库。

  5. 在 .roo/mcp.json 中配置 MCP 服务:

    {
      "mcpServers": {
        "mcpbi-dev": {
          "type": "stdio",
          "command": "dotnet",
          "cwd": "path\\to\\MCPBI",
          "envFile": "path\\to\\MCPBI\\.env",
          "args": [
            "exec",
            "path\\to\\MCPBI\\pbi-local-mcp\\bin\\Debug\\net8.0\\pbi-local-mcp.dll"
          ],
          "disabled": false,
          "alwaysAllow": [
            "ListTables",
            "GetTableDetails",
            "GetTableColumns",
            "GetTableRelationships",
            "ListMeasures",
            "GetMeasureDetails",
            "PreviewTableData",
            "RunQuery",
            "ValidateDaxSyntax",
            "AnalyzeQueryPerformance",
            "ListFunctions",
            "GetFunctionDetails"
          ]
        }
      }
    }
    

    将 path\\to\\MCPBI 替换为实际的仓库路径。

配置说明
  • 使用端口或 envFile:你可以在 args 中直接指定 Power BI 端口,也可以使用 envFile 从 .env 加载。
  • 端口参数:发布版本配置中的 --port 参数会连接到该端口对应的 Power BI Desktop 实例。
  • envFile:开发环境配置使用 envFile 自动从 .env 加载 PBI_PORT 和 PBI_DB_ID。
  • alwaysAllow:列出无需用户逐次批准即可使用的所有工具。
  • 工作目录:cwd 参数用于设置 .env 文件所在的工作目录。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。