Skip to main content

Excel MCP Server for manipulating Excel files using xlwings

Project description

xlwings-mcp-server

License: MIT Python xlwings

A Model Context Protocol (MCP) server that manipulates Excel files using xlwings - providing native Excel integration through COM automation.

🎯 Why xlwings Instead of openpyxl?

This MCP server is specifically designed for corporate environments where:

  • 🔒 Document security policies prevent direct file access
  • 🏢 Excel files are managed by enterprise document management systems
  • 📊 You need to work with Excel through official Microsoft APIs
  • ✅ IT compliance requires using approved COM automation

Key difference: While openpyxl directly reads/writes Excel files (which may be blocked by security policies), xlwings controls Excel through Microsoft's official COM interface - the same way VBA macros work. This means if you can run Excel macros, you can use this MCP server.

🙏 Acknowledgments

This project is based on excel-mcp-server by Haris Musa.

The original excel-mcp-server uses openpyxl for Excel manipulation. This fork has been modified to use xlwings instead, which provides:

  • Native Excel COM automation
  • Better compatibility with complex Excel features
  • Real-time Excel interaction
  • Support for Excel-specific features like native pivot tables and charts

📋 License

This project is licensed under the MIT License - see the LICENSE file for details.

The original excel-mcp-server is also MIT licensed. Copyright (c) 2025 Haris.

🚀 Features

All 25 tools from the original excel-mcp-server are fully functional:

Core Excel Operations

  • ✅ Create, open, save workbooks
  • ✅ Manage worksheets (create, copy, rename, delete)
  • ✅ Read and write data with validation
  • ✅ Apply formulas and validate syntax
  • ✅ Format cells and ranges

Advanced Features

  • ✅ Native Excel charts through COM
  • ✅ Real pivot tables (not just data summaries)
  • ✅ Excel tables (ListObjects)
  • ✅ Cell merging and unmerging
  • ✅ Row and column operations
  • ✅ Range operations (copy, delete)
  • ✅ Data validation info

📦 Installation

Prerequisites

  • Python 3.10+
  • Microsoft Excel (required for xlwings)
  • Windows (recommended) or macOS with Excel

Option 1: Install from PyPI (Recommended)

pip install xlwings-mcp-server

Option 2: Install from Source

  1. Clone the repository:
git clone https://github.com/hyunjae-labs/xlwings-mcp-server.git
cd xlwings-mcp-server
  1. Create virtual environment:
python -m venv .venv
.venv\Scripts\activate  # Windows
# or
source .venv/bin/activate  # macOS/Linux
  1. Install in development mode:
pip install -e .

🔧 Configuration

Add to your Claude Code MCP configuration:

{
  "mcpServers": {
    "xlwings-mcp-server": {
      "type": "stdio",
      "command": "C:\\path\\to\\xlwings-mcp-server\\.venv\\Scripts\\python.exe",
      "args": ["-m", "xlwings_mcp", "stdio"]
    }
  }
}

📚 Available Tools

The server provides 25 tools for Excel manipulation:

Workbook Operations (3)

  • create_workbook - Create new Excel file
  • create_worksheet - Add new worksheet
  • get_workbook_metadata - Get workbook information

Data Operations (5)

  • write_data_to_excel - Write data to cells
  • read_data_from_excel - Read cell data
  • apply_formula - Apply Excel formulas
  • validate_formula_syntax - Validate formula syntax
  • validate_excel_range - Validate cell ranges

Formatting & Visual (5)

  • format_range - Apply cell formatting
  • create_chart - Create Excel charts
  • create_pivot_table - Create pivot tables
  • create_table - Create Excel tables
  • merge_cells - Merge cell ranges

Sheet Management (6)

  • copy_worksheet - Copy worksheets
  • delete_worksheet - Delete worksheets
  • rename_worksheet - Rename worksheets
  • unmerge_cells - Unmerge cells
  • get_merged_cells - Get merged cell info
  • copy_range - Copy cell ranges

Row/Column Operations (6)

  • delete_range - Delete cell ranges
  • get_data_validation_info - Get validation rules
  • insert_rows - Insert rows
  • insert_columns - Insert columns
  • delete_sheet_rows - Delete rows
  • delete_sheet_columns - Delete columns

🔄 When to Use Which?

Use excel-mcp-server (Original) when:

  • ✅ You don't have Excel installed
  • ✅ You need cross-platform support
  • ✅ You want faster performance
  • ✅ Simple Excel operations are sufficient

Use xlwings-mcp-server (This Fork) when:

  • ✅ Corporate security blocks direct file access
  • ✅ You need to work with protected/encrypted Excel files
  • ✅ You require native Excel features (real pivot tables, complex charts)
  • ✅ Your organization mandates using official Microsoft APIs
  • ✅ You need real-time Excel integration
Feature excel-mcp-server (Original) xlwings-mcp-server (This Fork)
How it works Direct file manipulation Controls Excel application
Security Policy May be blocked Works if macros are allowed
Excel Required No Yes
Best for Personal use, servers Corporate environments

🤝 Contributing

Contributions are welcome! Please feel free to submit issues or pull requests.

📄 Citation

If you use this project, please acknowledge both:

  1. The original excel-mcp-server by Haris Musa
  2. This xlwings modification

🔗 Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xlwings_mcp_server-0.1.7.tar.gz (29.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xlwings_mcp_server-0.1.7-py3-none-any.whl (40.4 kB view details)

Uploaded Python 3

File details

Details for the file xlwings_mcp_server-0.1.7.tar.gz.

File metadata

  • Download URL: xlwings_mcp_server-0.1.7.tar.gz
  • Upload date:
  • Size: 29.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for xlwings_mcp_server-0.1.7.tar.gz
Algorithm Hash digest
SHA256 4ea1824f507e4fd610db982c266a3be2409f04cd5d21504843a04351fdfcc806
MD5 af37880856f255ec160a82c9f7d1e2af
BLAKE2b-256 cfce33893735fee5dffaa7c20d463fdf06ab37ad74705c34d30e77ba24869921

See more details on using hashes here.

File details

Details for the file xlwings_mcp_server-0.1.7-py3-none-any.whl.

File metadata

File hashes

Hashes for xlwings_mcp_server-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 92f03b7272e70f6e9942583214148dcfd7f3b986c4d60c0121eb97917c004b76
MD5 6e02e5ed65fd2e7ff5523dd8e7be8049
BLAKE2b-256 14e85f2b7d9f51bc0049505ba04a4e763f08a00eef0d781d3d5c5294165bfbb1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page