Excel MCP Server
A Model Context Protocol (MCP) server for Excel operations with enterprise-grade security and clean architecture. Seamlessly integrates with GitHub Copilot, Cline, and other MCP-compatible tools in VS Code.
Features
- Complete Excel Operations: Read, write, and manipulate Excel files (.xlsx, .xls)
- Clean Architecture: Follows Single Responsibility Principle for maintainability
- Enterprise Security: Robust permission system with path restrictions and access control
- VS Code Integration: Works seamlessly with GitHub Copilot and Cline
- TypeScript: Full type safety with modern ES2022+ features
- Zero Deprecated Dependencies: Uses only current, actively maintained libraries
Quick Start
Installation
# Clone the repository
git clone https://github.com/az-coder-123/excel-mcp.git
cd excel-mcp
# Install dependencies
npm install
# Build the project
npm run build
# Copy example environment file
cp .env.example .env
📌 Đã cấu hình sẵn cho Cline
Server đã được cấu hình và kết nối sẵn với Cline! Xem Hướng dẫn cài đặt chi tiết để biết:
✅ Trạng thái hiện tại: Đã kết nối và hoạt động bình thường
- Server đang chạy:
node dist/index.js - Cấu hình Cline:
.cline/mcp_servers.json - File cấu hình đã sẵn sàng sử dụng
Xem ngay: docs/SETUP_GUIDE.md để biết cách sử dụng
Configuration
Edit .env file to customize permissions:
# Restrict access to specific directories
MCP_ALLOWED_PATHS=/home/user/documents,/workspace
# Block sensitive system directories
MCP_DENIED_PATHS=/etc/*,/sys/*,C:\Windows\*
# Set maximum file size (50MB default)
MCP_MAX_FILE_SIZE=52428800
VS Code Integration
This server works seamlessly with MCP-compatible tools in VS Code. See the dedicated setup guides for detailed configuration instructions:
- GitHub Copilot Setup — Configuration for GitHub Copilot Chat in VS Code.
- Cline Setup — Configuration for the Cline extension in VS Code.
Available Tools
For detailed parameter references, see the Tools Reference.
System
| Tool | Description |
|---|---|
excel_health_check |
Check server health, dependencies, and configuration |
Workbook Operations
| Tool | Description |
|---|---|
excel_open_workbook |
Open an Excel file for operations |
excel_create_workbook |
Create a new Excel workbook |
excel_save_workbook |
Save the workbook to disk |
excel_close_workbook |
Close an opened workbook |
excel_get_workbook_context |
Get workbook context and state |
excel_export_worksheet_to_new_file |
Export worksheet to a new Excel file |
Worksheet Operations
| Tool | Description |
|---|---|
excel_list_worksheets |
List all worksheets in a workbook |
excel_add_worksheet |
Add a new worksheet |
excel_delete_worksheet |
Delete a worksheet |
excel_rename_worksheet |
Rename a worksheet |
excel_copy_worksheet |
Copy a worksheet |
Cell Operations
| Tool | Description |
|---|---|
excel_read_cell |
Read a single cell value |
excel_read_range |
Read multiple cells |
excel_write_cell |
Write a value to a cell |
excel_write_batch |
Write multiple cells at once |
excel_get_cell_info |
Get detailed cell information (type, formula) |
excel_copy_range |
Copy a cell range to another location |
excel_find_replace |
Find and replace text |
Formatting → Detailed docs
| Tool | Category | Docs |
|---|---|---|
excel_set_font_style |
Font & Text | → |
excel_set_font_name_size |
Font & Text | → |
excel_set_rich_text |
Font & Text | → |
excel_set_alignment |
Alignment | → |
excel_center_text |
Alignment | → |
excel_set_border |
Borders | → |
excel_apply_all_borders |
Borders | → |
excel_apply_outline_border |
Borders | → |
excel_set_background_color |
Colors | → |
excel_set_font_color |
Colors | → |
excel_set_number_format |
Number Formats | → |
excel_apply_currency_format |
Number Formats | → |
excel_apply_percentage_format |
Number Formats | → |
excel_apply_date_format |
Number Formats | → |
excel_apply_header_style |
Style Presets | → |
excel_apply_title_style |
Style Presets | → |
excel_apply_table_style |
Style Presets | → |
Accounting & Finance → Detailed docs
| Tool | Category | Docs |
|---|---|---|
excel_financial_sum |
Financial Calculations | → |
excel_financial_average |
Financial Calculations | → |
excel_running_total |
Financial Calculations | → |
excel_percentage_of_total |
Financial Calculations | → |
excel_year_to_date |
Financial Calculations | → |
excel_accounting_format |
Accounting Formats | → |
excel_vnd_currency_format |
Accounting Formats | → |
excel_negative_red_format |
Accounting Formats | → |
excel_show_zeros_instead_of_empty |
Accounting Formats | → |
excel_period_comparison |
Financial Analysis | → |
excel_variance_analysis |
Financial Analysis | → |
excel_check_balance |
Financial Analysis | → |
excel_find_anomalies |
Financial Analysis | → |
excel_calculate_npv |
Investment Analysis | → |
excel_calculate_irr |
Investment Analysis | → |
excel_calculate_financial_ratio |
Investment Analysis | → |
excel_create_amortization_schedule |
Loan & Debt | → |
excel_create_aging_report |
Loan & Debt | → |
excel_calculate_tax |
Tax & Currency | → |
excel_convert_currency |
Tax & Currency | → |
Usage Examples & Reference
- Examples — Practical usage examples for all tool groups
- Reference — Color codes, border styles, font names, AARRGGBB format
Security Features
Permission Levels
- read: Read-only access to Excel files
- write: Create and modify Excel files
- delete: Delete worksheets and clear data
- admin: Full administrative access
Path Restrictions
Configure allowed and denied paths using wildcards:
# Allow only specific directories
MCP_ALLOWED_PATHS=/workspace/*,/home/user/documents/*
# Block sensitive system paths
MCP_DENIED_PATHS=/etc/*,/sys/*,/proc/*,C:\Windows\*
File Size Limits
Prevent processing of excessively large files:
MCP_MAX_FILE_SIZE=52428800 # 50MB
Extension Whitelist
Only process specific file types (configured by default):
.xlsx- Excel Workbook.xls- Excel 97-2003 Workbook.xlsm- Excel Macro-Enabled Workbook.xlsb- Excel Binary Workbook
Architecture
excel-mcp/
├── src/
│ ├── index.ts # Application entry point
│ ├── types/
│ │ └── index.ts # Type definitions
│ ├── security/
│ │ └── permission-checker.ts # Access control
│ ├── services/
│ │ └── excel-service.ts # Excel operations
│ ├── tools/
│ │ ├── tool-definitions.ts # Tool schemas
│ │ └── tool-handler.ts # Tool execution
│ ├── server/
│ │ └── excel-mcp-server.ts # MCP server core
│ └── utils/
│ └── logger.ts # Logging utility
├── docs/
│ ├── ARCHITECTURE.md # Architecture details
│ ├── API.md # API reference
│ ├── SECURITY.md # Security guide
│ └── TROUBLESHOOTING.md # Common issues
└── dist/ # Compiled JavaScript
Design Principles
- Single Responsibility: Each class/module has one clear purpose
- Dependency Injection: Components are loosely coupled
- Type Safety: Full TypeScript coverage with strict mode
- Error Handling: Comprehensive error catching and reporting
- Security First: Permission checks before all operations
Development
Scripts
# Development with hot reload
npm run dev
# Build for production
npm run build
# Run tests
npm test
# Lint code
npm run lint
# Format code
npm run format
# Clean build artifacts
npm run clean
Project Structure
src/- TypeScript source filesdist/- Compiled JavaScript outputdocs/- Documentationpackage.json- Dependencies and scriptstsconfig.json- TypeScript configuration
Environment Variables
| Variable | Description | Default |
|---|---|---|
MCP_SERVER_NAME |
Server identifier | excel-mcp |
MCP_SERVER_VERSION |
Server version | 1.0.0 |
MCP_LOG_LEVEL |
Logging verbosity | info |
MCP_ALLOWED_PATHS |
Comma-separated allowed paths | All paths |
MCP_DENIED_PATHS |
Comma-separated denied paths | System paths |
MCP_MAX_FILE_SIZE |
Maximum file size in bytes | 52428800 (50MB) |
Troubleshooting
Common Issues
"Permission denied" errors
- Check your
MCP_ALLOWED_PATHSconfiguration - Ensure the file isn't in a denied path
- Verify you have the required permission level
"Workbook not opened" errors
- Call
excel_open_workbookbefore other operations - Check that the file path is correct
- Ensure the file isn't corrupted
TypeScript compilation errors
- Run
npm installto ensure all dependencies are installed - Check Node.js version (requires >= 18.0.0)
For more troubleshooting help, see docs/TROUBLESHOOTING.md.
License
MIT License - see LICENSE file for details.
Contributing
Contributions are welcome! Please read our contributing guidelines and code of conduct.
Support
- GitHub Issues: Report bugs
- Documentation: Full docs
- Tools Reference: Tools index
No comments yet
Be the first to share your take.