惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Security Latest
Security Latest
Recorded Future
Recorded Future
人人都是产品经理
人人都是产品经理
S
SegmentFault 最新的问题
Hacker News - Newest:
Hacker News - Newest: "LLM"
C
CXSECURITY Database RSS Feed - CXSecurity.com
博客园 - 三生石上(FineUI控件)
博客园 - 聂微东
P
Privacy & Cybersecurity Law Blog
WordPress大学
WordPress大学
Know Your Adversary
Know Your Adversary
Spread Privacy
Spread Privacy
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
量子位
L
LINUX DO - 热门话题
L
Lohrmann on Cybersecurity
博客园 - Franky
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tor Project blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
雷峰网
雷峰网
阮一峰的网络日志
阮一峰的网络日志
V
Visual Studio Blog
T
Threatpost
T
Tenable Blog
有赞技术团队
有赞技术团队
大猫的无限游戏
大猫的无限游戏
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
C
Cisco Blogs
H
Heimdal Security Blog
Attack and Defense Labs
Attack and Defense Labs
A
About on SuperTechFans
Last Week in AI
Last Week in AI
N
News and Events Feed by Topic
T
Threat Research - Cisco Blogs
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
I
Intezer
V
V2EX
Cyberwarzone
Cyberwarzone
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
B
Blog RSS Feed
V
Vulnerabilities – Threatpost
N
Netflix TechBlog - Medium
T
The Blog of Author Tim Ferriss
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
U
Unit 42
PCI Perspectives
PCI Perspectives
P
Privacy International News Feed
D
Docker

博客园 - 南水之源

osgImage和QImage互相转换 AI助手选哪个?Cowork vs OpenClaw深度解析:程序猿、打工人、老板们看过来 "数字管家"Claude Cowork,正在接管你的桌面 Claude Code:那只被称为"代码章鱼"的AI,正在吃掉整个编程世界 “拥有数字生命的龙虾”OpenClaw的前世今生 怎么领取使用国家超算中心小龙虾tokens 使用gdal修改shp数据 保存OE中使用的高程数据用gdal保存成tif文件[完成] blender GIS介绍 使用qt读取系统字体库,并进行英文名称映射 c++开发大模型mcp服务(六)cpp-mcp库说明 c++开发大模型mcp服务(五)编译c++版本的mcp库(cpp-mcp) c++开发大模型mcp服务(四)使用工具测试高德地图的MCP(流程验证) c++开发大模型mcp服务(三)一个常规的MCP调用例子(以高德地图MCP举例) c++开发大模型mcp服务(二)MCP 架构说明 c++开发大模型mcp服务(一)目的和概念 解除360首页锁定操作 辅助Visual Studio上C++开发的工具(插件) [书]清华大学DeepSeek:从入门到精通 [原]geoserver缓存切片类GeoServerMetaTile的解析UML
c++开发大模型mcp服务(七)使用cpp-mcp的例子MCP-ExcelAutoCpp
南水之源 · 2025-09-09 · via 博客园 - 南水之源

这里有一个使用cpp-mcp并调用本地excel文件进行操作的例子。

GitHub - smileFAace/MCP-ExcelAutoCpp: A MCP server for automatically create, view and modify Excel related file using LLM

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

项目特点

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

服务器能力

本 MCP 服务器提供以下工具,可通过 LLM 调用从而实现和 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, 可选): 输出非空单元格及其各自的坐标,适用于输出区域包含大量空单元格的情况。
  • 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 以获得更快的编译速度。

构建步骤:

  1. 准备环境:
    • 确保已安装 C++17 编译器、CMake (>= 3.15) 和 Ninja。
    • 克隆仓库: git clone https://github.com/smileFAace/MCP-ExcelAutoCpp.git
  2. 编译:
    # 进入项目目录 (如果不在项目根目录)
    # cd MCP-ExcelAutoCpp
    
    # 生成构建文件 (推荐使用 Ninja)
    cmake -G "Ninja" -S . -B build
    
    # 执行编译
    cmake --build build
    编译后的可执行文件通常位于 bin/ 目录下。

使用方法

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

启动服务器

直接运行该可执行文件即可启动 MCP 服务器。

# 示例 (请根据实际路径调整)
./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) 语言。
    ░█▀▀░█░█░█▀▀░█▀▀░█░░░█▀█░█░█░▀█▀░█▀█
    ░█▀▀░▄▀▄░█░░░█▀▀░█░░░█▀█░█░█░░█░░█░█
    ░▀▀▀░▀░▀░▀▀▀░▀▀▀░▀▀▀░▀░▀░▀▀▀░░▀░░▀▀▀
    v0.0.2                 By smileFAace
    
    I(20:27:30) i18n: Successfully loaded language string for language code 'en'
    I(20:27:30) i18n: Set current language to 'en'
    I(20:27:30) i18n: Successfully loaded language file 'F:\Prj\MCP-ExcelAutoCpp\bin\lang.json' for language code 'custom'
    I(20:27:30) i18n: Set current language to 'custom'
    I(20:27:30) Current language set to: custom
    I(20:27:30) 在 localhost:8888启动 MCP 服务器
    I(20:27:30) 按 Ctrl+C 停止服务器

======================================================================

以上是官方的中文文档

博主在下载,cmake,编译成功后,使用cursor进行本地功能测试,可以完成mcp的调用。

1.camke

6498cbbf-096e-4e03-b813-ae16536666b3

 正常 configure 和generate一遍过

2.编译

460b381d-6663-4bd4-a644-49d771f14d58

 编译ALL_BUILD一遍过

直接使用 ExcelAutoCpp运行

3.运行

f482d462-0cfc-45ae-9488-1c757ca4b6e5

316a4cff-54ae-4658-b41a-d654b55d4a7b

 4.使用cursor配置mcp服务

e527285b-dda2-46ae-b56b-8b9f1a6d9a57

 在cursor的选项中配置MCP

在json文件中添加:

    "aexcel-local-sse": {

      "url": "http://localhost:8888/sse"

    }

关闭,重启cursor

e47fd876-d64e-4fb1-91d9-9700892a4552

 成功发现mcp的服务

5.智能体调用

使用cursor的智能体模型对话生成本地xlsx

e1f58573-b352-4ba3-8a9e-d72d44a47077

296ad234-9c64-4959-8ef3-c53a9b3ee97d

image

OK,下一步是自己按照MCP-ExcelAutoCpp的用法写自己的mcp服务