what is Excel MCP Server?
Excel MCP Server is a microservice for processing Excel files based on the Model Context Protocol (MCP), providing functionalities for reading, writing, and analyzing Excel files.
how to use Excel MCP Server?
To use Excel MCP Server, install the dependencies, build the project, and start the service using npm commands. You can then access the API tools for reading and writing Excel data.
key features of Excel MCP Server?
- 📖 Read Excel files: Get sheet names, read specific sheet data, and read all sheet data.
- ✍️ Write to Excel files: Create new files and write data to specified sheets.
- 🔍 Analyze Excel structure: Analyze and export the structure of Excel files.
- 💾 Cache management: Automatically cache file contents and manage cache expiration.
- 📝 Log management: Automatically record operation logs and manage log expiration.
use cases of Excel MCP Server?
- Automating data entry and extraction from Excel files.
- Analyzing data structures for reporting and visualization.
- Integrating Excel processing into larger data workflows.
FAQ from Excel MCP Server?
- Can Excel MCP Server handle large Excel files?
Yes, it is designed to efficiently process large Excel files.
- Is there a limit to the number of sheets it can read/write?
No, it can handle multiple sheets as long as system resources allow.
- What programming language is used for this project?
The project is developed in TypeScript.
Excel MCP Server
简体中文 | English
Excel file processing server based on Model Context Protocol (MCP), providing functionalities for reading, writing, and analyzing Excel files.
Features
-
📖 Read Excel Files
- Get worksheet list
- Read specific worksheet data
- Read all worksheets data
-
✍️ Write Excel Files
- Create new Excel files
- Write to specific worksheet
- Support multiple worksheets
-
🔍 Analyze Excel Structure
- Analyze worksheet structure
- Export structure to new file
-
💾 Cache Management
- Automatic file content caching
- Scheduled cache cleanup
- Manual cache clearing
-
📝 Log Management
- Automatic operation logging
- Periodic log cleanup
Installation
Installing via Smithery
To install excel-mcp-server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @zhiwei5576/excel-mcp-server --client claude
Installing Manually
Installing via NPM excel-mcp-server can be automatically installed by adding the following configuration to the MCP servers configuration.
Windows Platform:
{
"mcpServers": {
"excel": {
"command": "cmd",
"args": ["/c", "npx", "--yes", "@zhiweixu/excel-mcp-server"],
"env": {
"LOG_PATH": "[set an accessible absolute path]",
"CACHE_MAX_AGE": "1",
"CACHE_CLEANUP_INTERVAL": "4",
"LOG_RETENTION_DAYS": "7",
"LOG_CLEANUP_INTERVAL": "24"
}
}
}
Other Platforms:
{
"mcpServers": {
"excel": {
"command": "npx",
"args": ["--yes", "@zhiweixu/excel-mcp-server"],
"env": {
"LOG_PATH": "[set an accessible absolute path]",
"CACHE_MAX_AGE": "1",
"CACHE_CLEANUP_INTERVAL": "4",
"LOG_RETENTION_DAYS": "7",
"LOG_CLEANUP_INTERVAL": "24"
}
}
}
Note: LOG_PATH is optional. If not set, logs will be stored in the 'logs' folder under the application root directory.other arguments are optional.
API Tools
Structure Tools
-
analyzeExcelStructure
- Function: Get Excel file structure including sheet list and column headers in JSON format
- Parameters:
- fileAbsolutePath: Absolute path of the Excel file
- headerRows: Number of header rows (default: 1)
-
exportExcelStructure
- Function: Export Excel file structure (sheets and headers) to a new Excel template file
- Parameters:
- sourceFilePath: Source Excel file path
- targetFilePath: Target Excel file path
- headerRows: Number of header rows (default: 1)
Read Tools
-
readSheetNames
- Function: Get all sheet names from the Excel file
- Parameters:
- fileAbsolutePath: Absolute path of the Excel file
-
readDataBySheetName
- Function: Get data from a specific sheet in the Excel file
- Parameters:
- fileAbsolutePath: Absolute path of the Excel file
- sheetName: Name of the sheet to read
- headerRow: Header row number (default: 1)
- dataStartRow: Data start row number (default: 2)
-
readSheetData
- Function: Get data from all sheets in the Excel file
- Parameters:
- fileAbsolutePath: Absolute path of the Excel file
- headerRow: Header row number (default: 1)
- dataStartRow: Data start row number (default: 2)
Write Tools
-
writeDataBySheetName
- Function: Write data to a specific sheet in the Excel file (overwrites if sheet exists)
- Parameters:
- fileAbsolutePath: Absolute path of the Excel file
- sheetName: Name of the sheet to write
- data: Array of data to write
-
writeSheetData
- Function: Create a new Excel file with provided data
- Parameters:
- fileAbsolutePath: Absolute path for the new Excel file
- data: Object containing multiple sheet data
Cache Tools
- clearFileCache
- Function: Clear cached data for the specified Excel file
- Parameters:
- fileAbsolutePath: Absolute path of the Excel file to clear from cache
Configuration
Environment Variables
-
LOG_PATH
: Log files storage path- Optional
- Default: 'logs' folder under application root directory
-
CACHE_MAX_AGE
: Cache expiration time (hours)- Optional
- Default: 1
-
CACHE_CLEANUP_INTERVAL
: Cache cleanup interval (hours)- Optional
- Default: 4
-
LOG_RETENTION_DAYS
: Log retention days- Optional
- Default: 7
-
LOG_CLEANUP_INTERVAL
: Log cleanup interval (hours)- Optional
- Default: 24
Default Configuration
-
Cache Configuration
- Cache expiration time: 1 hour
- Cache cleanup interval: 4 hours
-
Log Configuration
- Log retention days: 7 days
- Cleanup interval: 24 hours
Dependencies
- @modelcontextprotocol/sdk: ^1.7.0
- xlsx: ^0.18.5
- typescript: ^5.8.2
Development Dependencies
- @types/node: ^22.13.10
- nodemon: ^3.1.9
- ts-node: ^10.9.2
License
This project is licensed under the MIT License. This means you are free to:
-
Use the software for commercial or non-commercial purposes
-
Modify the source code
-
Distribute original or modified code Requirements:
-
Retain the original copyright notice
-
No liability can be claimed against the authors for software use For detailed license information,please see the LICENSE file.