pbip-mcp(电力BI项目mcp服务器)
目的
通过MCP客户端与Power BI项目和独立语义模型进行交互的简单方法,以提高典型语义模型开发任务的生产率。
同时支持:
- 📁 PBIP项目:目录包含
.pbip与关联的文件.SemanticModel文件夹 - 📂 独立语义模型:个人
.SemanticModel目录
安装
先决条件:
uv- Power BI项目 (目录与
.pbip文件)或 独立语义模型 (.SemanticModel文件夹)使用。TMDL格式(不适用于.TMSL) - MCP客户端,如VS Code或Claude Desktop
安装MCP服务器
git clone https://github.com/crazy-treyn/pbip-mcp.git
cd pbip-mcp
uv sync # initialize virtual environment and install dependencies将MCP服务器添加到MCP客户端
{
"mcpServers": {
"pbip-mcp": {
"command": "C:\\{YOUR_GIT_REPO_HERE}\\.venv\\Scripts\\python.exe",
"args": [
"-m",
"pbip_mcp.server"
]
}
}
}可用的MCP工具
📊 工具概述矩阵
| 类别 | 工具 | 范围 | 目的 | 效率 |
|---|---|---|---|---|
| 项目 | list_projects | 目录 | 查找所有PBIP项目 | 🚀 单次通话 |
| 项目 | load_project | 单个项目 | 加载项目元数据 | 🚀 单次通话 |
| 模型 | get_model_details | 完整模型 | 完整模型分析 | 🚀 一下子什么都做了 |
| 表格 | list_tables | 所有表格 | 表格基本信息 | 🚀 单次通话 |
| 表格 | get_table_details | 单表 | 深度表分析 | ⚡ 每张桌子 |
| 列 | list_columns | 全表/单表 | 列信息 | 🚀 所有桌子或⚡ 每张桌子 |
| 列 | add_column | 单表 | 创建新列 | ⚡ 每列 |
| 列 | update_column | 单表 | 修改现有列 | ⚡ 每列 |
| 列 | delete_column | 单表 | 删除列 | ⚡ 每列 |
| 措施 | list_measures | 全表/单表 | 测量信息 | 🚀 所有桌子或⚡ 每张桌子 |
| 措施 | add_measure | 单表 | 创建新度量 | ⚡ 按措施 |
| 措施 | update_measure | 单表 | 修改现有度量 | ⚡ 按措施 |
| 措施 | delete_measure | 单表 | 删除度量值 | ⚡ 按措施 |
| 关系 | list_relationships | 所有关系 | 关系信息 | 🚀 单次通话 |
传说: 🚀 = 批量操作(高效)|⚡ = 单项作业
📋 详细工具参考
项目管理
| 工具 | 必需参数 | 可选参数 | 说明 |
|---|---|---|---|
list_projects | directory | - | 扫描目录以查找所有PBIP项目和独立语义模型 |
load_project | project_path | - | 加载包含元数据和工件信息的完整项目结构 |
模型分析
| 工具 | 必需参数 | 可选参数 | 说明 |
|---|---|---|---|
get_model_details | project_path\* | - | 🚀 散装: 完整的模型概述,包括所有表、列、度量值、关系和统计数据 |
\*project_path 接受以下任一条件:
- PBIP项目目录的路径(包含
.pbip文件) - 通往独立之路
.SemanticModel目录
表操作
| 工具 | 必需参数 | 可选参数 | 说明 |
|---|---|---|---|
list_tables | project_path\* | - | 所有表的基本信息(名称、计数、可见性标志) |
get_table_details | project_path\*, table_name | - | 详细的单表分析,包括列、度量值、分区、层次结构和关系 |
列操作
| 工具 | 必需参数 | 可选参数 | 说明 |
|---|---|---|---|
list_columns | project_path\* | table_name | 🚀 散装: 所有表中的所有列或具有汇总统计信息的单个表列 |
add_column | project_path*, table_name, column_name | data_type, expression, format_string, summarize_by, is_hidden | 创建新的常规列或计算列 |
update_column | project_path*, table_name, column_name | data_type, expression, format_string, summarize_by, is_hidden | 修改现有列属性 |
delete_column | project_path\*, table_name, column_name | - | 从表中删除列 |
测量操作
| 工具 | 必需参数 | 可选参数 | 说明 |
|---|---|---|---|
list_measures | project_path\* | table_name | 🚀 散装: 所有表中的所有度量值或具有汇总统计的单表度量值 |
add_measure | project_path*, table_name, measure_name, expression | description, format_string | 创建新的DAX度量值并进行验证 |
update_measure | project_path*, table_name, measure_name | expression, description, format_string | 修改现有度量值属性 |
delete_measure | project_path\*, table_name, measure_name | - | 从表中删除度量值 |
关系运营
| 工具 | 必需参数 | 可选参数 | 说明 |
|---|---|---|---|
list_relationships | project_path\* | - | 所有具有基数、活动状态和摘要统计信息的模型关系 |
注: 全部project_path参数接受以下任一条件: - PBIP项目目录的路径(包含.pbip文件) - 通往独立之路.SemanticModel目录
用法
设置MCP客户端并连接到MCP服务器后,通过提供以下任一路径开始对话:
- PBIP项目:包含您的目录的路径
.pbip文件 - 独立语义模型:直接通往您的路径
.SemanticModel目录
支持的路径类型
# PBIP Project (directory containing .pbip file)
C:\MyProject\SalesReport\
# Standalone Semantic Model (direct path to .SemanticModel folder)
C:\MyProject\SalesReport.SemanticModel\示例报告
提供了一个示例报告供您测试,因此您不必使用自己的报告,位于 TestReport 文件夹
示例问题
对于PBIP项目:
- 在此处列出我的Power BI项目中“事实”表中的所有列和度量值:
C:\Projects\SalesAnalysis\ - 获取以下型号的完整详细信息:
C:\Users\YourName\PowerBI\MyProject\
对于独立语义模型:
- 分析以下中的所有表和关系:
C:\Models\SalesData.SemanticModel\ - 在以下内容中为所有没有描述的措施添加描述:
C:\SemanticModels\Finance.SemanticModel\
一般任务:
- 使用以下日期逻辑添加我所有度量的YTD变体:{在此处插入日期逻辑}
- 显示所有表中的所有计算列
