duduExcel
📊 duduExcel
面向 AI Agent 的 Excel MCP 服务 —— 上下文高效 + 安全读写 + 中文场景 + 公式验证。
English | 中文
其他 Excel MCP 会把"已取消"的行和"生效中"的行读成一模一样的字符串, duduExcel 保留删除线 —— 因为作者留下的格式,本身就是语义。
# 免安装直接跑(推荐,无需 pip install)
uvx duduexcel
# 或安装后运行
pip install "duduexcel[analysis]"💡
uvx duduexcel与主流 Excel MCP 体验一致:零安装、自动拉最新版。 挂载到 MCP 客户端时用uvx duduexcel作为 command 即可(见下方「挂载」)。
Agent ──MCP(stdio)──► duduExcel ──► openpyxl/pandas ──► .xlsx为什么又一个 Excel MCP?
调研 GitHub 上 10+ 个同类项目后发现,它们分裂成两个对立阵营,没人同时做到"能写"和"不炸上下文":
阵营 | 代表 | 能写 | 上下文友好 | 问题 |
读写全能型 | haris-musa、knorq | ✅ | ❌ | 整表读进上下文就爆了 |
原子分析型 | jwadow、jdatamunch | ❌ 只读 | ✅ | 改不了文件 |
方法论型 | Anthropic 官方 xlsx skill | ✅(靠写代码) | ✅ | 靠 Agent 自己写 Python,不稳定 |
duduExcel:三者合一 —— 服务端原子分析(省 token)+ 完整读写 + 内置 Skill。
Related MCP server: MCP Excel Server
✨ 能力(19 个工具)
层 | 工具 | 说明 |
探查 |
| 表清单、行列数、合并单元格数、隐藏行列数、内嵌图片数、文件大小 |
| 列画像:类型/空值率/唯一数/Top值/统计(一次替代十几次调用) | |
分析 |
| 条件计数(14 种运算符),只回传数字 |
| sum/mean/count/… 支持分组与过滤 | |
| 排行榜,只回传前 N 行 | |
读写 |
| 分页读取(默认 limit=200);含格式语义与隐藏处理 |
| 批量写入,一次调用完成; | |
验证 ⭐ |
| 公式重算 + 外链熔断(差异化,竞品多不支持) |
| 扫描 7 类公式错误 | |
中文 ⭐ |
| 微软雅黑表头、中文列宽自适应、冻结首行、细边框 |
|
| |
图表 ⭐ |
| bar/line/pie/scatter |
高级 |
| 静态透视汇总表(诚实标注不可交互) |
| 数据条/色阶/阈值高亮/区间/重复值 | |
| 读取已有条件格式(写入+读取闭环) | |
| 两表按关键列比对,只回差异摘要 | |
| 两表关联(left/right/inner/outer),只回前 N 行 | |
| 列出内嵌图片(零依赖扫描 | |
安全 |
| 回滚最近一次写入 |
⭐ = 差异化能力
🔑 汲取的设计(附来源)
设计点 | 来源 | 落地 |
一次调用替代 N 次试探 | jwadow |
|
服务端原子操作(results, not rows) | jwadow |
|
| jdatamunch | 每个分析工具的 |
结果附 Excel 公式(可复现) | jwadow |
|
TSV 输出(便于粘回 Excel) | jwadow |
|
批量接口,禁止循环调用 | knorq |
|
路径白名单 + 拒目录穿越 | haris-musa |
|
外链熔断、诚实截断、交付前验证 | 官方 |
|
格式语义、隐藏处理、内嵌图片、原子保存 | excel-vision-mcp |
|
⚡ 30 秒快速体验
pip install "duduexcel[analysis]"仓库自带演示文件 examples/demo.xlsx(内含删除线、黄底高亮、隐藏行、公式埋点)。
接上 MCP 客户端后试试:
读一下 examples/demo.xlsx 的需求清单,哪些条目已经取消了?→ 返回带格式语义的视图,看得见"已取消"和"已批准"的区别:
A3: 旧版导出 [S] | C3: 已取消 [S] ← [S] = 删除线
A4: 司机点名 | C4: 待审阅 [HL:FFFF00] ← 黄底 = 待审阅更多示例见 examples/README.md。
🚀 安装与挂载
pip install "duduexcel[analysis]" # analysis 启用 pandas 分析工具
uvx duduexcel # 免安装运行opencode(~/.config/opencode/opencode.jsonc):
"duduexcel": {
"type": "local",
"command": ["python", "-u", "-m", "duduexcel"],
"enabled": true
}Claude Desktop / Cursor / Cline:
{ "mcpServers": { "duduexcel": { "command": "uvx", "args": ["duduexcel"] } } }改完配置需重启客户端生效。
🔄 第二轮调研补齐的盲区
调研 VOYAGER-Inc/excel-vision-mcp 后发现 openpyxl 生态的普遍盲区(duduExcel 原本也有):
内嵌图片、格式语义、隐藏行列全部丢失。
修复前 [["旧版导出","已取消"], ["司机点名","待审阅"]]
修复后 A3: 旧版导出 [S] | B3: 已取消 [S] ← [S]=删除线(已取消)
A4: 司机点名 | B4: 待审阅 [HL:yellow] ← [HL:]=黄底(待审阅)已补齐:格式语义标记、隐藏内容智能处理、内嵌图片清单、原子保存、多目录沙箱。
🔒 安全
多目录沙箱:
DUDU_EXCEL_ROOT支持多个目录(Windows;、其他:),拒绝绝对路径与..穿越原子保存:写临时文件成功后再替换,失败的写入永不损坏原文件
备份与回滚:写前
.bak,异常自动还原,revert_last_write可撤销外链熔断:拒绝不可逆的重算,除非显式
force=true本地优先:stdio 传输,文件不出本机
⚠️ 已知限制(诚实清单)
不支持可交互透视表:
create_pivot生成静态汇总表(数值已验证,如华东 365 / 华南 210), 但 openpyxl 无法创建真 PivotTable(实测ws._pivots为空),故不可点击交互。条件格式只能写入不能读取—— 已更正:实测可以完整读回 (作用区域/类型/运算符/阈值/填充色/优先级,4 条规则全部读回)。 此前我照抄竞品 knorq 的 Known Limitations 却未亲自验证,这是错误的。.xlsm宏:读取保留 VBA,写入不保证单次写入上限 10 万单元格
重算已在本机打通验证(LibreOffice 26.8):实测 4 秒完成,
=SUM(销售!C2:C7)正确算出 575 并落盘。未装时明确降级,绝不静默假装成功。⚠️ 中文路径坑(已修复):LibreOffice 在中文路径下原地覆盖会失败 (
SfxBaseModel::impl_store failed: 0x4c0c)。改为输出到纯 ASCII 临时目录再移回, 因此E:\工作类\研发\这类路径也能正常重算。
🧪 测试
python tests/test_smoke.py # M1 读写与分页
python tests/test_m2.py # M2 服务端分析
python tests/test_m34.py # M3 重算降级 + M4 中文样式与图表
python tests/test_m6.py # M6 透视表/条件格式/多表关联
python tests/test_edge_cases.py # 边界回归(防 BUG 复发)
python tests/test_m7.py # M7 格式语义/隐藏/图片/原子保存
python tests/test_m8_recalc.py # M8 真实重算(无 LibreOffice 自动跳过)
python tests/test_m9_conditional.py # M9 条件格式读取9 个测试文件全部通过,另有 20 项 MCP 端到端验证(覆盖全部 19 个工具)。
🧠 踩过的坑
openpyxl
read_only=True不加载行列维度 —— 隐藏检测会静默失效,改为解析 sheet XMLmcp 2.x 丢弃
str \| None(PEP 604)标注的参数 —— 传了却不生效,改用Optional[str]图表
Reference(range_string="B2:B5")要求表名!A1:B2—— 改用range_boundaries()重复
@mcp.tool()注册同名函数 →Tool already exists且行为异常内部函数误加
@mcp.tool()(_as_bool曾成伪工具,污染列表)构造结果后漏
rules.append(item)—— 遍历正常却无结果,属静默 BUG
📚 Skill 层
skill/duduexcel/
├── SKILL.md # 工具路由 + 5 条铁律 + 公式约束
└── references/
├── style.md # 财务配色语义、数字格式码
├── formulas.md # 函数白名单、_xlfn. 前缀、7 类错误
└── charts.md # 图表做法与保真度合规:Anthropic 官方 xlsx skill 为 Proprietary(禁止衍生作品)。 本 Skill 仅借鉴其工程思想,文字与代码均独立撰写。
🗺️ 路线图
M1 核心 + 安全读写
M2 服务端分析 + token 自报
M3 公式重算 + 外链熔断
M4 中文样式 + 图表
M5 Skill 层
M6 透视表 / 条件格式 / 多表关联
M7 格式语义 / 隐藏 / 图片 / 原子保存
M8 真实重算闭环(含中文路径修复)
M9 条件格式读取
可交互透视表(受 openpyxl 限制)
License
MIT © Shine8592
Available Tools
24 toolsadd_chartA
插入图表(差异化能力:官方 xlsx skill 无图表指导,竞品 knorq 明确不支持图表)。
参数:
data_range:数据区域,如 "B2:B10"
chart_type:bar / line / pie / scatter(默认 bar)
categories_range:分类轴区域,如 "A2:A10"
title:图表标题
anchor_cell:图表左上角锚定位置(默认 E2)
Inputs: file_path (required), data_range (required), sheet, title, +3 more.
add_conditional_formatA
添加条件格式(openpyxl 原生规则,真实生效)。
cond_type 可选:
data_bar:数据条(无需 value)
color_scale:色阶(无需 value)
greater_than / less_than / equal:需要 value
between:需要 value 与 value2
duplicate:高亮重复值(无需 value)
参数:
cell_range:作用区域,如 "C2:C100"
value / value2:阈值
Inputs: cond_type (required), file_path (required), cell_range (required), sheet, +2 more.
add_data_validationA
给区域加数据验证(下拉列表 / 数值区间 / 日期区间)。
用途:表单类表格中限定某列只能选指定值(如"状态"列只能选 生效 / 作废 / 待审阅), 或限定数值范围(如金额必须 >= 0)。
参数:
file_path:工作簿路径
cell_range:目标区域,如 "D2:D100"
dv_type:list / whole / decimal / date / time / textLength / custom
formula1:
list:'"选项1,选项2,选项3)' —— 注意外层单引号内必须带双引号
whole / decimal:如 ">=0" 或 "1"(区间则配合 formula2)
formula2:区间上界,如 "<=100"
allow_blank:是否允许空值
返回:写入的规则信息(真实 OOXML 数据验证,Excel 中生效)。
Inputs: file_path (required), cell_range (required), sheet, dv_type, +3 more.
aggregateA
服务端聚合:sum / mean / median / min / max / count / std / var / nunique。
关键:聚合在服务端算好,只回传"每组一个数字"。 不要让模型自己遍历数据求和 —— 大数相加模型极易算错。
参数:
column:要聚合的列
op:聚合运算(默认 sum)
group_by:分组列(可多列),给出透视表式结果
filters:过滤条件(格式同 filter_count)
top_n:分组结果只返回前 N 组(按聚合值降序)
返回:聚合值或分组表,附 tsv(可直接粘回 Excel)与等价 Excel 公式。
Inputs: column (required), file_path (required), op, sheet, +3 more.
apply_chinese_styleA
套用中文场景样式:中文字体表头、自动列宽(中文按 2 字符宽)、冻结首行、细边框。
为什么需要它:通用规范常推荐 Arial/Times New Roman,但对中文表格并不适用。 本工具默认使用微软雅黑(屏幕阅读友好),并让中文列宽自适应(中文按 2 字符宽计算)。
参数:
header_row:表头行号(默认 1)
auto_width:是否自适应列宽(默认 True)
freeze_header:是否冻结表头(默认 True)
font_name:自定义字体,省略用微软雅黑
Inputs: file_path (required), sheet, font_name, auto_width, +2 more.
compare_sheetsA
按关键列比对两个工作表的差异 —— 只回传差异摘要,不回传整表。
用途:版本对比、变更检测、对账。
返回:仅在表1 / 仅在表2 / 值有差异 三类统计, 以及最多 max_diff 条差异明细(超出会明确说明截断数量,以统计值为准)。
Inputs: sheet1 (required), sheet2 (required), file_path (required), key_column (required), +2 more.
create_interactive_pivotA
Create an INTERACTIVE PivotTable (a real Excel PivotTable object).
Difference from create_pivot (static summary):
create_pivot: writes aggregated numbers into cells - fast but staticcreate_interactive_pivot: injects real OOXML pivot parts, so in Excel you can drag fields, expand/collapse and refresh (structure validated with LibreOffice)
Args:
rows / columns / values: row / column (cross-tab) / value fields
agg_func: sum / count / average / min / max (default sum)
page_fields: report filter fields
filters: row filters (same format as filter_count)
target_sheet: target worksheet (created if missing)
location: top-left anchor (default A3)
LIMITATIONS:
Saving this file again with openpyxl (incl. this server's write_cells) will DROP the PivotTable - openpyxl cannot write pivot parts back. Generate it LAST.
Not supported: field grouping, calculated fields/items, slicers, timelines, multiple sources, data model.
LibreOffice recognizes it but interacts more weakly than Excel.
Inputs: rows (required), values (required), file_path (required), columns, +6 more.
create_pivotA
生成透视汇总表(写入新工作表)。
⚠️ 诚实说明:openpyxl 无法创建真正可交互的 PivotTable 对象, 本工具生成的是静态汇总表(分组聚合后写回),数值等价但不可交互。 需要可交互透视表时,请在 Excel 中基于结果表插入。
参数:
rows:行分组字段(可多列),如 ["部门"]
values:要聚合的数值列,如 ["销售额"]
agg_func:sum/mean/count/min/max(默认 sum)
columns:列分组字段(可选,做交叉表)
filters:过滤条件(格式同 filter_count)
target_sheet:结果表名(默认"透视表")
Inputs: rows (required), values (required), file_path (required), columns, +4 more.
filter_countA
按条件统计行数 —— 只返回计数,不返回数据行。
用途:回答"有多少条满足 X"这类问题。计数在服务端完成, 绝不会把成千上万行搬进上下文。
参数:
filters:条件列表,每项 {"column": "部门", "op": "==", "value": "研发"} 支持运算符:== != > < >= <= in not_in contains startswith endswith is_null not_null
sample:附带返回的样例行数(默认 3,仅用于确认过滤是否符合预期)
返回:matched_rows、matched_pct、少量样例,以及等价的 Excel COUNTIFS 公式 (可粘回表格动态更新)。
Inputs: file_path (required), sheet, sample, filters.
find_replaceA
在工作表中查找并替换文本(批量修正数据)。
参数:
file_path:工作簿路径
find:要查找的文本
replace:替换为(传空串表示删除匹配到的文本)
cell_range:限定区域如 "A1:D100";省略则整表
match_case:是否区分大小写(默认否)
返回:替换的单元格数量与明细(受数量上限保护)。
Inputs: find (required), file_path (required), sheet, replace, +2 more.
format_scanA
【本服务独有】扫描工作表的格式语义,支持按语义筛选与统计。
为什么需要它:主流 Excel MCP 把「删除线 / 高亮 / 字体色」当作样式, 读出来是一模一样的字符串 —— 它们看不出作者标了"这一行作废了"。 duduExcel 把格式当作语义,本工具进一步让它可统计、可查询。
典型用途:
「这张表有多少行被标记作废了?」→ semantic="S"
「哪些格子是重点高亮的?」→ semantic="HL"
「先看看这张表用了哪些语义标记」→ 不传 semantic,只看统计
参数:
file_path:工作簿路径
sheet:表名(省略则用活动表)
semantic:按语义筛选,可选 S(删除线/作废) / B(粗体) / I(斜体) / HL(底色高亮) / C(字体色) / M(合并单元格)
max_cells:最多返回多少个命中单元格(超出会说明截断数量,以统计值为准)
返回:semantic_counts(各类语义的数量)、hits(命中明细,含坐标与值)、 以及每种语义的业务含义提示(hint)。
Inputs: file_path (required), sheet, semantic, max_cells.
join_sheetsA
关联两个工作表(类似 SQL JOIN),只回传前 limit 行结果。
参数:
on:关联键列名(两表都要有)
how:left / right / inner / outer(默认 left)
columns:只返回这些列(省 token),省略返回全部
limit:返回行数上限(默认 20)
Inputs: on (required), file_path (required), left_sheet (required), right_sheet (required), +3 more.
list_conditional_formatsA
读取工作表中已有的条件格式规则(写入 + 读取闭环)。
用途:接手一张别人的表时,先看清它埋了哪些自动规则(哪些格子会变色/变红), 避免修改时破坏既有规则。
返回:规则条数与明细(作用区域 / 类型 / 运算符 / 阈值公式 / 填充色 / 优先级), 按优先级排序。
Inputs: file_path (required), sheet.
list_imagesA
列出工作簿内的嵌图片(零依赖,直接扫描 xl/media/)。
为什么需要它:多数 Excel MCP 会静默丢弃所有内嵌图片, 于是贴在单元格里的流程图/截图永远到不了模型眼前。
返回:图片数量、文件名、大小、尺寸(PNG/JPEG/GIF/BMP 可从文件头解析)。 注意:只返回清单而非图片本体,避免 base64 撑爆上下文; 若需模型"看到"图片内容,请解压后交给多模态模型读取。
Inputs: file_path (required).
read_rangeA
读取工作表数据,支持分页、截断、格式语义与隐藏内容处理。
重要:不要试图一次读完大表。默认 limit=200 行, 超出的部分通过增大 offset 分批获取(truncated 会告诉你是否还有剩余)。
参数:
sheet:工作表名,省略则用活动表
cell_range:Excel 区域,如 "A1:D50";省略则读整表(仍受 limit 约束)
offset / limit:分页,从第 offset 行开始取 limit 行
include_format:是否附加格式语义标记(默认 True)
include_hidden:是否读取隐藏行列(默认 False)
格式语义标记(汲取自 excel-vision-mcp —— 作者留下的格式是有含义的):
[B] 粗体 / [I] 斜体 / [S] 删除线(常表示"已取消/作废")
[HL:色] 底色高亮(常表示"待审阅/重点") / [C:色] 字体色
[M] 合并单元格 / [HIDDEN-REF] 已隐藏但因被公式引用而保留 注意:只在单元格真的用了格式时才附加,朴素表格不产生任何额外 token。
隐藏内容:默认跳过(作者隐藏通常表示不属于审阅内容), 但被可见公式引用的隐藏单元格仍保留并标记 [HIDDEN-REF], 且始终报告跳过了多少,绝不静默丢弃。
返回:grid(二维值)、cells(坐标→值)、formulas、format_markers。
Inputs: file_path (required), limit, sheet, offset, +3 more.
recalculateA
重算公式并扫描错误 —— 交付前必做的验证步骤(差异化能力,多数同类项目不支持)。
为什么需要它:openpyxl 写入的公式不带计算结果, 直接用 read_range 读会返回 None。重算能填上缓存值并暴露公式错误。
安全护栏(汲取官方 xlsx skill 的 recalc 思想):
外链熔断:若工作簿引用了外部文件且缓存值已丢失, 重算会把它们变成 #NAME? 并永久删除外链(不可逆)。 此时本工具默认拒绝执行并列出风险项,确认接受损失才传 force=true。
静默失败防护:比对文件指纹,若 LibreOffice 正常退出却没重写文件会明确报错。
参数:
timeout:超时秒数(默认 60,大工作簿请加大)
force:忽略外链风险强制执行(默认 False)
返回:total_errors、errors_by_type(含位置)、以及"重算通过≠结果正确"的提醒。 环境未装 LibreOffice 时会明确告知,不会静默假装成功。
Inputs: file_path (required), force, timeout.
remove_duplicatesA
按指定列删除重复行(保留首次出现的行)—— 只回统计,不回数据行。
用途:数据清洗。例如按"订单号"去重,只保留第一次出现的记录。
参数:
file_path:工作簿路径
columns:按哪些列判重(列名或列字母如 "A");省略则按整行判重
sheet:表名(省略则用活动表)
返回:删除行数、剩余行数(物理删除,保留首次出现)。
Inputs: file_path (required), sheet, columns.
revert_last_writeA
回滚最近一次由本服务执行的写入(用 .bak 恢复)。
当 write_cells 的结果不符合预期时调用它撤销。 只保留最近一次备份,连续写入时回滚的是最后一次。
Inputs: file_path (required).
scan_formula_errorsA
只扫描公式错误(#VALUE! / #DIV/0! / #REF! / #NAME? / #NULL! / #NUM! / #N/A),不重算。
用途:快速体检现有文件是否有坏公式。 返回 total_errors 与按类型分组的位置明细;位置列表超过 100 条时会 明确说明被截断数量(请以 total_errors 为准,不要以列表长度判断严重程度)。
Inputs: file_path (required).
set_number_formatB
设置数字格式。
number_format 可传内置名或自定义格式码:
cny → ¥#,##0(人民币整数)
cny2 → ¥#,##0.00
cny_dash → ¥#,##0;(¥#,##0);-(零显示为短横)
percent → 0.0%(注意:值必须存小数,存 0.15 显示 15.0%)
multiple → 0.0x(估值倍数)
int → #,##0;date → yyyy-mm-dd
Inputs: file_path (required), cell_range (required), number_format (required), sheet.
sheet_profileA
查看工作表的列级画像:类型、空值率、唯一数、Top 值、数值统计。
这是开始分析任何表格前最该先调用的工具 —— 一次调用即可摸清全表 (列类型、哪些列有空值、数值范围、类别分布), 省掉反复试探的十几次调用,且不会把任何数据行塞进上下文。
参数:
sheet:工作表名,省略则用活动表(首行作为表头)
返回:每列的 profile(dtype/null_pct/unique/top_values/stats), 以及 _meta.tokens_saved(本次相比"读全表"节省了多少 token)。
Inputs: file_path (required), sheet.
top_nA
取排序后的前 N 行(默认降序),只回传这 N 行。
用途:排行榜类问题("销售额前 10 的产品")。 排序在服务端完成,只把 TopN 行回传,而不是把全表交给模型排序。
参数:
sort_by:排序列
n:返回行数(默认 10)
ascending:True 为升序(取最小的),默认 False 降序
columns:只返回这些列(省 token),省略返回全部列
filters:过滤条件(格式同 filter_count)
返回:带 rank 的行列表、tsv、以及等价的 Excel RANK 公式。
Inputs: sort_by (required), file_path (required), n, sheet, +3 more.
workbook_infoA
查看 Excel 工作簿结构:工作表清单、每张表的行列数、合并单元格数、隐藏行列数、内嵌图片数与文件大小。
用途:开始处理任何 Excel 文件前先调用这个,用一次调用摸清结构, 避免为了知道有哪些表就把整张表读进上下文。
返回:文件路径、大小、活动表名、每个工作表的 name/rows/columns/merged_cells/hidden_rows/hidden_columns。
Inputs: file_path (required).
write_cellsA
批量写入多个单元格 —— 一次调用完成,不要用单格写入循环调用。
这是批量接口:请在一次调用里传入所有要写的单元格, 服务只做一次文件读写周期。逐格循环调用会慢很多且反复触发备份。
参数:
cells:列表,每项 {"cell": "B2", "value": "内容"}; value 以 "=" 开头会被当作公式写入(如 "=SUM(B3:B9)")
sheet:工作表名,省略则写活动表
create_sheet_if_missing:工作表不存在时是否新建(默认 False,避免误建表)
安全:写入前自动生成 .bak 备份 + 原子保存,可用 revert_last_write 回滚。 限制:单次最多 10 万个单元格。
Inputs: cells (required), file_path (required), sheet, create_sheet_if_missing.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 24 tools
Most tools have a clearly distinct purpose, and the descriptions proactively differentiate the tricky pairs (create_pivot vs create_interactive_pivot, recalculate vs scan_formula_errors). The only mild overlap is format_scan versus read_range's include_format markers and aggregate versus create_pivot, but descriptions resolve these.
All names are snake_case, which is consistent, but the verb_noun pattern is not uniform: many are verb-led (create_interactive_pivot, add_chart, write_cells) while others are noun- or topic-led (workbook_info, sheet_profile, format_scan, top_n, aggregate). Readable and predictable enough overall.
24 tools is on the heavy side of the 16-25 'borderline' band for a single Excel server. Most tools earn their place, but a few (format_scan vs read_range markers, aggregate vs create_pivot) add surface that could be consolidated.
Coverage is broad: read/write, formatting, charts, both pivot modes, conditional formats, data validation, dedup, find/replace, joins, comparison, aggregation, formula recalc/error scanning, images, and revert. Still missing sheet lifecycle operations (create/rename/delete sheet), row/column deletion, and cell/range clearing, which agents must work around.
Maintenance
Related MCP Connectors
Let AI agents read, check and edit Excel models. Open a workbook or drop in one MCP config. Either way: typed cells, a formula dependency graph, and a verification certificate. Deterministic — no OCR, no model guessing at your numbers.
Your team's custom tools and skills in every agent, through one MCP connection.
Search & install 13,000+ AI agent skills from skills-hub.ai inside any MCP tool.
GodPrompt MCP + Agent Skill for coding agents with TDD, debugging, verification, and task routing.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to create, read, and manipulate Excel files without requiring Microsoft Excel installation. Supports comprehensive spreadsheet operations including formulas, formatting, charts, pivot tables, and data validation.MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI agents to automate Excel file operations including workbook creation, worksheet management, and data manipulation. It provides a standardized interface for reading, writing, merging, and filtering cell ranges within Excel documents.4-
- AlicenseNot gradedqualityDmaintenanceMCP server that turns Excel files into queryable databases, enabling AI agents to filter, aggregate, group, sort data and export results as new Excel files.2MIT
- FlicenseNot gradedqualityCmaintenanceExposes Excel operations (open/close files, read/write cells, create sheets, apply formulas, and run existing VBA macros by name) to AI agents like Claude Desktop or Claude Code via MCP.-