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:

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

  1. Single Responsibility: Each class/module has one clear purpose
  2. Dependency Injection: Components are loosely coupled
  3. Type Safety: Full TypeScript coverage with strict mode
  4. Error Handling: Comprehensive error catching and reporting
  5. 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 files
  • dist/ - Compiled JavaScript output
  • docs/ - Documentation
  • package.json - Dependencies and scripts
  • tsconfig.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_PATHS configuration
  • Ensure the file isn't in a denied path
  • Verify you have the required permission level

"Workbook not opened" errors

  • Call excel_open_workbook before other operations
  • Check that the file path is correct
  • Ensure the file isn't corrupted

TypeScript compilation errors

  • Run npm install to 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