Skip to main content
Glama

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

Related MCP server: Excel MCP Server

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 → Detailed docs

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

excel_insert_rows

Insert rows at position

excel_delete_rows

Delete rows from position

excel_insert_columns

Insert columns at letter

excel_delete_columns

Delete columns from letter

excel_merge_cells

Merge a cell range

excel_unmerge_cells

Unmerge cells

excel_add_table

Add styled Excel table

excel_add_filter

Add auto-filter to range

excel_remove_filter

Remove auto-filter

Cell Operations → Detailed docs

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

excel_sort_range

Sort a range ascending/descending

excel_get_named_ranges

List defined named ranges

excel_add_named_range

Create a new named range

Formatting & Styles → 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_gradient_fill

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

→

excel_auto_fit_columns

Layout & Dimensions

→

excel_set_column_width

Layout & Dimensions

→

excel_set_row_height

Layout & Dimensions

→

excel_freeze_panes

Layout & Dimensions

→

excel_set_print_area

Layout & Dimensions

→

excel_add_header_footer

Layout & Dimensions

→

excel_add_comment

Notes & Links

→

excel_remove_comment

Notes & Links

→

excel_add_hyperlink

Notes & Links

→

excel_add_data_validation

Validation

→

excel_format_worksheet

Batch Formatting

→

excel_batch_format

Batch Formatting

→

Data Utilities & Analytics → Detailed docs

Tool

Category

Docs

excel_import_csv

CSV Transfer

→

excel_export_csv

CSV Transfer

→

excel_find_duplicates

Duplicates

→

excel_count_unique_values

Duplicates

→

excel_highlight_duplicates

Duplicates

→

excel_remove_duplicates

Duplicates

→

excel_text_to_columns

Transformations

→

excel_flash_fill

Transformations

→

excel_vlookup

Lookups

→

excel_index_match

Lookups

→

excel_create_pivot_table

Pivot Tables

→

excel_get_column_stats

Analytics

→

excel_filter_data

Analytics

→

excel_group_aggregate

Analytics

→

excel_profile_data

Analytics

→

excel_search

Search

→

excel_compare_ranges

Range Comparison

→

Visualizations & Protection → Charts | Protection

Tool

Category

Docs

excel_add_chart

Charts

→

excel_update_chart

Charts

→

excel_delete_chart

Charts

→

excel_list_charts

Charts

→

excel_add_conditional_format

Conditional Formats

→

excel_remove_conditional_format

Conditional Formats

→

excel_add_data_bar

Visual Rules

→

excel_add_color_scale

Visual Rules

→

excel_add_icon_set

Visual Rules

→

excel_protect_worksheet

Protection

→

excel_unprotect_worksheet

Protection

→

excel_protect_cells

Protection

→

Formula Engineering & Auditing → Detailed docs

Tool

Category

Docs

excel_list_formulas

Inventory

→

excel_analyze_formula

Structure Analysis

→

excel_get_dependencies

Dependencies

→

excel_trace_precedents

Precedent Tracing

→

excel_trace_dependents

Dependent Tracing

→

excel_check_circular

Cycle Detection

→

excel_explain_formula

Multi-language Explanation

→

excel_audit_formulas

Automated Audit

→

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_xirr

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_calculate_progressive_tax

Tax & Currency

→

excel_convert_currency

Tax & Currency

→

excel_calculate_depreciation

Asset Depreciation

→

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/
│   ├── AI_WORKFLOW.md          # AI agent SOP & collaboration guidelines
│   ├── 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

Tool Schema Changelog

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

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers