Excel数据分析服务器

一个专为AI代理设计的本地化Excel数据分析服务器,通过原子操作实现高效电子表格分析,确保数据安全和隐私。

  • by jwadow
  • Python
  • 本地部署
  • 46 星标
  • 更新于
在 GitHub 查看 jwadow/mcp-excel

使用说明

📊 Excel MCP服务器

通过原子操作进行快速高效的电子表格分析,专为AI代理构建

🇬🇧 英语• 🇷🇺 俄语 • 🇨🇳 中文 • 🇪🇸 西班牙语 • 🇯🇵日本语 • 🇧🇷 葡萄牙语

由...制作❤️ 为妈妈 @Jwadow

使用AI代理通过原子操作分析Excel电子表格——无需将数据转储到AI上下文中

可与OpenCode、Claude Code、Codex应用程序、Cursor、Cline、Roo Code、Kilo Code和其他MCP兼容的AI代理配合使用

为什么存在 • 我妈妈的评论 • 你的代理人能做什么 • 安装 • 💖 捐赠


🔒 数据安全与隐私

当地第一建筑 此服务器完全在您的本地计算机上运行。您的Excel文件在本地处理 永远不要离开你的电脑.

安全吗?

  • 当地模特(Ollama,LM工作室): 您的数据 从不 离开你的机器。100%私人。
  • 云模型(OpenRouter、ChatGPT): 只有 精确的结果 操作(计数、求和、公式)和元数据(列名)被发送到模型。大量原始数据仍保留在您的磁盘上。

🤨 为什么存在

问题: 大多数用于AI的Excel工具将原始电子表格数据转储到代理的上下文中。这会淹没上下文窗口,减慢一切速度,人工智能仍然可能在大型数据集中计算错误或混淆。

本项目: 想想Excel的SQL。你的AI代理组成原子操作(filter_and_count, aggregate, group_by)并返回精确的结果,而不是数千行。

代理分析数据 没有看到它结果以数字、公式和见解的形式出现。

“这就像通过SQL处理数据库,而不是将所有内容拖入内存。” --分析生产电子表格后的AI Agent

🔌 什么是MCP?

模型上下文协议 是一个开放标准,允许AI代理使用外部工具。

这个项目就是这样一个工具。当你将此服务器连接到你的AI代理(OpenCode、Claude Code、Codex app、Cursor、Cline、Roo Code、Kilo Code等)时,你的代理会收到很多处理Excel文件的新命令——过滤、计数、聚合、分析。

主要优势: 你的人工智能不会将数千行电子表格加载到内存中。相反,它会提出具体的问题并得到精确的答案。更快、更准确、没有上下文溢出。


👩 我妈妈的评论

翻译自俄语。她不是一个技术人员——用一根手指打字,每天在工作中使用Excel。

“通常我需要一个小时来分解这个电子表格,按类别过滤,复制到不同的列中,计算总数。给它任务,它在3分钟内完成了所有事情。检查它是否正确。现在,任何任务都是这样的,只需写下我需要的东西,它就会完成。我真的很震惊。我半辈子都在手工做这件事,电脑只会得到我需要的。真正节省了这么多时间。”


🚀 你的代理人能做什么

一旦连接,您的AI代理将获得许多用于分析电子表格数据的专用工具。代理只接收精确的查询和可靠的结果。

📊 数据探索

  • 检查文件 -结构、表、列、数据类型(自动检测杂乱的标题)
  • 配置文件列 -一次调用中的统计信息、空计数、最高值、数据质量
  • 查找数据 -在多个工作表中搜索,在任何位置定位列

🔍 过滤和查询

  • 12名过滤器操作员 - ==, !=, >, <, >=, <=, in, not_in, contains, startswith, endswith, regex
  • 复杂逻辑 -嵌套AND/OR组,NOT运算符,无限制条件
  • 批量操作 -在一个请求中将数据分为多个类别(速度提高6倍)
  • 重叠分析 -维恩图、交叉口计数、集合操作

📈 聚合与分析

  • 8聚合功能 -总和、平均值、中位数、最小值、最大值、标准差、方差、计数
  • 分组 -具有多个分组列的透视表
  • 统计分析 -相关性(Pearson/Spearman/Kendall)、异常检测(IQR/Z评分)
  • 时间序列 -环比增长、移动平均线、累计

🏆 高级操作

  • 排名 -前N、后N、百分位数排名(支持分组)
  • 计算列 -列之间的算术表达式
  • 数据验证 -查找重复项、空值、数据质量检查
  • 表比较 -版本之间的差异,查找更改

⚡ 性能特点

  • 原子操作 -无论文件大小,结果都在20-50ms内
  • 智能缓存 -文件加载一次,可重复用于所有操作
  • 样本行 -预览筛选后的数据而不进行完全检索
  • 上下文保护 -智能限制防止AI上下文溢出

📋 Excel集成

  • 公式生成 -每个结果都包含用于动态更新的Excel公式
  • TSV输出 -将结果直接复制粘贴到Excel中
  • 传统支持 -适用于旧的.xls文件(Excel 97-2003)
  • 多图幅 -在一个文件中跨多个工作表进行分析

您的代理现在可以处理的示例查询:

  • “按收入显示前10名客户”
  • “查找第四季度金额>1000美元的所有订单”
  • “计算每个产品类别的环比增长”
  • “哪些客户既是VIP客户又是活跃客户?(重叠分析)”
  • “在电子邮件列中查找重复项”

⚙️ 安装和配置

先决条件

Python 3.10或更高版本 — 点击此处下载

步骤1:克隆存储库

git clone https://github.com/jwadow/mcp-excel.git
cd mcp-excel

没有Git?点击“代码”→ 在此存储库页面顶部的“下载ZIP”,解压缩并打开该文件夹中的终端。

第二步:选择安装方式

🎯 Option A: Poetry (Recommended)

Poetry是一个现代的Python依赖管理器(取代了pip+venv+requirements.txt)。 安装它: pip install poetry 或 pipx install poetry

安装依赖项:

poetry install

配置您的AI代理:

将此添加到MCP设置(JSON配置)中:

{
  "mcpServers": {
    "excel": {
      "command": "poetry",
      "args": ["run", "python", "-m", "mcp_excel.main"],
      "cwd": "C:/path/to/mcp-excel"
    }
  }
}

重要提示: 替换 C:/path/to/mcp-excel 带有克隆存储库的实际路径。

📦 Option B: pip with virtual environment

安装依赖项:

# Windows
python -m venv venv
venv\Scripts\activate
pip install -e .

# Linux/Mac
python -m venv venv
source venv/bin/activate
pip install -e .

在venv中查找Python路径:

# Windows
where python

# Linux/Mac
which python

配置您的AI代理:

将此添加到MCP设置(JSON配置)中:

{
  "mcpServers": {
    "excel": {
      "command": "C:/path/to/mcp-excel/venv/Scripts/python.exe",
      "args": ["-m", "mcp_excel.main"],
      "cwd": "C:/path/to/mcp-excel"
    }
  }
}

重要提示:

  • 替换 C:/path/to/mcp-excel/venv/Scripts/python.exe 从实际路径 where python 命令
  • 在Linux/Mac上,使用路径为 which python (例如。, /path/to/mcp-excel/venv/bin/python)
🐍 Option C: System Python (Not Recommended)

全局安装依赖项:

pip install "mcp>=1.1.0" "pandas>=2.2.0" "pydantic>=2.10.0" "xlrd>=2.0.1" "openpyxl>=3.1.0" "psutil>=6.1.0" "python-dateutil>=2.9.0"

配置您的AI代理:

{
  "mcpServers": {
    "excel": {
      "command": "python",
      "args": ["-m", "mcp_excel.main"],
      "cwd": "C:/path/to/mcp-excel"
    }
  }
}

⚠️ 警告: 这会污染你的全球Python环境。用诗歌或文选代替。

步骤3:验证安装

重新启动AI代理并测试:

"Analyze the Excel file at C:/Users/YourName/Documents/test.xlsx"

如果它奏效了,你就完了!如果没有,请检查:

  • 存储库路径正确 cwd
  • Python路径正确 command (适用于pip方法)
  • 所有依赖项均已安装

支持的AI代理

可与任何兼容MCP的AI代理配合使用。

⚠️ 重要提示: 这是一个MCP服务器。当您的AI代理需要时,它会自动运行。不要在终端中手动运行。

💡 用法

配置后,重新启动AI代理并要求其分析Excel文件:

"Analyze the Excel file at C:/Users/YourName/Documents/sales.xls"
"Show me top 10 customers by revenue from sales.xlsx"
"Find duplicates in column 'Email' in contacts.xlsx"
"Calculate month-over-month growth from revenue.xls"

🛠️ 可用工具

📋 Complete Tool Reference (25 tools) - Click to expand

📊 文件检查(5个工具)

inspect_file

获取文件结构概述-图纸、尺寸、格式。 用途: 初始文件探索、工作表发现、格式验证 退货: 工作表列表、行/列计数、文件元数据

get_sheet_info

具有自动页眉检测功能的详细工作表分析。 用途: 了解数据结构、列类型、示例预览 退货: 列名/类型、行数、样本数据(3行)、标题检测信息

get_column_names

快速列枚举,无需加载完整数据。 用途: 模式验证、过滤器构建、列可用性检查 退货: 列名列表、列数

get_data_profile

全面的列分析-类型、统计数据、空值、顶级值。 用途: 初步数据探索、质量评估、分布分析 退货: 每列:类型、空%、唯一计数、统计数据(数字)、前N个值 效率: 替换10+个单独的调用(get_column_stats+get_value_counts+find_nulls)

find_column

在多个工作表中定位列。 用途: 多表导航、数据发现、跨表分析 退货: 带列位置、索引、行数的工作表列表(不区分大小写)


📥 数据检索(3个工具)

get_unique_values

从列中提取唯一值。 用途: 数据探索、过滤器构建、独特价值发现、数据质量检查 退货: 唯一值列表、计数、截断标志(如果超过限制) 默认限制: 100个值

get_value_counts

频率分析-前N个最常见值。 用途: 分布分析、确定主要类别、数据不平衡检测 退货: 价值→ 计数字典、总计数、TSV输出 违约: 前10个值

filter_and_get_rows

使用分页检索筛选的行。 用途: 数据提取、样品检验、详细分析、导出 退货: 筛选行(字典列表)、总计数、TSV输出 分页: 限制/偏移支持


🔍 过滤和计数(3个工具)

filter_and_count

使用14个运算符计数符合条件的行。 操作员: ==, !=, >, <, >=, <=, in, not_in, contains, startswith, endswith, regex, is_null, is_not_null 逻辑: 嵌套AND/OR组,非运算符,无限制条件 用途: 分类、分割、数据验证、类别计数 退货: 计数+Excel公式(COUNTIFS),可选样本行

filter_and_count_batch

在一次调用中将数据分类为多个类别(速度提高6倍)。 用途: 多品类分类、市场细分、质量控制 退货: 每个类别的计数+公式,Excel的TSV表 效率: 加载文件一次,应用所有筛选器,返回所有结果

analyze_overlap

维恩图分析——交叉口、联合体、专属区。 用途: 重叠分析、交叉销售机会、数据一致性检查 退货: 集合计数、成对交集(A∩B)、并集、维恩数据(2-3组) 示例: VIP和活跃客户、产品类别重叠、已完成订单但无完成日期


📈 聚合和分析(2个工具)

aggregate

使用可选筛选器执行聚合(8个操作)。 操作: sum, mean, median, min, max, std, var, count 用途: 总计、平均值、统计摘要、条件聚合、KPI 退货: 聚合值+Excel公式(SUMIF、AVERAGEIF等) 特别: 自动将文本存储的数字转换为数字

group_by

具有多列分组的数据透视表。 用途: 类别分析、层次分组、按地区/产品销售 退货: 带聚合值的分组数据,TSV输出 支持: 多个分组列,全部8个聚合操作


📊 统计(3个工具)

get_column_stats

统计摘要-计数、平均值、中位数、标准差、四分位数。 用途: 分布分析、数据分析、异常检测准备 退货: 完整统计数据(最小值、最大值、平均值、中位数、标准差、Q1、Q3)、空计数、TSV输出

correlate

2+列之间的相关矩阵。 方法: Pearson(线性)、Spearman(基于排名)、Kendall(基于排名的) 用途: 关系分析、变量依赖、特征选择 退货: 相关矩阵(-1到1),TSV输出

detect_outliers

使用IQR或Z评分进行异常检测。 方法: IQR(稳健),Z分数(假设正态分布) 用途: 欺诈检测、传感器错误、数据质量、异常值识别 退货: 使用索引、计数、方法/阈值的异常行


✅ 数据验证(2个工具)

find_duplicates

按指定列检测重复行。 用途: 数据质量、重复数据消除计划、完整性检查 退货: 所有重复行(包括第一次出现)、计数、索引 注: 用途 duplicated(keep=False) 标记所有重复项

find_nulls

查找具有详细统计信息的空值。 用途: 完整性检查、缺失值分析、数据清理 退货: 每列:空计数、百分比、索引(前100个) 注: 占位符(“.”、“-”)不能空用 == 或 in 操作员


🔄 多页操作(2个工具)

search_across_sheets

在所有工作表中搜索值。 用途: 跨表搜索、价值跟踪、数据定位 退货: 包含匹配次数、总匹配次数的工作表列表 支持: 数字和字符串值

compare_sheets

使用键列在两张工作表之间进行区分。 用途: 版本比较、变更检测、对账、审计跟踪 退货: 有差异的行、状态(仅in_sheet1/sheet2/different_values)、并排比较


📅 时间序列(3个工具)

calculate_period_change

逐期增长分析。 时期: 月、季度、年 用途: 趋势分析、增长跟踪、季节性比较、同比分析 退货: 带值的期间、绝对值/百分比变化、Excel公式

calculate_running_total

可选择分组的累计总和。 用途: 累计分析、进度跟踪、余额计算、现金流 退货: Excel公式(SUM($B$2:B2))中具有连续总计的行 支持: 分组(每组运行总重置)

calculate_moving_average

使用指定的窗口大小进行平滑处理。 用途: 趋势检测、降噪、模式识别 退货: 带有移动平均线的行,Excel公式(平均值(B1:B7)) 示例: 7天移动平均线,30天股价平滑


🏆 高级操作(2个工具)

rank_rows

按列值排序,使用前N个筛选。 方向: desc(最高优先),asc(最低优先) 用途: 排行榜、顶部/底部分析、百分位数排名 退货: 使用排名编号对行进行排序,Excel公式(rank) 支持: Top-N过滤,组内排名

calculate_expression

列之间的算术表达式。 操作: +, -, *, /,括号 用途: 衍生指标、财务计算、比率分析、关键绩效指标 退货: 计算值,Excel公式(例如,=A2*B2) 示例: 收入=价格*数量,利润=(收入-成本)/收入

🗺️ 路线图

📁 文件格式支持

目前支持:

  • ✅ XLS文件 -Excel 97-2003(只读)
  • ✅ XLSX文件 -Excel 2007+(只读)

计划:

  • 🔜 XLSM -支持宏的Excel
  • 🔜 CSV -逗号分隔值
  • 🔜 制表符分隔值 -制表符分隔值
  • 🔜 运营数据存储 -OpenDocument电子表格
  • 🔜 镶木地板 -列式存储格式

🚀 特性

  • 写入操作 -修改电子表格文件(创建计算列、更新值)
  • SSE运输方式 -服务器发送远程访问事件
  • 高级配方生成 -具有嵌套函数的更复杂的Excel公式
  • 数据导出 -将筛选/聚合结果导出到新文件

📜 许可证

该项目根据 GNU Affero通用公共许可证v3.0(AGPL-3.0).

这意味着:

  • ✅ 您可以使用、修改和分发此软件
  • ✅ 您可以将其用于商业目的
  • ⚠️ 您必须公开源代码 当你分发软件时
  • ⚠️ 网络使用是分配 --如果在服务器上运行修改后的版本并让其他人与之交互,则必须使源代码可用
  • ⚠️ 修改必须在同一许可证下发布

看 许可证 完整许可证文本的文件。

为什么选择AGPL-3.0?

AGPL-3.0确保对该软件的改进使整个社区受益。如果修改此服务器并将其部署为服务,则必须与用户分享您的改进。


💖 支持项目

如果这个项目为您节省了时间或金钱,请考虑支持它!

每一份贡献都有助于保持这个项目的活力和发展


🤑 捐赠

☕ 一次性捐赠 • 💎 每月支持


🪙 或发送加密货币

货币 网络 地址
泰达币 TRC20 TSVtgRc9pkC1UgcbVeijBHjFmpkYHDRu26
比特币 比特币 12GZqxqpcBsqJ4Vf1YreLqwoMGvzBPgJq6
地球 以太坊 0xc86eab3bba3bbaf4eb5b5fff8586f1460f1fd395
索尔 索拉纳 9amykF7KibZmdaw66a1oqYJyi75fRqgdsqnG66AK3jvh
TON 吨 UQBVh8T1H3GI7gd7b-_PPNnxHYYxptrcCVf3qQk5v41h3QTM

🤝 贡献

欢迎投稿!请确保:

  1. 所有依赖项都与AGPL兼容
  2. 代码遵循现有样式
  3. 包括对新功能的测试
  4. 文档已更新

对于问题、疑问或贡献,请在GitHub上打开问题。


💬 需要帮助?

有问题吗?发现bug了吗?有一个功能想法吗?我们是来帮忙的!

👉 在GitHub上打开一个问题

无论你是在安装过程中遇到困难,发现有问题,还是只是想提出改进建议,GitHub Issues都是你的选择。如果你是GitHub的新手,不要担心,只需点击上面的链接并描述你的情况。我们会一起解决的。


⬆ 返回页首