C++ Excel Automation MCP Server

by smileFAace

79 stars
488 downloads
Not rated
GitHub

About

A MCP server for automatically create, view and modify Excel related file using LLM

Details

Author
smileFAace
GitHub stars
79
Downloads
488
Categories
Productivity, Other, Automation

- Provides standardized MCP tools for Excel automation
- Compiles into a single executable for easy deployment
- Supports customizable multi-language via JSON files
- Offers tools to open, read, write, and create xlsx files
- Automatically opens and closes Excel files during operations

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name C++ Excel Automation MCP Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Build the project using CMake and Ninja with a C++17 compiler, then run the ExcelAutoCpp executable in the bin/ directory. The server listens on localhost:8888 and provides an SSE endpoint at http://localhost:8888/sse. Connect using any MCP-compatible client such as Roo, Cline, Claude, or Cherry Studio.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "c++ excel automation mcp server": {
            "excel-auto-cpp": {
                "type": "http",
                "url": "http://localhost:8888/sse"
            }
        }
    }
}

McpServers

{
    "excel-auto-cpp": {
        "type": "http",
        "url": "http://localhost:8888/sse"
    }
}

C++ Excel Automation MCP Server

This is a C++ based Excel Automation MCP (Model Context Protocol) server project. It utilizes the OpenXLSX library for Excel file operations and aims to provide an intelligent set of Excel manipulation tools through the MCP protocol, leveraging LLM capabilities.

Table of Contents

Features
Building the Project
Usage

Features

Simple and Easy-to-Use MCP Interface: Provides standardized MCP tools, making it convenient for clients (like AI assistants) to invoke Excel automation functions.
Single-File Deployment: Compiles into a single executable file for easy deployment and execution.
Customizable Multi-language Support: Easily add or modify interface languages via JSON files.

Server Capabilities

This MCP server provides the following tools, which can be invoked by an LLM to interact with xlsx spreadsheet files:

open_excel_and_list_sheets:
Description: Open an Excel file and list all sheet names. This tool will also set the current Excel file path for subsequent operations. RECOMMENDED TO RUN THIS TOOL FIRST BEFORE ANY OPERATION OR IF WANT TO CHANGE THE FILE TO MODIFY.
Parameters:
file_path (string): The absolute path to the Excel file.
get_sheet_range_content:
Description: Get and output table content within a specified range in a specific sheet. Automatically opens and closes the Excel file.
Parameters:
sheet_name (string): The name of the sheet to read from.
first_row (number): The starting row number (1-indexed).
first_column (number): The starting column number (1-indexed).
last_row (number): The ending row number (1-indexed).
last_column (number): The ending column number (1-indexed).
cell_with_coord (boolean, optional): Output non-empty cells with their respective coordinates, suitable for situations where the output area contains a large number of empty cells.
set_sheet_range_content:
Description: Set table content within a specified range in a specific sheet. Automatically opens and closes the Excel file.
Parameters:
sheet_name (string): The name of the sheet to write to.
first_row (number): The starting row number (1-indexed).
first_column (number): The starting column number (1-indexed).
values (array[array]): The 2D array of values to write to the range (supports null, boolean, number, string types).
create_xlsx_file_by_absolute_path: (Note: The tool name is defined as this in the code, but the key in JSON is create_xlsx)
Description: Create a new xlsx file with the given path. Automatically closes the Excel file after creation.
Parameters:
file_path (string): The ABSOLUTE path where the file should be created.

(Note: The automatic open/close behavior mentioned in the tool descriptions is an internal implementation detail and does not require user attention.)

Building the Project

This project uses CMake for building. Installing Ninja is recommended for faster compilation speeds.

Build Steps:

1. Prepare Environment:
Ensure you have a C++17 compiler, CMake (>= 3.15), and Ninja installed.
Clone the repository: git clone https://github.com/smileFAace/MCP-ExcelAutoCpp.git
2. Compile:

    # Change to the project directory (if not already in the root)
# cd MCP-ExcelAutoCpp

# Generate build files (Ninja recommended)
cmake -G "Ninja" -S . -B build

# Perform compilation
cmake --build build


The compiled executable is typically located in the bin/ directory.

Usage

After successful compilation, find the executable named ExcelAutoCpp (Linux/macOS) or ExcelAutoCpp.exe (Windows) in the ./bin/ directory.

Start the Server

Simply run the executable to start the MCP server.

```bash

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.