关于 C++ Excel Automation MCP Server
C++ Excel 自动化 MCP 服务基于 OpenXLSX 库,让 LLM 通过 MCP 协议创建、读取和修改 xlsx 文件。项目编译为单个可执行文件,适合希望本地部署表格处理工具的开发者。
主要功能
- 01读取与写入指定范围的表格内容
- 02列出工作表并设置当前文件
- 03创建新的 xlsx 文件
- 04单文件可执行程序部署
- 05通过 JSON 文件自定义界面语言
适用场景
- 01让 AI 助手读取并汇总 Excel 表格数据
- 02通过 LLM 批量写入或更新表格内容
- 03在本地自动生成新的 xlsx 文件
MCP 相关
该项目是 MCP 服务,以 SSE 端点(默认 localhost:8888/sse)向 Cline、Roo 等 MCP 客户端提供 Excel 操作工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
http://localhost:8888/sseclaude mcp add --transport http MCP-ExcelAutoCpp http://localhost:8888/sse{"mcpServers":{"MCP-ExcelAutoCpp":{"type":"http","url":"http://localhost:8888/sse"}}}在 Cursor 中打开{"servers":{"MCP-ExcelAutoCpp":{"type":"http","url":"http://localhost:8888/sse"}}}在 VS Code 中打开{"mcpServers":{"MCP-ExcelAutoCpp":{"type":"http","url":"http://localhost:8888/sse"}}}{"mcpServers":{"MCP-ExcelAutoCpp":{"serverUrl":"http://localhost:8888/sse"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
C++ Excel 自动化 MCP 服务
这是一个基于 C++ 的 Excel 自动化 MCP(Model Context Protocol)服务项目。项目使用 OpenXLSX 库操作 Excel 文件,旨在利用大模型的能力,通过 MCP 协议提供一组智能的 Excel 操作工具。
目录
功能
- 简单易用的 MCP 接口:提供标准化的 MCP 工具,方便客户端(如 AI 助手)调用 Excel 自动化功能。
- 单文件部署:编译为单个可执行文件,便于部署和运行。
- 可自定义的多语言支持:可通过 JSON 文件轻松添加或修改界面语言。
服务功能
此 MCP 服务提供以下工具,可由大模型调用以与 xlsx 电子表格文件交互:
open_excel_and_list_sheets:- 描述:打开 Excel 文件并列出所有工作表名称。此工具还会设置当前 Excel 文件路径,以供后续操作使用。建议在任何操作之前,或需要更改要修改的文件时,首先运行此工具。
- 参数:
file_path(string):Excel 文件的绝对路径。
get_sheet_range_content:- 描述:获取并输出特定工作表中指定范围内的表格内容。自动打开和关闭 Excel 文件。
- 参数:
sheet_name(string):要读取的工作表名称。first_row(number):起始行号(从 1 开始计数)。first_column(number):起始列号(从 1 开始计数)。last_row(number):结束行号(从 1 开始计数)。last_column(number):结束列号(从 1 开始计数)。cell_with_coord(boolean,optional):输出非空单元格及其对应坐标,适用于输出区域内包含大量空单元格的情况。
set_sheet_range_content:- 描述:设置特定工作表中指定范围内的表格内容。自动打开和关闭 Excel 文件。
- 参数:
sheet_name(string):要写入的工作表名称。first_row(number):起始行号(从 1 开始计数)。first_column(number):起始列号(从 1 开始计数)。values(array[array]):要写入该范围的二维值数组(支持 null、boolean、number、string 类型)。
create_xlsx_file_by_absolute_path:(注意:代码中定义的工具名称为此名称,但 JSON 中的键为create_xlsx)- 描述:在给定路径下创建新的 xlsx 文件。创建后自动关闭 Excel 文件。
- 参数:
file_path(string):要创建文件的绝对路径。
(注意:工具描述中提到的自动打开/关闭行为属于内部实现细节,用户无需关注。)
构建项目
本项目使用 CMake 构建。建议安装 Ninja,以加快编译速度。
构建步骤:
- 准备环境:
- 确保已安装 C++17 编译器、CMake(>= 3.15)和 Ninja。
- 克隆代码库:
git clone https://github.com/smileFAace/MCP-ExcelAutoCpp.git
- 编译:
编译后的可执行文件通常位于# 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 buildbin/目录中。
用法
成功编译后,在 ./bin/ 目录中找到名为 ExcelAutoCpp(Linux/macOS)或 ExcelAutoCpp.exe(Windows)的可执行文件。
启动服务
运行该可执行文件即可启动 MCP 服务。
# Example (adjust path as needed)
./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)。你可以创建自定义语言文件来更改语言:
-
找到包含服务可执行文件的目录(通常为
bin/)。 -
在该目录中创建名为
lang.json的文本文件。 -
将所需语言的完整键值对复制到此
lang.json文件中。- 你可以参考项目源代码
lang/目录中的*.json文件作为模板(例如,lang/zh-cn/lang.json包含中文翻译)。 lang.json文件需要包含程序界面和日志所需的所有翻译条目。
- 你可以参考项目源代码
-
保存
lang.json文件并重启服务。- 服务启动时会自动检测并加载此文件。加载成功后,将使用
lang.json中定义的语言。 - 如果
lang.json文件不存在、格式不正确或缺少必要的翻译条目,服务将回退到默认的英语(en)。
- 服务启动时会自动检测并加载此文件。加载成功后,将使用
下载
你可以从 Releases 页面下载最新版本。
🌟Star 历史
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。