Excel Analytics MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Excel Analytics MCP Server show me the top 10 customers by revenue from the sales table"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Excel Analytics MCP Server
A self-evolving data analytics toolkit for Claude Desktop. Drop your Excel files in, ask questions in plain English, and build up a personal library of reusable analysis tools — no coding required.
What It Does
Upload Excel/CSV files via a web dashboard
Ask Claude questions about your data in natural language
Save analyses as reusable tools you can run again and again
Create custom tools that Claude can use on your behalf
Everything stays local — your data never leaves your machine
Related MCP server: csv-mcp-server
Install
Option 1: PyPI (recommended)
Requires Python 3.10+ and uv.
# Install uv if you don't have it
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install and configure Claude Desktop
uvx excel-analytics-mcp --setupThat's it. Restart Claude Desktop and start asking questions.
Option 2: From source
git clone https://github.com/blakethom8/excel-mcp.git
cd excel-mcp
bash install.shThe install script will:
Check for Python 3.10+ and install
uvif neededInstall all dependencies in an isolated virtual environment
Configure Claude Desktop automatically
Create the data directory at
~/Documents/Excel Analytics/
How to Use
1. Upload Your Data
Open the dashboard at http://localhost:8765 (starts automatically when Claude Desktop launches the server) and drag your Excel or CSV files into the upload zone.
2. Ask Claude Questions
In Claude Desktop, try prompts like:
"What datasets do I have?"
"Describe the sales table"
"Show me the top 10 customers by revenue"
"What's the average order value by month?"
"Find all invoices over $5,000 from last week"
3. Save Reusable Analyses
When you find a useful query, ask Claude to save it:
"Save this as a tool called 'Top Customers'"
"Create a reusable analysis for monthly revenue trends"
4. Manage Your Tools
Visit the Tools tab in the dashboard to:
View all your saved analyses and custom tools
Edit tool parameters
Test tools with different inputs
Delete tools you no longer need
How It Works
Claude Desktop ←→ MCP Server (stdio) ←→ SQLite DB
↓
REST API (port 8765) ←→ Web DashboardMCP Server communicates with Claude Desktop via stdio (the Model Context Protocol)
REST API runs in a background thread on
localhost:8765to power the dashboardSQLite stores your data locally — Excel/CSV files are converted on upload
Both the MCP server and dashboard share the same database and tool registry
Data Ingestion
When you upload an Excel file:
Each sheet becomes a separate SQLite table
Column names are cleaned (lowercase, underscores)
Numeric columns are auto-detected and properly typed
Headers are auto-detected (no manual configuration needed)
Available Tools
Core Tools (always available)
Tool | Description |
| Show all loaded tables with row/column counts |
| Column names, types, sample values, and basic stats |
| Run read-only SQL queries against your data |
| Statistical summary of a table or specific column |
Meta Tools (for building your toolkit)
Tool | Description |
| Save a SQL query as a reusable named tool |
| Build a custom Python tool (sandboxed) |
| See all your saved tools |
| Update an existing tool |
| Remove a tool |
| Run a tool with test parameters |
Dynamic Tools
Tools you create (via Claude or the dashboard) are saved as JSON files and automatically registered as MCP tools on startup. They persist across sessions and can be shared.
Dashboard
The web dashboard at http://localhost:8765 provides:
Data Manager — upload files, browse tables, preview data, see column stats
Tool Workshop — view core tools, manage saved analyses, test tools with auto-generated forms
The dashboard is a single HTML file with no build step — it works in any modern browser.
Where Your Data Lives
All data stays on your machine in a visible, browsable folder:
Path | Purpose |
| SQLite database with all your uploaded data |
| Saved analyses and custom tools (JSON files) |
| Generated output files |
| User configuration |
You can override the base directory with the EXCEL_MCP_HOME environment variable.
Security
SQL: Read-only queries only (
SELECT). No writes, drops, or schema changes.Python tools: Sandboxed execution with restricted imports. No file system access, no network calls, no dangerous operations.
Local only: All data stored in
~/Documents/Excel Analytics/. Nothing is sent to external servers. The MCP server communicates only with Claude Desktop on your machine.No telemetry: No usage tracking, no analytics, no phone-home.
Configuration
Edit ~/Documents/Excel Analytics/config.json:
{
"port": 8765,
"auto_scan": false
}Setting | Default | Description |
|
| Dashboard port |
|
| Auto-scan a directory for Excel files on startup |
Development
git clone https://github.com/blakethom8/excel-mcp.git
cd excel-mcp
uv sync
uv run python -m excel_mcpRequirements
Python 3.10+
macOS, Windows, or Linux
License
MIT
Available Tools
10 toolscreate_toolC
Create a custom Python tool (sandboxed). The code must define a run(db, **kwargs) function.
parameters should be a JSON string like: {"param": {"type": "string", "description": "...", "default": ...}}
Inputs: name (required), description (required), python_code (required), parameters. Returns: result
delete_toolB
Remove a user-created tool.
Inputs: tool_id (required). Returns: result
describe_datasetB
Column names, types, sample values, and basic stats for a table.
Inputs: table (required). Returns: result
edit_toolC
Update an existing saved analysis or custom tool.
Inputs: tool_id (required), name, description, sql_template, +2 more. Returns: result
list_datasetsA
Show all loaded tables with row/column counts.
Inputs: no named parameters. Returns: result
list_my_toolsB
Show all user-created tools (saved analyses and custom tools).
Inputs: no named parameters. Returns: result
queryA
Run a read-only SQL query against the database. Only SELECT queries allowed.
Inputs: sql (required). Returns: result
save_analysisC
Save a SQL template as a reusable named tool.
parameters should be a JSON string like: {"param": {"type": "string", "description": "...", "default": ...}}
Inputs: name (required), description (required), sql_template (required), parameters. Returns: result
summarizeC
Quick statistical summary of a table or a specific column.
Inputs: table (required), column. Returns: result
test_toolB
Run a tool with given parameters and return results.
params should be a JSON string of the parameters to pass.
Inputs: tool_id (required), params. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
The tools have some clear distinctions, but there is notable overlap between create_tool, save_analysis, and edit_tool, which all involve managing custom tools or analyses, potentially causing confusion. Other tools like describe_dataset and summarize serve distinct purposes, but the tool management cluster lacks clear boundaries.
Most tools follow a consistent verb_noun pattern (e.g., create_tool, delete_tool, list_datasets), with only minor deviations like 'query' and 'summarize' being single words. Overall, the naming is readable and predictable, though not perfectly uniform.
With 10 tools, the count is well-scoped for an Excel analytics server, covering data exploration, querying, and custom tool management. Each tool appears to serve a specific role without obvious bloat or redundancy.
The toolset covers core analytics workflows: data inspection (list_datasets, describe_dataset, summarize), querying (query), and custom tool lifecycle (create, edit, delete, test, list). A minor gap is the lack of data manipulation tools (e.g., update or insert), but this is reasonable for a read-focused analytics server.
Maintenance
Related MCP Connectors
Interactive data visualization and executive PDF dashboards for ChatGPT, Claude, and Cursor.
AI data analyst: ask about your Excel, CSV, GA4 or database data and get charts and dashboards back
Open, inspect, filter, edit and convert xlsx and csv files from your AI chat. Processing is local.
Open, inspect, filter, edit and convert xlsx and csv files from your AI chat. Processing is local.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables creating interactive data visualizations from natural language queries using DuckDB for local databases or Databricks for enterprise data warehouses. Supports multiple chart types, CSV imports, SQL queries, and automatic statistical analysis through Claude Desktop.19MIT
- FlicenseBqualityDmaintenanceEnables Claude to directly access, query, and analyze local CSV files using natural language, keeping data private and local.41-
- FlicenseAqualityDmaintenanceEnables Claude to analyze local CSV or Parquet files, handling larger datasets without uploading full files.318-
- AlicenseNot gradedqualityDmaintenanceEnables Claude to read, analyze, and write directly to local Power BI semantic models and Excel workbooks without exporting to the cloud.1MIT