Excel-MCP-Server-with-Supabase-Storage

1126misakp/Excel-MCP-Server-with-Supabase-Storage

3.1

If you are the rightful owner of Excel-MCP-Server-with-Supabase-Storage and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

Excel MCP Server with Supabase Storage is a powerful server for handling Excel operations with seamless integration into Supabase Storage, eliminating the need for Microsoft Office or WPS installation.

<<<<<<< HEAD

Excel MCP Server with Supabase Storage

Python Version License: MIT MCP Compatible

A powerful MCP (Model Context Protocol) server for Excel operations with seamless Supabase Storage integration. Handle Excel files programmatically without requiring Microsoft Office or WPS installation.

🌟 Features

  • Excel Parsing: Convert Excel files to JSON with complete formatting information
  • Excel Generation: Create formatted Excel files from JSON data
  • Advanced Formatting: Modify cell styles, merge cells, adjust dimensions
  • Formula Support: Execute and calculate 20+ common Excel formulas
  • Multi-Sheet Operations: Merge multiple Excel files into a single workbook
  • Supabase Integration: Direct read/write operations with Supabase Storage
  • Zero Dependencies: No Microsoft Office or WPS required
  • Cross-Platform: Works on Windows, Linux, and macOS

🚀 Quick Start

Installation

Option 1: Install from GitHub (Recommended for now)
# Install and run directly
uvx --from git+https://github.com/1126misakp/Excel-MCP-Server-with-Supabase-Storage mcp-excel-supabase
Option 2: Install from PyPI (Coming soon)
# Once published to PyPI, you can use:
uvx mcp-excel-supabase
Option 3: Install from local source
# Clone the repository
git clone https://github.com/1126misakp/Excel-MCP-Server-with-Supabase-Storage
cd Excel-MCP-Server-with-Supabase-Storage

# Install in development mode
pip install -e .

# Run the server
mcp-excel-supabase

Configuration

  1. Create a .env file in your project directory:
cp .env.example .env
  1. Edit .env and add your Supabase credentials:
SUPABASE_URL=https://yourproject.supabase.co
SUPABASE_KEY=your-service-role-key-here

Claude Desktop Configuration

Add to your Claude Desktop configuration file:

Windows: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json

If installing from GitHub:
{
  "mcpServers": {
    "excel-supabase": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/1126misakp/Excel-MCP-Server-with-Supabase-Storage",
        "mcp-excel-supabase"
      ],
      "env": {
        "SUPABASE_URL": "https://yourproject.supabase.co",
        "SUPABASE_KEY": "your-service-role-key-here"
      }
    }
  }
}
If installing from PyPI (once published):
{
  "mcpServers": {
    "excel-supabase": {
      "command": "uvx",
      "args": ["mcp-excel-supabase"],
      "env": {
        "SUPABASE_URL": "https://yourproject.supabase.co",
        "SUPABASE_KEY": "your-service-role-key-here"
      }
    }
  }
}

Transport Modes

The server supports three transport modes via environment variables:

STDIO Mode (Default)

Best for Claude Desktop and command-line tools:

{
  "mcpServers": {
    "excel-supabase": {
      "command": "uvx",
      "args": ["mcp-excel-supabase"],
      "env": {
        "SUPABASE_URL": "https://yourproject.supabase.co",
        "SUPABASE_KEY": "your-service-role-key-here"
      }
    }
  }
}
HTTP Mode

Best for Cherry Studio and web clients:

{
  "mcpServers": {
    "excel-supabase": {
      "command": "uvx",
      "args": ["mcp-excel-supabase"],
      "env": {
        "SUPABASE_URL": "https://yourproject.supabase.co",
        "SUPABASE_KEY": "your-service-role-key-here",
        "MCP_TRANSPORT": "http",
        "MCP_HOST": "127.0.0.1",
        "MCP_PORT": "8000"
      }
    }
  }
}
SSE Mode

For legacy SSE clients:

{
  "mcpServers": {
    "excel-supabase": {
      "command": "uvx",
      "args": ["mcp-excel-supabase"],
      "env": {
        "SUPABASE_URL": "https://yourproject.supabase.co",
        "SUPABASE_KEY": "your-service-role-key-here",
        "MCP_TRANSPORT": "sse",
        "MCP_HOST": "127.0.0.1",
        "MCP_PORT": "8000"
      }
    }
  }
}

Environment Variables:

  • MCP_TRANSPORT: Transport mode (stdio | http | sse), default: stdio
  • MCP_HOST: Server host address, default: 127.0.0.1
  • MCP_PORT: Server port, default: 8000

For detailed transport configuration, see .

🛠️ Available Tools

This server provides 12 MCP tools for comprehensive Excel operations:

ToolDescription
parse_excel_to_jsonParse Excel files to JSON format
create_excel_from_jsonGenerate Excel files from JSON data
modify_cell_formatEdit cell formatting (fonts, colors, borders)
merge_cellsMerge cell ranges
unmerge_cellsUnmerge cell ranges
set_row_heightsAdjust row heights
set_column_widthsAdjust column widths
manage_storageUpload/download files to/from Supabase
set_formulaSet Excel formulas in cells
recalculate_formulasRecalculate all formulas in a workbook
manage_sheetsCreate, delete, rename, copy, move sheets
merge_excel_filesMerge multiple Excel files

See for detailed documentation.

📖 Usage Examples

Parse Excel to JSON

# Parse a local file
result = parse_excel_to_json(
    file_path="data/sales_q1.xlsx",
    extract_formats=True
)

# Access parsed data
workbook = result["workbook"]
sheets = workbook["sheets"]

Create Excel from JSON

# Create a simple Excel file
workbook_data = {
    "sheets": [{
        "name": "Sales",
        "rows": [
            {"cells": [
                {"value": "Product", "row": 1, "column": 1},
                {"value": "Revenue", "row": 1, "column": 2}
            ]},
            {"cells": [
                {"value": "Product A", "row": 2, "column": 1},
                {"value": 1000, "row": 2, "column": 2}
            ]}
        ]
    }]
}

create_excel_from_json(
    workbook_data=workbook_data,
    output_path="output/sales.xlsx",
    apply_formats=True
)

Format Cells

# Format header row
modify_cell_format(
    file_path="data/sales.xlsx",
    sheet_name="Sheet1",
    cell_range="A1:J1",
    format_spec={
        "font": {"name": "Arial", "size": 12, "bold": True, "color": "FFFFFF"},
        "fill": {"color": "4472C4"},
        "alignment": {"horizontal": "center", "vertical": "center"}
    }
)

Set Formulas

# Set a SUM formula
set_formula(
    file_path="data/sales.xlsx",
    sheet_name="Sheet1",
    cell="D10",
    formula="=SUM(D2:D9)"
)

# Recalculate all formulas
recalculate_formulas(
    file_path="data/sales.xlsx"
)

Merge Excel Files

# Merge quarterly reports
merge_excel_files(
    file_paths=["q1.xlsx", "q2.xlsx", "q3.xlsx", "q4.xlsx"],
    output_path="annual_report.xlsx",
    handle_duplicates="rename"  # or "skip" or "overwrite"
)

Supabase Storage Operations

# Upload file to Supabase
manage_storage(
    operation="upload",
    local_path="output/report.xlsx",
    remote_path="reports/2024/annual.xlsx"
)

# Download file from Supabase
manage_storage(
    operation="download",
    remote_path="reports/2024/annual.xlsx",
    local_path="downloads/annual.xlsx"
)

# List files
manage_storage(
    operation="list",
    remote_path="reports/2024/"
)

For more examples, see the .

📚 Documentation

  • - Complete API documentation for all 12 tools
  • - 6 end-to-end examples
  • - System architecture and design patterns
  • - Contributing and development workflow
  • - Common issues and solutions

🛠️ Development

Local Setup

# Clone the repository
git clone https://github.com/1126misakp/Excel-MCP-Server-with-Supabase-Storage
cd Excel-MCP-Server-with-Supabase-Storage

# Install dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Run linter
ruff check .

# Format code
black .

Project Structure

Excel-MCP-Server-with-Supabase-Storage/
├── src/mcp_excel_supabase/      # Source code
│   ├── excel/                    # Excel operations
│   ├── storage/                  # Supabase integration
│   └── utils/                    # Utilities
├── tests/                        # Test suite
├── docs/                         # Documentation
└── PRD.md                        # Product Requirements

🧪 Testing

# Run all tests
pytest

# Run with coverage
pytest --cov

# Run specific test file
pytest tests/test_parser.py

📋 Requirements

  • Python 3.9+
  • Supabase account with Storage API access
  • No Microsoft Office or WPS installation required

🤝 Contributing

Contributions are welcome! Please see for guidelines.

📄 License

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

🙋 Support

🗺️ Roadmap

Version 1.0 (Current)

  • ✅ Core Excel parsing and generation
  • ✅ Supabase Storage integration
  • ✅ Basic formatting support
  • ✅ 20+ common formulas

Version 1.1 (Planned)

  • 📋 Chart generation support
  • 📋 Conditional formatting
  • 📋 Data validation rules
  • 📋 Advanced formula functions
  • 📋 WebUI control panel

🌐 Related Projects

📊 Performance

Benchmarked on a standard development machine (Intel i5, 8GB RAM):

OperationTargetActualStatus
Parse 1MB file<2s0.598s3.3x faster
Generate 1000 rows<3s0.026s115x faster
Merge 10 files<8s0.117s68x faster
Batch 20 files<10s0.192s52x faster
Format 1000 cells<0.5s0.089s5.6x faster

Performance Optimizations:

  • ✅ LRU caching for parsed files (128 entries)
  • ✅ Thread pool concurrency (8 workers)
  • ✅ Streaming I/O for large files
  • ✅ Memory-efficient processing (5000 rows = +0.04MB)

Made with ❤️ by 1126misakp

This project is actively maintained and welcomes contributions from the community.

Excel MCP Server with Supabase Storage

Python Version License: MIT MCP Compatible

A powerful MCP (Model Context Protocol) server for Excel operations with seamless Supabase Storage integration. Handle Excel files programmatically without requiring Microsoft Office or WPS installation.

🌟 Features

  • Excel Parsing: Convert Excel files to JSON with complete formatting information
  • Excel Generation: Create formatted Excel files from JSON data
  • Advanced Formatting: Modify cell styles, merge cells, adjust dimensions
  • Formula Support: Execute and calculate 20+ common Excel formulas
  • Multi-Sheet Operations: Merge multiple Excel files into a single workbook
  • Supabase Integration: Direct read/write operations with Supabase Storage
  • Zero Dependencies: No Microsoft Office or WPS required
  • Cross-Platform: Works on Windows, Linux, and macOS

🚀 Quick Start

Installation

Option 1: Install from GitHub (Recommended for now)
# Install and run directly
uvx --from git+https://github.com/1126misakp/Excel-MCP-Server-with-Supabase-Storage mcp-excel-supabase
Option 2: Install from PyPI (Coming soon)
# Once published to PyPI, you can use:
uvx mcp-excel-supabase
Option 3: Install from local source
# Clone the repository
git clone https://github.com/1126misakp/Excel-MCP-Server-with-Supabase-Storage
cd Excel-MCP-Server-with-Supabase-Storage

# Install in development mode
pip install -e .

# Run the server
mcp-excel-supabase

Configuration

  1. Create a .env file in your project directory:
cp .env.example .env
  1. Edit .env and add your Supabase credentials:
SUPABASE_URL=https://yourproject.supabase.co
SUPABASE_KEY=your-service-role-key-here

Claude Desktop Configuration

Add to your Claude Desktop configuration file:

Windows: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json

If installing from GitHub:
{
  "mcpServers": {
    "excel-supabase": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/1126misakp/Excel-MCP-Server-with-Supabase-Storage",
        "mcp-excel-supabase"
      ],
      "env": {
        "SUPABASE_URL": "https://yourproject.supabase.co",
        "SUPABASE_KEY": "your-service-role-key-here"
      }
    }
  }
}
If installing from PyPI (once published):
{
  "mcpServers": {
    "excel-supabase": {
      "command": "uvx",
      "args": ["mcp-excel-supabase"],
      "env": {
        "SUPABASE_URL": "https://yourproject.supabase.co",
        "SUPABASE_KEY": "your-service-role-key-here"
      }
    }
  }
}

🛠️ Available Tools

This server provides 12 MCP tools for comprehensive Excel operations:

ToolDescription
parse_excel_to_jsonParse Excel files to JSON format
create_excel_from_jsonGenerate Excel files from JSON data
modify_cell_formatEdit cell formatting (fonts, colors, borders)
merge_cellsMerge cell ranges
unmerge_cellsUnmerge cell ranges
set_row_heightsAdjust row heights
set_column_widthsAdjust column widths
manage_storageUpload/download files to/from Supabase
set_formulaSet Excel formulas in cells
recalculate_formulasRecalculate all formulas in a workbook
manage_sheetsCreate, delete, rename, copy, move sheets
merge_excel_filesMerge multiple Excel files

See for detailed documentation.

📖 Usage Examples

Parse Excel to JSON

# Parse a local file
result = parse_excel_to_json(
    file_path="data/sales_q1.xlsx",
    extract_formats=True
)

# Access parsed data
workbook = result["workbook"]
sheets = workbook["sheets"]

Create Excel from JSON

# Create a simple Excel file
workbook_data = {
    "sheets": [{
        "name": "Sales",
        "rows": [
            {"cells": [
                {"value": "Product", "row": 1, "column": 1},
                {"value": "Revenue", "row": 1, "column": 2}
            ]},
            {"cells": [
                {"value": "Product A", "row": 2, "column": 1},
                {"value": 1000, "row": 2, "column": 2}
            ]}
        ]
    }]
}

create_excel_from_json(
    workbook_data=workbook_data,
    output_path="output/sales.xlsx",
    apply_formats=True
)

Format Cells

# Format header row
modify_cell_format(
    file_path="data/sales.xlsx",
    sheet_name="Sheet1",
    cell_range="A1:J1",
    format_spec={
        "font": {"name": "Arial", "size": 12, "bold": True, "color": "FFFFFF"},
        "fill": {"color": "4472C4"},
        "alignment": {"horizontal": "center", "vertical": "center"}
    }
)

Set Formulas

# Set a SUM formula
set_formula(
    file_path="data/sales.xlsx",
    sheet_name="Sheet1",
    cell="D10",
    formula="=SUM(D2:D9)"
)

# Recalculate all formulas
recalculate_formulas(
    file_path="data/sales.xlsx"
)

Merge Excel Files

# Merge quarterly reports
merge_excel_files(
    file_paths=["q1.xlsx", "q2.xlsx", "q3.xlsx", "q4.xlsx"],
    output_path="annual_report.xlsx",
    handle_duplicates="rename"  # or "skip" or "overwrite"
)

Supabase Storage Operations

# Upload file to Supabase
manage_storage(
    operation="upload",
    local_path="output/report.xlsx",
    remote_path="reports/2024/annual.xlsx"
)

# Download file from Supabase
manage_storage(
    operation="download",
    remote_path="reports/2024/annual.xlsx",
    local_path="downloads/annual.xlsx"
)

# List files
manage_storage(
    operation="list",
    remote_path="reports/2024/"
)

For more examples, see the .

📚 Documentation

  • - Complete API documentation for all 12 tools
  • - 6 end-to-end examples
  • - System architecture and design patterns
  • - Contributing and development workflow
  • - Common issues and solutions

🛠️ Development

Local Setup

# Clone the repository
git clone https://github.com/1126misakp/Excel-MCP-Server-with-Supabase-Storage
cd Excel-MCP-Server-with-Supabase-Storage

# Install dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Run linter
ruff check .

# Format code
black .

Project Structure

Excel-MCP-Server-with-Supabase-Storage/
├── src/mcp_excel_supabase/      # Source code
│   ├── excel/                    # Excel operations
│   ├── storage/                  # Supabase integration
│   └── utils/                    # Utilities
├── tests/                        # Test suite
├── docs/                         # Documentation
└── PRD.md                        # Product Requirements

🧪 Testing

# Run all tests
pytest

# Run with coverage
pytest --cov

# Run specific test file
pytest tests/test_parser.py

📋 Requirements

  • Python 3.9+
  • Supabase account with Storage API access
  • No Microsoft Office or WPS installation required

🤝 Contributing

Contributions are welcome! Please see for guidelines.

📄 License

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

🙋 Support

🗺️ Roadmap

Version 1.0 (Current)

  • ✅ Core Excel parsing and generation
  • ✅ Supabase Storage integration
  • ✅ Basic formatting support
  • ✅ 20+ common formulas

Version 1.1 (Planned)

  • 📋 Chart generation support
  • 📋 Conditional formatting
  • 📋 Data validation rules
  • 📋 Advanced formula functions
  • 📋 WebUI control panel

🌐 Related Projects

📊 Performance

Benchmarked on a standard development machine (Intel i5, 8GB RAM):

OperationTargetActualStatus
Parse 1MB file<2s0.598s3.3x faster
Generate 1000 rows<3s0.026s115x faster
Merge 10 files<8s0.117s68x faster
Batch 20 files<10s0.192s52x faster
Format 1000 cells<0.5s0.089s5.6x faster

Performance Optimizations:

  • ✅ LRU caching for parsed files (128 entries)
  • ✅ Thread pool concurrency (8 workers)
  • ✅ Streaming I/O for large files
  • ✅ Memory-efficient processing (5000 rows = +0.04MB)

Made with ❤️ by 1126misakp

This project is actively maintained and welcomes contributions from the community.

6dc69b6 (Release v1.0.0: Complete Excel MCP Server with Supabase Storage)