Skip to main content
Glama
guangxiangdebizi

XLSX Reader MCP

๐Ÿ“Š XLSX Reader MCP

A powerful Model Context Protocol (MCP) server for reading and analyzing Excel documents with advanced features.

License TypeScript MCP SDK

โœจ Features

  • ๐Ÿ“– Read Excel Files: Support for .xlsx, .xls, and .xlsm formats

  • ๐ŸŽฏ Flexible Data Access: Read entire sheets, specific ranges, or targeted cells

  • ๐Ÿ“Š Multiple Output Formats: JSON, CSV, and formatted table outputs

  • ๐Ÿ” Advanced Analysis: Detailed file structure, data type analysis, and statistics

  • ๐Ÿ“‹ Sheet Management: Work with multiple sheets and get comprehensive overviews

  • ๐ŸŽจ Beautiful Formatting: Clean, readable output with proper table formatting

  • โšก High Performance: Efficient processing of large Excel files

  • ๐Ÿšซ Smart Filtering: Automatically skip empty rows for cleaner output

  • ๐Ÿ“ Configurable Limits: Control maximum rows and preview size for optimal performance

Related MCP server: Excel MCP Server

๐Ÿš€ Quick Start

Installation

# Clone the repository
git clone https://github.com/guangxiangdebizi/xlsx-reader-mcp.git
cd xlsx-reader-mcp

# Install dependencies
npm install

# Build the project
npm run build

Usage with Claude Desktop

Add to your Claude Desktop configuration:

{
  "mcpServers": {
    "xlsx-reader": {
      "command": "node",
      "args": ["path/to/xlsx-reader-mcp/build/index.js"]
    }
  }
}
# Start the SSE server
npm run sse

Then add to Claude Desktop configuration:

{
  "mcpServers": {
    "xlsx-reader": {
      "type": "sse",
      "url": "http://localhost:3100/sse",
      "timeout": 600
    }
  }
}

๐Ÿ› ๏ธ Available Tools

1. read_xlsx - Excel File Reader

Read and extract data from Excel files with flexible formatting options and search capabilities.

Parameters:

  • filePath (required): Path to the Excel file

  • sheetName (optional): Specific sheet to read

  • range (optional): Cell range (e.g., "A1:C10")

  • format (optional): Output format - "json", "csv", or "table" (default)

  • includeHeaders (optional): Include headers in output (default: true)

  • maxRows (optional): Maximum rows to return (default: 100, max: 1000)

  • searchColumn (optional): Column to search in (column name, index, or Excel letter)

  • searchValue (optional): Value to search for

  • searchType (optional): Search type - "exact", "contains", "startsWith", "endsWith" (default: "exact")

Note: Empty rows are automatically filtered out to provide cleaner output.

Example Usage:

Read the Excel file "data.xlsx" and show the first sheet as a table

2. analyze_xlsx - Excel File Analyzer

Perform comprehensive analysis of Excel files including structure, data types, and statistics.

Parameters:

  • filePath (required): Path to the Excel file

  • includePreview (optional): Include data preview (default: true)

  • previewRows (optional): Number of preview rows (default: 5, max: 20)

  • analyzeDataTypes (optional): Analyze column data types (default: true)

Example Usage:

Analyze the structure and content of "report.xlsx"

๐Ÿ“– Examples

Basic File Reading

Read the Excel file "sales_data.xlsx"

Reading Specific Sheet and Range

Read cells A1:E10 from the "Summary" sheet in "quarterly_report.xlsx" and format as JSON

Reading with Row Limits

Read "large_dataset.xlsx" but limit to first 50 rows

Searching Data

Search for "ADSL" in column A of "data.xlsx" with exact match
Find all rows containing "John" in the "Name" column of "employees.xlsx"
Search for values starting with "ABC" in column 3 of "products.xlsx"

Comprehensive File Analysis

Analyze "customer_database.xlsx" and show detailed information about all sheets

๐Ÿ—๏ธ Project Structure

src/
โ”œโ”€โ”€ index.ts              # MCP server entry point
โ””โ”€โ”€ tools/
    โ”œโ”€โ”€ xlsx-reader.ts    # Excel file reading tool
    โ””โ”€โ”€ xlsx-analyzer.ts  # Excel file analysis tool

๐Ÿ”ง Development

Scripts

  • npm run build - Build the TypeScript project

  • npm run dev - Watch mode for development

  • npm start - Start the MCP server

  • npm run sse - Start SSE server on port 3100

Dependencies

๐Ÿ“„ License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

๐Ÿ‘จโ€๐Ÿ’ป Author

Xingyu Chen

๐Ÿค Contributing

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

๐Ÿ™ Acknowledgments


Made with โค๏ธ for the MCP community

Available Tools

2 tools
analyze_xlsxA

Analyze Excel files to get detailed information about structure, data types, statistics, and sheet contents.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesPath to the Excel file to analyze
includePreviewNoWhether to include a preview of the data (default: true)
previewRowsNoNumber of rows to preview (default: 5, max: 20)
analyzeDataTypesNoWhether to analyze data types in each column (default: true)

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It does not mention that the tool is read-only (non-destructive), potential performance impacts on large files, or any restrictions. The name implies analysis but lacks explicit safety guarantees.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that immediately conveys the tool's purpose without unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description adequately summarizes the tool's functionality but does not mention output format, error handling, or file format constraints. Given the absence of output schema and annotations, it could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of parameters with descriptions; the tool description adds no additional meaning beyond the schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool analyzes Excel files to obtain detailed information about structure, data types, statistics, and sheet contents, distinguishing it from the sibling tool 'read_xlsx' which likely reads data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (when analysis of structure/types/statistics is needed) but does not explicitly state when not to use or name the sibling as an alternative for raw reading.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_xlsxB

Read and extract data from Excel (xlsx) files. Supports reading specific sheets, cell ranges, and converting data to various formats.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesPath to the Excel file to read
sheetNameNoName of the specific sheet to read (optional, defaults to first sheet)
rangeNoCell range to read (e.g., 'A1:C10', optional, defaults to entire sheet)
formatNoOutput format for the data (default: table)
includeHeadersNoWhether to include headers in the output (default: true)
maxRowsNoMaximum number of rows to return (default: 100, max: 1000)
searchColumnNoColumn name or index to search in (e.g., 'A', '1', or 'Name')
searchValueNoValue to search for in the specified column
searchTypeNoType of search to perform (default: exact)

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description must disclose behavior. It does not mention that the tool is read-only, what happens on file errors, or other side effects. The name implies no mutation, but explicit statements are lacking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with main purpose, no extraneous information. Highly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 9 parameters and no output schema, the description lacks context on return values, error handling, and limitations (e.g., file size). More details would be beneficial for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All parameters have descriptions in the schema (100% coverage), so the description adds little additional meaning beyond restating capabilities. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads and extracts data from xlsx files, mentions specific features like sheets, ranges, and formats, and implicitly distinguishes from the sibling tool 'analyze_xlsx' by focusing on extraction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives; the sibling tool 'analyze_xlsx' hints at differentiation but the description does not elaborate on when to use read vs analyze.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 2 tool updates
    • First observedanalyze_xlsx
    • First observedread_xlsx

TDQS

A3.8/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: one for analysis/overview of Excel files, the other for extracting data. No overlap or confusion.

Naming Consistency5/5

Both tools follow a consistent verb_noun pattern with 'xlsx' as the target, using 'analyze' and 'read' actions.

Tool Count4/5

With only two tools, the server is thin but well-scoped for its reader-only purpose. It avoids unnecessary tools while covering the core needs.

Completeness4/5

The server covers the main operations for an Excel reader: analysis and data extraction. Missing specific operations like listing sheets separately are likely covered by the analysis tool.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that provides tools for reading Excel (xlsx) files, enabling extraction of data from entire workbooks or specific sheets with results returned in structured JSON format.
    3
    6
    Apache 2.0
  • A
    license
    B
    quality
    C
    maintenance
    Enables seamless reading, writing, and analyzing of Excel files through Model Context Protocol, with features for worksheet management, structure analysis, and automated caching.
    8
    44
    49
    MIT
  • -
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that provides tools for reading, updating, filtering, and visualizing Excel data through a simple API.
    -