XLSX Reader MCP
Provides integration with GitHub for version control and collaboration, allowing users to clone the repository and contribute to the project.
Offers integration with NPM for package distribution, allowing users to access the author's published packages through the NPM registry.
Uses Shields.io badges to display project status information including license, TypeScript version, and MCP SDK version.
Built with TypeScript 5.3+ to provide type safety and modern language features for the Excel file processing functionality.
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., "@XLSX Reader MCPRead the Excel file 'sales_data.xlsx' and show the first sheet as a 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.
๐ XLSX Reader MCP
A powerful Model Context Protocol (MCP) server for reading and analyzing Excel documents with advanced features.
โจ Features
๐ Read Excel Files: Support for
.xlsx,.xls, and.xlsmformats๐ฏ 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 buildUsage with Claude Desktop
Method 1: Stdio Mode (Recommended for Development)
Add to your Claude Desktop configuration:
{
"mcpServers": {
"xlsx-reader": {
"command": "node",
"args": ["path/to/xlsx-reader-mcp/build/index.js"]
}
}
}Method 2: SSE Mode (Recommended for Production)
# Start the SSE server
npm run sseThen 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 filesheetName(optional): Specific sheet to readrange(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 forsearchType(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 table2. analyze_xlsx - Excel File Analyzer
Perform comprehensive analysis of Excel files including structure, data types, and statistics.
Parameters:
filePath(required): Path to the Excel fileincludePreview(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 JSONReading with Row Limits
Read "large_dataset.xlsx" but limit to first 50 rowsSearching Data
Search for "ADSL" in column A of "data.xlsx" with exact matchFind 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 projectnpm run dev- Watch mode for developmentnpm start- Start the MCP servernpm run sse- Start SSE server on port 3100
Dependencies
@modelcontextprotocol/sdk: MCP SDK for server implementation
xlsx: Excel file processing library
๐ License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
๐จโ๐ป Author
Xingyu Chen
๐ง Email: guangxiangdebizi@gmail.com
๐ GitHub: @guangxiangdebizi
๐ผ LinkedIn: Xingyu Chen
๐ฆ NPM: @xingyuchen
๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
๐ Acknowledgments
Thanks to the Model Context Protocol team for the excellent SDK
Built with SheetJS for robust Excel file processing
Made with โค๏ธ for the MCP community
Available Tools
2 toolsanalyze_xlsxA
Analyze Excel files to get detailed information about structure, data types, statistics, and sheet contents.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Path to the Excel file to analyze | |
| includePreview | No | Whether to include a preview of the data (default: true) | |
| previewRows | No | Number of rows to preview (default: 5, max: 20) | |
| analyzeDataTypes | No | Whether to analyze data types in each column (default: true) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Path to the Excel file to read | |
| sheetName | No | Name of the specific sheet to read (optional, defaults to first sheet) | |
| range | No | Cell range to read (e.g., 'A1:C10', optional, defaults to entire sheet) | |
| format | No | Output format for the data (default: table) | |
| includeHeaders | No | Whether to include headers in the output (default: true) | |
| maxRows | No | Maximum number of rows to return (default: 100, max: 1000) | |
| searchColumn | No | Column name or index to search in (e.g., 'A', '1', or 'Name') | |
| searchValue | No | Value to search for in the specified column | |
| searchType | No | Type of search to perform (default: exact) |
TDQS
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.
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.
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.
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.
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.
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.
2 tool updates
- First observed
analyze_xlsx - First observed
read_xlsx
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one for analysis/overview of Excel files, the other for extracting data. No overlap or confusion.
Both tools follow a consistent verb_noun pattern with 'xlsx' as the target, using 'analyze' and 'read' actions.
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.
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
Related MCP Connectors
Model Context Protocol server for Studex tools, notifications, and profile integrations
A Model Context Protocol server for Wix AI tools
Model Context Protocol server for todo.vu task management and time tracking.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yoโฆ
Related MCP Servers
- AlicenseBqualityDmaintenanceA 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.36Apache 2.0
- AlicenseAqualityDmaintenanceA Model Context Protocol server that enables AI assistants to read from and write to Microsoft Excel files, supporting formats like xlsx, xlsm, xltx, and xltm.610,2011,022MIT
- AlicenseBqualityCmaintenanceEnables seamless reading, writing, and analyzing of Excel files through Model Context Protocol, with features for worksheet management, structure analysis, and automated caching.84449MIT
- -licenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides tools for reading, updating, filtering, and visualizing Excel data through a simple API.-