Excel Power Pivot 数据模型交互工具

一个通过自然语言实现AI助手与Excel Power Pivot数据模型交互的协议服务器,支持DAX度量创建、关系管理等功能。

  • by back1ply
  • C#
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 back1ply/Excel-Power-Pivot-MCP

使用说明

Excel Power Pivot MCP服务器

模型上下文协议(MCP)服务器,使AI助手能够与Excel Power Pivot数据模型进行交互。通过自然语言创建和管理DAX指标、关系等。

特性

  • 工作簿发现和连接 -使用Power Pivot数据模型发现并连接到打开的Excel工作簿
  • DAX查询执行 -运行DAX查询并预览表数据
  • 计量管理 -使用自动格式化功能创建、更新和删除DAX度量值
  • 关系管理 -创建、删除和激活/停用表关系
  • 模型探索 -列出表、列、度量值、关系、层次结构、KPI和依赖关系
  • 数据概况 -分析列统计信息(最小值、最大值、不同计数、空值、样本值)
  • 电源查询发现 -在工作簿中列出电源查询(M代码)
  • 表格管理 -将Excel表添加到数据模型,刷新表/模型

[!警告] 使用风险自负。 此工具可直接修改Excel Power Pivot数据模型。作者不对工作簿的任何数据丢失、损坏或损坏负责。 在使用此工具之前,始终保持Excel文件的备份。

需求

  • Windows 10/11 (Excel COM互操作所需)
  • 微软Excel 2013+ 启用了Power Pivot

安装

下载最新版 ExcelPowerPivotMcp.exe 从 发布 页面。

无需安装-只需下载并配置您的MCP客户端。

MCP客户端配置

克劳德桌面

添加到您的 claude_desktop_config.json:

窗户: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "excel-powerpivot": {
      "command": "C:/path/to/ExcelPowerPivotMcp.exe"
    }
  }
}

光标

添加到光标MCP设置中:

{
  "mcpServers": {
    "excel-powerpivot": {
      "command": "C:/path/to/ExcelPowerPivotMcp.exe"
    }
  }
}

反重力(VS代码)

添加到您的 .vscode/mcp.json:

{
  "servers": {
    "excel-powerpivot": {
      "type": "stdio",
      "command": "C:/path/to/ExcelPowerPivotMcp.exe"
    }
  }
}

用法

1.使用Power Pivot打开Excel

打开包含Power Pivot数据模型的Excel工作簿。

2.通过MCP连接

AI助手将首先发现并连接到您的工作簿:

AI: Let me discover your Excel workbooks...
→ discover_workbooks()
→ Found: MyModel.xlsx (hasDataModel: true)

AI: Connecting to your workbook...
→ connect_workbook(workbook_name: "MyModel.xlsx")
→ Connected!

3.探索和修改

AI: Let me see what's in your data model...
→ get_model_summary()
→ 5 tables, 12 measures, 6 relationships

AI: I'll create a new measure for you...
→ create_measure(
    tableName: "Sales",
    measureName: "Total Revenue",
    expression: "SUM(Sales[Amount])"
  )

AI: Don't forget to save!
→ save_workbook()

可用工具

连接

工具 说明
discover_workbooks 查找具有Power Pivot模型的打开的Excel工作簿
connect_workbook 连接到特定工作簿
get_connection_status 检查当前连接状态
save_workbook 保存已连接的工作簿
refresh_model 刷新整个数据模型

模型元数据

工具 说明
get_model_summary 全面的模型概述
list_tables 列出所有具有行数的表
list_columns 列出表中的列
list_measures 用表达式列出度量值
list_relationships 显示表关系
list_hierarchies 列出用户定义的层次结构
list_kpis 列出关键绩效指标
get_dependencies 显示计算依赖关系
list_power_queries 列出电源查询(M代码)
list_excel_tables 列出Excel表(ListObjects)

DAX查询

工具 说明
run_dax 执行DAX查询或预览表数据
analyze_column 获取列统计信息和示例值

测量CRUD

工具 说明
create_measure 创建新的DAX指标(支持 autoFormat=false 速度)
update_measure 更新表达式/名称/描述
delete_measure 删除度量值

关系CRUD

工具 说明
create_relationship 创建表关系
delete_relationship 删除关系
set_relationship_active 激活/停用关系

表操作

工具 说明
add_table_to_model [DESTRUCTIVE]将Excel表添加到数据模型中
delete_table [DESTRUCTIVE]从模型中删除表
refresh_table 刷新单个表

提示

提示 描述
describe_model 用简明的英语描述数据模型
workflow_create_measure 创建度量的指导工作流程
workflow_analyze_model 分析模型结构并提出改进建议
workflow_test_dax 在创建永久度量值之前测试DAX
workflow_fix_measure 调试并修复损坏的度量值
workflow_add_relationship 添加关系的指导工作流程
recover_connection 从丢失的Excel连接中恢复

资源

URI 描述
model://schema 当前Power Pivot数据模型模式(JSON)
model://dirty-state 检查是否有未保存的更改
model://logs 最近的服务器诊断日志
model://instructions Power Pivot使用指南
model://best-practices 衡量最佳实践指南
model://dax-guide Excel DAX查询指南
model://workflows 通用工作流参考

性能提示

快速创建度量值

使用 autoFormat: false 跳过DAX格式化以更快地创建度量值(节省约1.5秒):

{
  "tableName": "Sales",
  "measureName": "Quick Measure",
  "expression": "SUM(Sales[Amount])",
  "autoFormat": false
}

局限性

Excel Power Pivot限制

这些特征是 Excel Power Pivot中不可用 (与Power BI不同):

功能 Excel Power Pivot
计算组 ❌ 不支持
观点 ❌ 不支持
行级安全(RLS) ❌ 不支持
在DAX查询中定义列 ❌ 不支持

MCP服务器限制

这些存在于Excel中,但 无法通过此MCP进行管理 由于COM API限制:

功能 状态
创建/更新/删除计算列 ❌ 使用Power Pivot窗口
设置列描述 ❌ 使用Power Pivot窗口

故障排除

错误 解决方案
“Excel未运行” 使用工作簿打开Excel
“找不到工作簿” 确保工作簿已在Excel中打开
“无数据模型” 请先创建Power Pivot数据模型
“未连接” 呼叫 connect_workbook 首先

许可证

MIT许可证-请参阅 许可证 文件。

贡献

欢迎投稿!请打开问题或拉取请求。

致谢