Skip to main content
Glama
Excel MCP Server

Excel MCP Server

by ishayoyo

Excel MCP Server

MCP server that gives Claude full read/write/analyze power over Excel and CSV files. 37 tools — from basic cell reads to financial modeling.

Install

npm install -g excel-csv-mcp-server

Then add to your MCP client:

Claude Code:

claude mcp remove excel-csv  # if previously added
claude mcp add excel-csv --transport stdio excel-csv-mcp-server

Claude Desktop / Cursor — add to your MCP config (claude_desktop_config.json or Cursor's mcp.json):

{
  "mcpServers": {
    "excel-csv": {
      "command": "excel-csv-mcp-server"
    }
  }
}

Option 2: npx (No Install)

No global install needed — runs directly:

Claude Code:

claude mcp add excel-csv stdio npx -- excel-csv-mcp-server

Claude Desktop / Cursor:

{
  "mcpServers": {
    "excel-csv": {
      "command": "npx",
      "args": ["-y", "excel-csv-mcp-server"]
    }
  }
}

Option 3: From Source

git clone https://github.com/ishayoyo/excel-mcp.git
cd excel-mcp
npm install
npm run build

Claude Code:

claude mcp add excel-csv stdio node /path/to/excel-mcp/dist/index.js

Claude Desktop / Cursor:

{
  "mcpServers": {
    "excel-csv": {
      "command": "node",
      "args": ["/path/to/excel-mcp/dist/index.js"]
    }
  }
}

Related MCP server: mcp-data-lens

What It Can Do

Category

Tools

Examples

Read & Navigate

read_file, get_cell, get_range, get_headers, search, filter_rows, aggregate

Read files, search values, filter rows, sum columns

Large Files

read_file_chunked, get_file_info

Stream 100MB+ files in chunks

Write & Format

write_file, add_sheet, write_multi_sheet, export_analysis, format_cells, auto_fit_columns

Create Excel/CSV, multi-sheet with formulas, style cells

Analytics

statistical_analysis, correlation_analysis, data_profile, pivot_table

Stats, correlations, profiling, pivot tables

Financial

dcf_analysis, budget_variance_analysis, ratio_analysis, scenario_modeling, trend_analysis

DCF valuation, budget vs actual, financial ratios, what-if scenarios

Data Cleaning

find_duplicates, data_cleaner, vlookup_helper

Remove duplicates, fix dates/phones/names, cross-file lookups

Bulk Ops

bulk_aggregate_multi_files, bulk_filter_multi_files

Aggregate/filter across multiple files

Validation

validate_data_consistency

Cross-file referential integrity checks

AI-Powered

evaluate_formula, parse_natural_language, explain_formula, smart_data_analysis, ai_provider_status

Evaluate formulas, natural language to formula, AI analysis

AI Providers (Optional)

For AI-powered tools (parse_natural_language, explain_formula, smart_data_analysis), create a .env file:

cp .env.example .env
ANTHROPIC_API_KEY=your-key
OPENAI_API_KEY=your-key
DEEPSEEK_API_KEY=your-key
GEMINI_API_KEY=your-key

Any single provider is enough. A local fallback works without any keys.

Data leaves your machine when a provider key is set. The AI tools send the spreadsheet content they are analysing to whichever provider you configured (Anthropic, OpenAI, DeepSeek, or Gemini). Leave the keys unset to keep every operation local -- the built-in fallback provider makes no network calls.

Security

The server reads and writes only .csv, .xlsx, and .xls files, and runs over stdio as a local process with your own user's permissions.

Restricting file access

By default any path you name is allowed, because opening a spreadsheet anywhere on your disk is the point of the tool. If you expose the server to callers you do not fully trust -- or want a guardrail against a malicious spreadsheet talking the model into writing somewhere unexpected -- confine it to one directory:

EXCEL_MCP_WORKSPACE_ROOT=/path/to/your/data

Every read and write then resolves inside that directory, and anything escaping it is rejected. Unset the variable to restore the default behaviour.

Note that containment is checked after the path is resolved, so .. traversal is handled, but symlinks are not followed: a symlink inside the root that points outside it will still resolve. Avoid placing untrusted symlinks in the workspace.

CSV formula injection

Spreadsheet applications evaluate a cell beginning with =, +, -, @, tab, or carriage return as a formula. When writing CSV, this server prefixes such values with a single quote so they stay literal text (CWE-1236). Plain numbers like -5 and +1.5 are recognised and left alone, so numeric data round-trips unchanged.

This guard is on by default. To emit raw values instead:

EXCEL_MCP_CSV_FORMULA_GUARD=off

Excel output is unaffected -- .xlsx cells are written as typed strings, which are never evaluated as formulas.

License

MIT

Available Tools

35 tools
add_sheetC

Add a new sheet to an existing Excel file

Inputs: filePath (required), sheetName (required), data (required), headers, +1 more.

aggregateC

Perform aggregation operations on a column

Inputs: filePath (required), column (required), operation (required), sheet.

ai_provider_statusB

Check status of available AI providers

Inputs: no named parameters.

auto_fit_columnsB

Automatically adjust column widths to fit content in Excel files

Inputs: filePath (required), sheet, columns, minWidth, +2 more.

budget_variance_analysisC

Analyze budget vs actual performance with variance calculations

Inputs: filePath (required), actualColumn (required), budgetColumn (required), sheet.

bulk_aggregate_multi_filesB

Aggregate same column across multiple files in parallel

Inputs: filePaths (required), column (required), operation (required), consolidate, +2 more.

bulk_filter_multi_filesC

Filter data across multiple files with optional export

Inputs: filePaths (required), filters (required), outputMode (required), outputPath, +1 more.

correlation_analysisC

Calculate correlation between two numeric columns

Inputs: filePath (required), column1 (required), column2 (required), sheet.

data_cleanerC

Batch data cleaning operations with intelligent detection of common data quality issues

Inputs: filePath (required), operations, preview, sheet.

data_profileC

Generate comprehensive data profiling report for all columns

Inputs: filePath (required), sheet.

dcf_analysisC

Perform Discounted Cash Flow (DCF) valuation analysis for investment evaluation

Inputs: filePath (required), sheet, assumptions.

evaluate_formulaC

Evaluate an Excel formula with given context

Inputs: formula (required), context.

explain_formulaB

Explain what an Excel formula does in plain English

Inputs: formula (required), provider.

export_analysisC

Export analysis results (pivot tables, statistics, etc.) to a new file

Inputs: analysisType (required), sourceFile (required), outputFile (required), analysisParams (required).

filter_rowsC

Filter rows based on column values

Inputs: filePath (required), column (required), condition (required), value (required), +1 more.

find_duplicatesC

Find and manage duplicate rows in Excel/CSV files with multiple strategies

Inputs: filePath (required), columns, action, keepFirst, +1 more.

format_cellsC

Apply formatting to Excel cells (fonts, colors, borders, alignment)

Inputs: filePath (required), range (required), styling (required), sheet.

get_cellC

Get the value of a specific cell using A1 notation

Inputs: filePath (required), cell (required), sheet.

get_file_infoC

Analyze file size and get chunking recommendations

Inputs: filePath (required), sheet.

get_headersB

Get the column headers (first row) of a file

Inputs: filePath (required), sheet.

get_rangeC

Get values from a range of cells

Inputs: filePath (required), startCell (required), endCell (required), sheet.

parse_natural_languageC

Convert natural language to Excel formula or command

Inputs: query (required), filePath, provider.

pivot_tableC

Create pivot table with grouping and aggregation

Inputs: filePath (required), groupBy (required), aggregateColumn (required), operation (required), +1 more.

ratio_analysisC

Perform comprehensive financial ratio analysis with industry benchmarks

Inputs: filePath (required), sheet.

read_fileB

Read an entire CSV or Excel file with optional chunking for large files

Inputs: filePath (required), sheet, offset, limit.

read_file_chunkedB

Read large files in manageable chunks to avoid token limits

Inputs: filePath (required), sheet, chunkIndex, chunkSize.

scenario_modelingC

Perform what-if scenario analysis with multiple assumptions

Inputs: filePath (required), scenarios (required), sheet.

smart_data_analysisC

AI-powered analysis suggestions for your data

Inputs: filePath (required), sheet, provider.

statistical_analysisC

Perform comprehensive statistical analysis on a column

Inputs: filePath (required), column (required), sheet.

trend_analysisC

Analyze time series trends, growth rates, seasonality, and forecasting for sales and performance data

Inputs: filePath (required), dateColumn (required), valueColumn (required), sheet, +1 more.

validate_data_consistencyC

Cross-validate data integrity across related files

Inputs: primaryFile (required), referenceFiles (required), validationRules, keyColumns, +4 more.

vlookup_helperB

Intelligent VLOOKUP setup and execution with error handling and fuzzy matching

Inputs: sourceFile (required), lookupFile (required), lookupColumn (required), returnColumns, +4 more.

write_fileC

Write data to a new CSV or Excel file (supports multiple sheets for Excel)

Inputs: filePath (required), data, headers, sheet, +1 more.

write_multi_sheetC

Create a complex Excel file with multiple sheets, formulas, and inter-sheet references

Inputs: filePath (required), sheets (required), sheetReferences.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.9/5.0

    Scored across 35 tools

    Disambiguation3/5

    The tools cover distinct Excel/data analysis functions, but there is significant overlap in some areas. For example, 'read_file' and 'read_file_chunked' serve similar purposes with minor differences, and 'bulk_aggregate_multi_files' and 'aggregate' could be confused for related operations. Descriptions help clarify, but the high count increases potential for misselection.

    Naming Consistency3/5

    Naming conventions are mixed, with some tools using verb_noun patterns (e.g., 'add_sheet', 'filter_rows') and others using noun_verb or descriptive phrases (e.g., 'data_cleaner', 'dcf_analysis'). While readable, the lack of a uniform pattern across all 35 tools reduces predictability and consistency.

    Tool Count2/5

    With 35 tools, the server feels overloaded for an Excel-focused domain. Many tools could be consolidated or parameterized (e.g., 'read_file' and 'read_file_chunked'), leading to a heavy and potentially confusing interface. This exceeds the typical well-scoped range of 3-15 tools, indicating poor scoping.

    Completeness4/5

    The tool set provides extensive coverage for Excel operations, including data I/O, analysis, formatting, and advanced functions like AI integration and financial modeling. Minor gaps exist, such as limited editing capabilities for existing files, but agents can work around these given the broad functionality available.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables users to ask questions about their spreadsheets in plain English and receive instant answers using DuckDB-powered analytics, supporting multiple file formats like Excel, CSV, and Parquet.
      2
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables querying Excel and CSV files using SQL via natural language, allowing AI assistants to analyze data without manual SQL writing.
      1
      MIT