Back to MCP directory
publicPublicdnsLocal runtime

mcp-excelautocpp

一个基于C++的Excel自动化MCP服务器项目,通过OpenXLSX库提供Excel文件操作功能,支持MCP协议与AI助手交互实现智能表格处理。

article

README

🚀 C++ Excel自动化MCP服务器

这是一个基于C++的Excel自动化MCP(模型上下文协议)服务器项目。它利用OpenXLSX库进行Excel文件操作,并旨在通过MCP协议,借助大语言模型(LLM)的能力,提供一套智能的Excel操作工具。

🚀 快速开始

本项目使用CMake进行构建,推荐安装Ninja以实现更快的编译速度。

准备环境

  • 确保你已安装C++17编译器、CMake(版本 >= 3.15)和Ninja。
  • 克隆仓库:git clone https://github.com/smileFAace/MCP-ExcelAutoCpp.git

编译

# 切换到项目目录(如果当前不在根目录)
# cd MCP-ExcelAutoCpp

# 生成构建文件(推荐使用Ninja)
cmake -G "Ninja" -S . -B build

# 执行编译
cmake --build build

编译后的可执行文件通常位于bin/目录中。

启动服务器

编译成功后,在./bin/目录中找到名为ExcelAutoCpp(Linux/macOS)或ExcelAutoCpp.exe(Windows)的可执行文件。

# 示例(根据需要调整路径)
./bin/ExcelAutoCpp

当你看到类似以下的输出时,服务器已成功启动并正在监听localhost:8888

░█▀▀░█░█░█▀▀░█▀▀░█░░░█▀█░█░█░▀█▀░█▀█
░█▀▀░▄▀▄░█░░░█▀▀░█░░░█▀█░█░█░░█░░█░█
░▀▀▀░▀░▀░▀▀▀░▀▀▀░▀▀▀░▀░▀░▀▀▀░░▀░░▀▀▀
v0.0.2                 By smileFAace

I(17:35:48) i18n: Successfully loaded language string for language code 'en'
I(17:35:48) i18n: Set current language to 'en'
W(17:35:48) lang.json not found at 'E:\prj\MCP-ExcelAutoCpp\bin\lang.json'. Using default language.
I(17:35:48) i18n: Set current language to 'en'
I(17:35:48) Current language set to: en
I(17:35:48) Starting MCP server at localhost:8888
I(17:35:48) Press Ctrl+C to stop the server

连接和使用

本服务器遵循MCP协议。你可以使用任何兼容MCP的客户端(如Roo、cline、claude、cherry studio等)连接到服务器的SSE端点(默认:http://localhost:8888/sse),以调用提供的Excel自动化工具。

例如,要在cline中配置此MCP服务器,只需在服务器成功运行后,将以下内容添加到插件提供的mcp配置JSON文件中,然后刷新:

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

更改和自定义服务器语言

服务器的界面语言默认使用英语(en)。你可以通过创建自定义语言文件来更改语言:

  1. 找到包含服务器可执行文件的目录(通常是bin/)。
  2. 在该目录中创建一个名为lang.json的文本文件。
  3. 将你所需语言的完整键值对复制到这个lang.json文件中。
    • 你可以参考项目源代码lang/目录中的*.json文件作为模板(例如,lang/zh-cn/lang.json包含了中文翻译)。
    • lang.json文件需要包含程序界面和日志所需的所有翻译条目。
  4. 保存lang.json文件并重启服务器。
    • 服务器将在启动时自动检测并加载此文件。如果加载成功,它将使用lang.json中定义的语言。
    • 如果lang.json文件不存在、格式不正确或缺少必要的翻译条目,服务器将回退到默认的英语(en)语言。

✨ 主要特性

  • 简单易用的MCP接口:提供标准化的MCP工具,方便客户端(如AI助手)调用Excel自动化功能。
  • 单文件部署:编译成单个可执行文件,便于部署和执行。
  • 可定制的多语言支持:通过JSON文件轻松添加或修改界面语言。

🔧 技术细节

服务器功能

此MCP服务器提供以下工具,可由LLM调用以与xlsx电子表格文件进行交互:

open_excel_and_list_sheets

  • 描述:打开一个Excel文件并列出所有表名。此工具还将设置当前Excel文件路径,以供后续操作使用。建议在进行任何操作之前或想要更改要修改的文件时,先运行此工具。
  • 参数
    • file_path(字符串):Excel文件的绝对路径。

get_sheet_range_content

  • 描述:获取并输出特定工作表中指定范围内的表格内容。自动打开和关闭Excel文件。
  • 参数
    • sheet_name(字符串):要读取的工作表名称。
    • first_row(数字):起始行号(从1开始索引)。
    • first_column(数字):起始列号(从1开始索引)。
    • last_row(数字):结束行号(从1开始索引)。
    • last_column(数字):结束列号(从1开始索引)。
    • cell_with_coord(布尔值,可选):输出非空单元格及其各自的坐标,适用于输出区域包含大量空单元格的情况。

set_sheet_range_content

  • 描述:设置特定工作表中指定范围内的表格内容。自动打开和关闭Excel文件。
  • 参数
    • sheet_name(字符串):要写入的工作表名称。
    • first_row(数字):起始行号(从1开始索引)。
    • first_column(数字):起始列号(从1开始索引)。
    • values(二维数组):要写入该范围的值的二维数组(支持null、布尔值、数字、字符串类型)。

create_xlsx_file_by_absolute_path

  • 注意:此工具在代码中定义的名称为create_xlsx_file_by_absolute_path,但JSON中的键为create_xlsx
  • 描述:使用给定的路径创建一个新的xlsx文件。创建完成后自动关闭Excel文件。
  • 参数
    • file_path(字符串):文件应创建的绝对路径。

(注意:工具描述中提到的自动打开/关闭行为是内部实现细节,不需要用户关注。)

📦 下载

你可以从发布页面下载最新版本。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client