Skip to main content
Glama
README.md7.34 kB
# Excel Power Pivot MCP Server A Model Context Protocol (MCP) server that enables AI assistants to interact with Excel Power Pivot data models. Create and manage DAX measures, relationships, and more through natural language. ## Features - **Workbook Discovery & Connection** - Discover and connect to open Excel workbooks with Power Pivot data models - **DAX Query Execution** - Run DAX queries and preview table data - **Measure Management** - Create, update, and delete DAX measures with auto-formatting - **Relationship Management** - Create, delete, and activate/deactivate table relationships - **Model Exploration** - List tables, columns, measures, relationships, hierarchies, KPIs, and dependencies - **Data Profiling** - Analyze column statistics (min, max, distinct count, nulls, sample values) - **Power Query Discovery** - List Power Queries (M code) in the workbook - **Table Management** - Add Excel tables to the data model, refresh tables/model > [!WARNING] > **Use at your own risk.** This tool modifies your Excel Power Pivot data models directly. The author is not responsible for any data loss, corruption, or damage to your workbooks. **Always maintain backups of your Excel files before using this tool.** ## Requirements - **Windows 10/11** (required for Excel COM interop) - **Microsoft Excel 2013+** with Power Pivot enabled ## Installation Download the latest `ExcelPowerPivotMcp.exe` from the [Releases](https://github.com/back1ply/Excel-Power-Pivot-MCP/releases) page. No installation required - just download and configure your MCP client. ## MCP Client Configuration ### Claude Desktop Add to your `claude_desktop_config.json`: **Windows:** `%APPDATA%\Claude\claude_desktop_config.json` ```json { "mcpServers": { "excel-powerpivot": { "command": "C:/path/to/ExcelPowerPivotMcp.exe" } } } ``` ### Cursor Add to your Cursor MCP settings: ```json { "mcpServers": { "excel-powerpivot": { "command": "C:/path/to/ExcelPowerPivotMcp.exe" } } } ``` ### Antigravity (VS Code) Add to your `.vscode/mcp.json`: ```json { "servers": { "excel-powerpivot": { "type": "stdio", "command": "C:/path/to/ExcelPowerPivotMcp.exe" } } } ``` ## Usage ### 1. Open Excel with Power Pivot Open your Excel workbook that contains a Power Pivot data model. ### 2. Connect via MCP The AI assistant will first discover and connect to your workbook: ``` 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. Explore and Modify ``` 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() ``` ## Available Tools ### Connection | Tool | Description | |------|-------------| | `discover_workbooks` | Find open Excel workbooks with Power Pivot models | | `connect_workbook` | Connect to a specific workbook | | `get_connection_status` | Check current connection status | | `save_workbook` | Save the connected workbook | | `refresh_model` | Refresh the entire data model | ### Model Metadata | Tool | Description | |------|-------------| | `get_model_summary` | Comprehensive model overview | | `list_tables` | List all tables with row counts | | `list_columns` | List columns in a table | | `list_measures` | List measures with expressions | | `list_relationships` | Show table relationships | | `list_hierarchies` | List user-defined hierarchies | | `list_kpis` | List Key Performance Indicators | | `get_dependencies` | Show calculation dependencies | | `list_power_queries` | List Power Queries (M code) | | `list_excel_tables` | List Excel tables (ListObjects) | ### DAX Queries | Tool | Description | |------|-------------| | `run_dax` | Execute DAX queries or preview table data | | `analyze_column` | Get column statistics and sample values | ### Measure CRUD | Tool | Description | |------|-------------| | `create_measure` | Create a new DAX measure | | `update_measure` | Update expression/name/description | | `delete_measure` | Delete a measure | ### Relationship CRUD | Tool | Description | |------|-------------| | `create_relationship` | Create a table relationship | | `delete_relationship` | Delete a relationship | | `set_relationship_active` | Activate/deactivate a relationship | ### Table Operations | Tool | Description | |------|-------------| | `add_table_to_model` | [DESTRUCTIVE] Add Excel table to data model | | `refresh_table` | Refresh a single table | ### Prompts | Prompt | Description | |--------|-------------| | `describe_model` | Describe the data model in plain English | | `workflow_create_measure` | Guided workflow to create a measure | | `workflow_analyze_model` | Analyze model structure and suggest improvements | | `workflow_test_dax` | Test DAX before creating permanent measures | | `workflow_fix_measure` | Debug and fix a broken measure | | `workflow_add_relationship` | Guided workflow to add a relationship | | `recover_connection` | Recover from a lost Excel connection | ### Resources | URI | Description | |-----|-------------| | `model://schema` | Current Power Pivot data model schema (JSON) | | `model://dirty-state` | Check for unsaved changes | | `model://logs` | Recent server diagnostic logs | | `model://instructions` | Guidelines for working with Power Pivot | | `model://best-practices` | Measure best practices guide | | `model://dax-guide` | DAX query guide for Excel | | `model://workflows` | Common workflow reference | ## Performance Tips ### Fast Measure Creation Use `autoFormat: false` to skip DAX formatting for faster measure creation (~1.5s savings): ```json { "tableName": "Sales", "measureName": "Quick Measure", "expression": "SUM(Sales[Amount])", "autoFormat": false } ``` ## Limitations ### Excel Power Pivot Limitations These features are **not available in Excel Power Pivot** (unlike Power BI): | Feature | Excel Power Pivot | |---------|-------------------| | Calculation Groups | ❌ Not supported | | Perspectives | ❌ Not supported | | Row-Level Security (RLS) | ❌ Not supported | | DEFINE COLUMN in DAX queries | ❌ Not supported | ### MCP Server Limitations These exist in Excel but **cannot be managed via this MCP** due to COM API restrictions: | Feature | Status | |---------|--------| | Create/Update/Delete Calculated Columns | ❌ Use Power Pivot window | | Set Column Descriptions | ❌ Use Power Pivot window | ## Troubleshooting | Error | Solution | |-------|----------| | "Excel is not running" | Open Excel with your workbook | | "Workbook not found" | Ensure the workbook is open in Excel | | "No data model" | Create a Power Pivot data model first | | "Not connected" | Call `connect_workbook` first | ## License MIT License - see [LICENSE](LICENSE) file. ## Contributing Contributions welcome! Please open an issue or pull request. ## Acknowledgments - [Model Context Protocol](https://modelcontextprotocol.io/) by Anthropic - [DAX Formatter](https://www.daxformatter.com/) by SQLBI

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/back1ply/Excel-Power-Pivot-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server