项目简介

'OpenPyXL MCP Excel数据访问服务器' 是一个轻量级的MCP服务器实现,它基于流行的Python库 'openpyxl',将Excel文件的读取能力通过Model Context Protocol (MCP) 协议暴露给大型语言模型(LLM)客户端。这意味着你可以让支持MCP协议的LLM,例如Claude Desktop 或 Cursor 编辑器,直接读取你本地的Excel文件,并根据文件内容进行分析、问答等操作。

主要功能点

  • 安全访问本地Excel文件: 允许LLM客户端在你的授权下,安全访问你指定路径下的Excel文件。
  • 多种数据查询工具: 提供多种工具,允许LLM客户端读取Excel文件的以下信息:
    • 单元格详细信息: 获取指定单元格的值、数据类型、样式、公式、批注、超链接等详细信息。
    • 单元格值: 获取指定单元格的原始值。
    • 单元格范围值: 获取指定单元格区域内的所有单元格的值。
    • 指定单元格列表值: 获取指定单元格列表中每个单元格的值。
    • 单元格范围搜索: 在指定单元格区域内搜索包含特定字符串的单元格。
    • 工作表列表: 获取Excel文件中所有工作表的名称和尺寸信息。

安装步骤

  1. 克隆仓库到本地:

    git clone https://github.com/jonemo/openpyxl-mcp-server.git
    cd openpyxl-mcp-server
  2. 创建并激活虚拟环境 (推荐):

    python -m venv venv
    source venv/bin/activate  # Linux/macOS
    # venv\Scripts\activate  # Windows
  3. 安装依赖:

    pip install -r requirements.txt

服务器配置

MCP服务器需要配置到MCP客户端中才能使用。以 Claude Desktop 为例,你需要编辑 'claude_desktop_config.json' 配置文件。

  • 配置文件位置:

    • macOS: '~/Library/Application Support/Claude/claude_desktop_config.json'
    • Windows: '%APPDATA%\Claude\claude_desktop_config.json'
  • 添加服务器配置: 将以下JSON配置添加到你的 'claude_desktop_config.json' 文件中的 '"mcpServers"' 字段下(如果该文件不存在或 '"mcpServers"' 字段不存在,请按照Claude官方文档创建或添加)。

{
  "mcpServers": {
    "excel_data_server": {  //  服务器名称,可以自定义,在Claude中引用时使用
      "command": "/path/to/your/openpyxl-mcp-server/venv/bin/python",  // Python解释器路径,请替换为你的虚拟环境或Python安装路径
      "args": ["/path/to/your/openpyxl-mcp-server/openpyxl_mcp_server.py"]   // 服务器脚本路径,请替换为你的 openpyxl_mcp_server.py 文件路径
    }
  }
}

注意: * 请将 '"command"' 和 '"args"' 中的路径替换为你实际的Python解释器路径和 'openpyxl_mcp_server.py' 脚本路径。 * 如果你已经配置了其他MCP服务器,请将这段JSON合并到已有的 '"mcpServers"' JSON对象中,而不是覆盖。 * 修改配置文件后,需要重启 Claude Desktop 应用才能生效。

基本使用方法

  1. 启动服务器: 无需手动启动,Claude Desktop 等 MCP 客户端会在需要时自动启动配置的服务器。

  2. 在LLM客户端中使用: 在支持MCP协议的LLM客户端(如 Claude Desktop)中,你可以通过自然语言指令,让LLM使用该服务器来访问和查询Excel文件。

    例如,在 Claude Desktop 中,你可以这样提问:

    我有一个Excel文件在 ~/Downloads/my_data.xlsx,文件名是 "销售数据"。请帮我找出 "Sheet1" 工作表中 "A1" 单元格的值。

    或者:

    请分析文件 ~/Documents/finance.xlsx 中 "Transactions" 工作表,帮我搜索包含 "Sprinkler Maintenance" 的单元格,并告诉我它们的坐标和值。

    LLM客户端会根据你的指令,自动调用配置的 MCP 服务器,并使用服务器提供的工具来读取和分析Excel文件,最终将结果返回给你。

重要提示:

  • 请确保你提供的文件路径是LLM客户端可以访问的。通常情况下,MCP服务器和客户端运行在同一台机器上,可以使用本地文件路径。
  • 该服务器仅提供读取Excel文件的功能,不具备修改文件的能力。
  • 请谨慎授权LLM客户端访问包含敏感信息的Excel文件。

信息

分类

数据库与文件