mcp-excel-reader-server

MCP.Pizza Chef: softgridinc-pte-ltd

The mcp-excel-reader-server is an MCP server that enables reading and extracting data from Microsoft Excel (xlsx) files. It supports reading all sheets, specific sheets by name or index, and returns the data in JSON format. It handles empty cells and data type conversions, making Excel data accessible for LLMs and automated workflows. Requires Python 3.10+ and dependencies like openpyxl and MCP framework.

Use This MCP server To

Extract data from all sheets in an Excel file as JSON Read specific Excel sheet content by sheet name Read specific Excel sheet content by sheet index Convert Excel data for use in AI workflows Handle Excel files with empty cells and mixed data types Integrate Excel data extraction into automated pipelines Enable LLMs to query Excel spreadsheet contents

README

Excel Reader Server

A Model Context Protocol (MCP) server that provides tools for reading Excel (xlsx) files.

Excel Reader Server MCP server

Features

  • Read content from all sheets in an Excel file
  • Read content from a specific sheet by name
  • Read content from a specific sheet by index
  • Returns data in JSON format
  • Handles empty cells and data type conversions

Installation

Requires Python 3.10 or higher.

# Using pip
pip install excel-reader-server

# Using uv (recommended)
uv pip install excel-reader-server

Dependencies

  • mcp >= 1.2.1
  • openpyxl >= 3.1.5

Usage

The server provides three main tools:

1. read_excel

Reads content from all sheets in an Excel file.

{
  "file_path": "path/to/your/excel/file.xlsx"
}

2. read_excel_by_sheet_name

Reads content from a specific sheet by name. If no sheet name is provided, reads the first sheet.

{
  "file_path": "path/to/your/excel/file.xlsx",
  "sheet_name": "Sheet1"  # optional
}

3. read_excel_by_sheet_index

Reads content from a specific sheet by index. If no index is provided, reads the first sheet (index 0).

{
  "file_path": "path/to/your/excel/file.xlsx",
  "sheet_index": 0  # optional
}

Response Format

The server returns data in the following JSON format:

{
  "Sheet1": [
    ["Header1", "Header2", "Header3"],
    ["Value1", "Value2", "Value3"],
    ["Value4", "Value5", "Value6"]
  ]
}
  • Each sheet is represented as a key in the top-level object
  • Sheet data is an array of arrays, where each inner array represents a row
  • All values are converted to strings
  • Empty cells are represented as empty strings

Error Handling

The server provides clear error messages for common issues:

  • File not found
  • Invalid sheet name
  • Index out of range
  • General Excel file reading errors

License

This project is released under the Apache 2 License. See the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

mcp-excel-reader-server FAQ

How do I install the mcp-excel-reader-server?
Install using pip with 'pip install excel-reader-server' or 'uv pip install excel-reader-server'. Requires Python 3.10 or higher.
What dependencies are required?
It requires the MCP framework (version 1.2.1 or higher) and openpyxl (version 3.1.5 or higher).
How does the server handle empty cells in Excel files?
It gracefully handles empty cells by representing them appropriately in the JSON output, ensuring data integrity.
Can I read a specific sheet by its name?
Yes, the server provides a tool to read content from a specific sheet by its name.
Can I read a sheet by its index?
Yes, you can specify the sheet index to read its content.
What format is the Excel data returned in?
The data is returned in JSON format, suitable for further processing or integration.
Is this server compatible with multiple MCP LLM providers?
Yes, it is provider-agnostic and works with OpenAI, Claude, Gemini, and others.
What Python version is required?
Python 3.10 or higher is required to run this server.