
OpenPyXL MCP Server
一个对 OpenPyXl Python 库的轻量级封装,它将 Excel 文件操作作为模型上下文协议 (MCP) 服务器公开,允许 Claude 和其他 MCP 客户端从 Excel 文件中获取和分析数据。
README
openpyxl_mcp_server
这是什么?
这是对 OpenPyXl Python 库的一个轻量级封装,它将该库的一些功能作为模型上下文协议 (MCP) 服务器公开。这允许 Claude 和其他 MCP 客户端从 Excel 文件中获取数据。
相关链接:
- https://openpyxl.readthedocs.io/en/stable/index.html
- https://modelcontextprotocol.io/quickstart/server
安装
常规步骤
- 从 https://github.com/jonemo/openpyxl-mcp-server/releases 下载最新版本的可执行文件。
openpyxl_mcp_server
适用于 MacOS,openpyxl_mcp_server.exe
适用于 Windows。 - 配置您的 MCP 客户端。最常见的是 Claude Desktop,请参阅下一节中的说明。
Windows 会试图阻止您运行从互联网上下载的随机可执行文件。 您需要在多个地方单击“保留”或“仍然保留”,以说服它不要删除该文件。 这取决于您使用的浏览器以及您的 Windows Defender 设置。
或者,如果您不信任我的可执行文件,您也可以直接从本仓库安装源代码版本。请参阅下面的“从源代码”部分。
配置 Claude Desktop
请注意,这仅适用于 Claude Desktop 应用程序,而不适用于在 Web 浏览器中运行的 Claude。
- 确保已安装 Claude Desktop。
- 确保已下载 MCP 服务器可执行文件(请参阅上一节)。 这里假设您已将可执行文件下载到您的 Downloads 文件夹。 您可以使用任何其他文件夹,并相应地调整下面配置中的路径。
- 在 Claude Desktop 中,打开“Settings...”菜单:
- 导航到设置的“Developer”部分。
- 单击“Edit Config”。如果您还没有 MCP 服务器的配置文件,这将创建一个配置文件。
此文件的默认位置是:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
- 在 MacOS 上,将以下内容添加到您的
claude_desktop_config.json
。 将<YOUR-USERNAME>
替换为您的 MacOS 用户名。 如果您已经使用其他 MCP 服务器,则必须将 JSON 合并到现有内容中。{ "mcpServers": { "inspect_excel_xlsx_file": { "command": "/Users/<YOUR-USERNAME>/Downloads/openpyxl_mcp_server", "args": [] } } }
- 在 Windows 上,将以下内容添加到您的
claude_desktop_config.json
。 将<YOUR-USERNAME>
替换为您的 MacOS 用户名。 如果您已经使用其他 MCP 服务器,则必须将 JSON 合并到现有内容中。{ "mcpServers": { "inspect_excel_xlsx_file": { "command": "C:\\Users\\<YOUR-USERNAME>\\Downloads\\openpyxl_mcp_server.exe", "args": [] } } }
- 更新配置文件后,您需要重新启动 Claude 应用程序才能使更改生效。仅仅关闭 Claude 应用程序窗口是不够的。在 Windows 上,您必须右键单击系统托盘中的 Claude 图标并选择“Quit”。在 macOS 上,您可以使用 Command+Q。
如果您遇到问题,请查阅以下资源:
- Anthropic 的用户文档。
- Anthropic 的开发者文档 的“Testing your server with Claude for Desktop”部分
- 还有人在 https://claudedesktopconfiggenerator.com/ 上制作了一个配置文件生成器
配置其他 MCP 客户端
在支持 MCP 服务器的其他工具中配置 MCP 服务器的说明:
从源代码(用于开发)
本节仅适用于您希望修改源代码,或者如果您不信任提供的可执行文件并希望从源代码运行。
git clone git@github.com:jonemo/openpyxl-mcp-server.git
cd openpyxl-mcp-server
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
假设您已将您的仓库克隆到 /Users/jonas/repos/openpyxl_mcp_server
,则配置文件内容现在应更改为:
{
"mcpServers": {
"inspect_excel_xlsx_file": {
"command": "/Users/jonas/repos/openpyxl_mcp_server/venv/bin/python",
"args": ["/Users/jonas/repos/openpyxl_mcp_server/openpyxl_mcp_server.py"]
}
}
}
示例提示
示例 1
使用来自 https://catalog.data.gov/dataset/near-port-air-quality-assessment-utilizing-a-mobile-monitoring-approach 的“利用移动监测方法进行近港空气质量评估”数据集中的文件 KimbroughEvelyn_A-5qg0_Dataset_20160624.xlsx
从对描述和文件内容的快速浏览中,我并不清楚此数据集是关于哪些港口的。让我们问问 Claude:
我在 ~/Downloads/KimbroughEvelyn_A-5qg0_Dataset_20160624.xlsx 中有一个 Excel 文件,其中包含与美国一个或多个港口附近空气污染研究相关的数据。你能从文件内容推断出这项研究涵盖了哪些港口吗?
https://claude.ai/share/d87f67a9-dbc0-4223-86ff-3b4c1f9fa2e7
在 11 次调用 MCP 服务器后,响应为:
查看 Fig 2 工作表中的纬度和经度坐标,并将其与位置信息相结合,我可以推断出这项研究的重点是南卡罗来纳州查尔斯顿港。
数据集中的坐标(大约纬度 32.83 和经度 -79.87)对应于查尔斯顿地区,并且对市中心、铁路货场和机场监测站的引用与港口城市周围的空气质量监测一致。
该数据集似乎包含在查尔斯顿港附近收集的空气污染测量值(PM2.5 和 PM10),以及港口位置与背景/参考站点之间的比较。
示例 2:
我是一个小型 10 户业主协会的财务主管。我们的簿记工作在 Google Sheets 的 Excel 文件中进行。该文件有 9 个工作表,用于诸如交易列表、会员会费帐户、季度报告等事项。
该文件包含非公开信息,因此本示例仅显示提示、一些关键“见解”和最终答案:
~/Downloads/CASH FLOW 2024.xlsx 是我的业主协会的财务状况。我们在 2024 年的喷水灭火系统维护费用是多少?有多少笔交易促成了这个总额?每笔交易是什么时候发生的?
[...]
我看到一个“Transactions”工作表,可能包含详细的费用记录。让我在此工作表中搜索“sprinkler”以查找相关交易:
[...]
让我检查 YEAR 2024 摘要工作表,看看喷水灭火系统维护是否列为一个类别:
[...]
太好了!我在 YEAR 2024 工作表的第 24 行中找到了列为类别的“Sprinkler Maintenance”。现在,让我检查与喷水灭火系统维护相关的实际交易:
[...]
让我通过在整个 Transactions 工作表中专门搜索“Sprinkler Maintenance”来检查更多条目:
[...]
根据我对您的 HOA 在“CASH FLOW 2024.xlsx”文件中的财务记录的分析,以下是我发现的关于 2024 年喷水灭火系统维护费用的信息:
2024 年喷水灭火系统维护的总账单金额:565.00 美元 交易数量:1 笔交易 交易日期:2024 年 9 月 9 日
该费用在 Transactions 工作表中显示为单笔交易。该电子表格还包含年度喷水灭火系统维护的预算金额 750.00 美元 > 在“YEAR 2024 Actuals vs Planned”工作表中,并附有说明“尚未收到任何发票”(这可能已过时,因为现在已记录一张发票)。 您希望我分析您的 HOA 喷水灭火系统维护费用的任何其他方面,还是分析电子表格中的其他财务信息?
真实的故事。我们的喷水灭火系统人员只在春天访问了一次并开了账单,而忘记了在今年晚些时候发送工作的账单。别担心,他得到了报酬,但它被记在 2025 年。
示例 3:填写表格
我在 Google 上搜索有趣的 Excel 工作簿时,找到了加利福尼亚州自然资源机构的 DPR 973 表格: https://www.parks.ca.gov/pages/22374/files/Annual%20Report%20DPR973.xls 这似乎是一个由支持加利福尼亚州立公园的“协会”填写的表格。需要明确的是,我不隶属于这样的协会。 但我将表格从 .xls 格式转换为 .xlsx 格式,并要求 Claude 帮助我填写:
我需要提交 DPR973,因为我在加利福尼亚州立公园的“合作协会”工作。我必须填写的表格是这个 Excel 表格:/Users/jonas/Downloads/Annual Report DPR973.xlsx。我们通过出版书籍和销售木柴来支持州立公园并产生收入。我必须在工作簿中的哪个位置填写单元格?
在 11 次调用该工具后,响应似乎是正确的,尽管我不明白为什么 Claude 根本没有查看其余的工作表:
根据我对 DPR973 表格的检查,我现在将提供有关您需要为出版书籍和销售木柴的合作协会填写单元格的位置的指导:
第 1 页:
- 您需要填写协会信息(第一部分),其中包含您组织的详细信息(名称、地址、联系信息)
- 将单元格 C4 中的年份更新为当前的报告年份
第 2 页 (A) - 这是您记录销售信息的地方:
对于您的图书销售(将被视为解释性/教育性):
- 第 1 行(单元格 F22):总销售额 - 材料(对于您出版的图书)
- 第 2 行(单元格 F23):任何退货或退款
- 第 3 行(单元格 F24):图书的销售成本
对于您的木柴销售:
- 第 23 行(单元格 F51):总销售额 - 木柴
- 第 24 行(单元格 F52):任何退款/退回/损坏的木柴
- 第 25 行(单元格 F53):木柴的销售成本
该表格将自动计算单元格 F25(图书利润)、F54(木柴利润)和 F58(总净利润)中的总计
第 3 页 - 财务摘要:
您的销售数据将自动从第 2 页 (A) 填充到:
- 第 6 行(单元格 F11):总销售额
- 第 7 行(单元格 F12):商品/服务总成本 + 退货/退款
- 第 8 行(单元格 H13):所有材料和服务的净利润
您需要手动输入:
- 任何捐款/捐助(第 1 行,单元格 F6)
- 会员费(如果适用)(第 4 行,单元格 H9)
- 利息/投资收入(如果有)(第 5 行,单元格 H10)
- 筹款信息(如果适用)(第 9-11 行)
- 其他收入(如果适用)(第 12 行,单元格 H17)
对于费用:
- 第 15 行(单元格 F21):对加利福尼亚州立公园的任何直接赠款
- 第 16 行(单元格 F22):解释性项目支持费用
- 第 17 行(单元格 F23):其他 CSP 项目支持
- 第 19 行(单元格 H25):管理和一般费用
对于资产/负债:
- 第 22 行(单元格 F30):总资产
- 第 23 行(单元格 H31):总负债
- 第 24-26 行(单元格 F32-F34):按限制类型划分的净资产
第 4 页(未完全检查,但可能包含):
- 其他注释、解释和签名
对于您的特定活动(图书出版和木柴销售),请专注于准确完成:
- 第 2 页 (A) 上图书销售的解释性和教育性销售部分
- 第 2 页 (A) 上木柴销售的木柴收入部分
- 第 3 页上的完整财务摘要
您希望我更详细地解释任何特定部分吗?
示例 4
这使用了来自 https://catalog.data.gov/dataset/inventory-of-owned-and-leased-properties-iolp 提供的自有和租赁财产清单 (IOLP) 数据集中的文件 2025-3-7-iolp-buildings.xlsx
。如果您最近几周关注了新闻,您就会知道为什么这是目前 data.gov 上最受欢迎的数据集。
提示:
使用 "/Users/jonas/Downloads/2025-3-7-iolp-buildings.xlsx" 中的 Excel 文件:犹他州按平方英尺计算最大的联邦建筑是什么?
我反复使用此文件和提示作为测试用例,并得到了不同的结果:
- 由于达到上下文限制而终止且没有响应的聊天。当 Claude 进入一次查询多行的循环时,就会发生这种情况。
- 由于 Claude 在此过程中做出了“错误的假设”而导致的不正确答案。例如,在 此聊天 中,它决定最大的建筑物必须位于盐湖城,并开始在电子表格中搜索任意术语。
- 正确的答案,例如 此聊天:奥格登的 IRS 服务中心是该列表中犹他州最大的联邦政府拥有的建筑物。
脚注:IRS 服务中心是正确的,因为它在该列表中是最大的建筑物。“Bumblehive”又名“犹他州数据中心”又名“情报界综合国家网络安全倡议数据中心”几乎肯定更大,但不包含在该文件中。
贡献和开发
构建独立可执行文件
要创建不需要安装 Python 的独立可执行文件:
-
确保您已安装所有依赖项:
pip install -r requirements.txt pip install -r requirements-dev.txt
-
构建可执行文件:
pyinstaller openpyxl_mcp_server.spec
可执行文件将在 dist
目录中创建。在 Windows 上,它将被命名为 openpyxl_mcp_server.exe
。在 macOS 上,它将被命名为 openpyxl_mcp_server
。
注意:在 macOS 上构建时,您可能需要对可执行文件进行签名才能使其正常运行。您可以使用以下命令执行此操作:
codesign --force --deep --sign - dist/openpyxl_mcp_server
MCP 服务器目录
openpyxl-mcp-server 目前列在以下 MCP 服务器目录中:
- https://mcp.so/server/openpyxl-mcp-server/jonemo
- https://mcpserver.cloud/server/openpyxl-mcp-server
- https://www.mcpserverfinder.com/servers/jonemo/openpyxl-mcp-server
推荐服务器

Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。