mcpField
M
MCP-Excel

MCP-Excel

本地服务
nife.io商业与营销04 天前更新

关于 MCP-Excel

MCP-Excel 是无状态 MCP 服务,可将 Google Sheets 用作管理线索、组织、联系人和活动的四实体 CRM,适用于团队及应用。它支持 HTTP 和 stdio 传输,并能为现有表格补建缺失工作表和列。

主要功能

  1. 01管理线索、组织、联系人和活动
  2. 02添加、搜索、列出、更新及软删除记录
  3. 03筛选记录并查询关联记录
  4. 04分析线索管道
  5. 05识别并合并重复表头
  6. 06从名片图片提取联系人字段

适用场景

  1. 01在 Google Sheets 中跟踪销售线索及活动
  2. 02查找与某组织关联的联系人
  3. 03按状态或细分查看管道总量
  4. 04从名片图片提取联系人信息

MCP 相关

通过 streamable HTTP 或 stdio 向 MCP 客户端提供 CRM 操作。每次工具调用都需指定 Google Sheet ID 或 URL,不共享当前工作表状态。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP-Excel — Google Sheets CRM MCP 服务

一个无状态的 MCP 服务,可将任意 Google Sheet 转换为包含 4 种实体(Lead、Organization、Contact、Activity)的 CRM。可作为独立 HTTP 服务运行(FastMCP streamable-HTTP,默认端口为 5002),也可通过 stdio 为 Claude Desktop 和其他本地 MCP 主机提供服务——无需网关、无需 ngrok,也无需启动子进程。


架构

Any MCP host (Claude Desktop, your backend, an agent framework)
  │  HTTP POST /mcp  (JSON-RPC) — or stdio
  ▼
MCP-Excel :5002  (FastMCP streamable-HTTP)
  │  gspread
  ▼
Google Sheets API

每次工具调用都必须显式包含 sheet_id——没有会话状态,也没有“活动工作表”变量。多个团队可以安全地使用同一个运行实例,因为请求之间不会共享任何内容。


工作表架构(自动管理)

包含 4 个标签页;首次连接时,如果标签页不存在,就会创建。现有标签页将按原样使用;缺少的列会追加,不会影响现有数据。

标签页主键关键列
LeadLead IDOrganization ID、Status、Segment、Opportunity Details、Last Contact Date
OrganizationOrganization IDOrganization Name、Industry Domain、Sub Domain、Company Type、Website
ContactContact IDFirst Name、Last Name、Organization ID、Designation、Mobile、Email、LinkedIn Profile
ActivityActivity IDLead ID、Organization ID、Contact ID、Activity Type、Activity Sub-Type、Subject、Discussion Summary、Outcome

ID 会按照现有模式自动递增(LD001 → LD002、ACT010 → ACT011)。如果找不到一致的模式,则使用 UUID。

如果尚不存在,每个标签页还会追加 Created At、Updated At、Deleted 审计列。

系统会模糊匹配标题(解析同义词和近似重复项),因此列名略有不同的现有工作表也能正常使用。运行 tool_dedupe_headers(先进行试运行)即可合并确实重复的列。


设置

1. Google 服务账号

你需要一个启用了 Google Sheets API 和 Google Drive API 的服务账号密钥文件 creds.json。

将其放在此目录(默认路径),或将 GOOGLE_APPLICATION_CREDENTIALS 设置为该文件的完整路径。

切勿将 creds.json 提交到 git。 它已在 .gitignore 中排除;请将其保存在本地,或将其挂载为密钥。

2. 分享工作表

对于要连接的每个 Google Sheet:打开工作表 → 点击 Share → 添加服务账号邮箱并设为 Editor → 点击 Done。

服务账号邮箱会在启动时打印出来;发生权限错误时,也会由 get_sheet_info 返回。你也可以从 creds.json 中读取:

python3 -c "import json; print(json.load(open('creds.json'))['client_email'])"
3. 安装依赖项
pip install -r requirements.txt

可选 — 添加名片 OCR(Claude Vision)支持:

pip install anthropic
export ANTHROPIC_API_KEY=...

运行

本地开发(HTTP 端口 :5002)
GOOGLE_APPLICATION_CREDENTIALS=creds.json python mcp_excel_server.py

验证服务是否正常:

curl -s -X POST http://localhost:5002/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' \
  | python3 -m json.tool
Docker(预发布 / 生产环境)
docker build -t mcp-excel .
docker run -p 5002:5002 \
  -v /path/to/creds.json:/secrets/creds.json \
  -e GOOGLE_APPLICATION_CREDENTIALS=/secrets/creds.json \
  mcp-excel
Claude Desktop(stdio 传输)

设置 MCP_TRANSPORT=stdio,即可使用 stdio 替代 HTTP:

{
  "mcpServers": {
    "crm": {
      "command": "python",
      "args": ["/path/to/mcp-excel/mcp_excel_server.py"],
      "env": {
        "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/mcp-excel/creds.json",
        "MCP_TRANSPORT": "stdio"
      }
    }
  }
}

环境变量

变量默认值说明
GOOGLE_APPLICATION_CREDENTIALScreds.json服务账号 JSON 文件的路径
MCP_TRANSPORThttphttp 用于服务模式,stdio 用于 Claude Desktop
MCP_PORT5002HTTP 监听端口
ANTHROPIC_API_KEY—仅用于 tool_extract_business_card

工具

所有工具均为无状态工具 — 每次调用都需要提供 sheet_id(完整的 Google Sheets URL 或纯电子表格 ID)。

工具描述
tool_get_sheet_info验证访问权限,确保存在全部 4 个标签页,并确认写入权限
tool_add_record向 Lead / Organization / Contact / Activity 添加记录
tool_list_records列出记录,支持按列筛选(分页)
tool_search_records在所有列中搜索关键词
tool_update_record按主键 ID 更新现有记录的字段
tool_delete_record软删除记录(将 Deleted 设为 true)
tool_get_related_records通过外键查找记录(例如某个 Lead 的所有 Activity)
tool_get_pipeline_analyticsLead 管道分析:总数、状态细分、细分市场细分
tool_dedupe_headers查找并合并重复列(先生成试运行报告)
tool_extract_business_card通过 Claude Vision 从名片图片中提取联系人字段(需要 ANTHROPIC_API_KEY)

开发

pip install pytest
pytest test_mcp_excel.py test_crm_local.py -v

测试完全离线运行(Google 调用已模拟);无需凭据。


故障排除

问题解决方法
status: failure, message: ""找不到工作表 — 将其共享给服务账号并授予编辑者权限
Permission denied on sheet重新共享给服务账号,并授予编辑者权限(而非查看者权限)
Cannot connect to MCP-Excel serviceMCP-Excel 未运行 — 在 :5002 启动它
sheet_id is required and was empty始终传入 sheet_id — 不存在隐式活动工作表
找不到标签页 / 列不正确get_sheet_info 会自动创建缺失的标签页并追加缺失的列

许可证

MIT — 参见 LICENSE。由 Nife 构建。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。