使用说明

项目简介

本仓库实现了一个基于 Model Context Protocol (MCP) 的服务器,专注于处理 CSV 和 XLSX 电子表格文件。它提供了一组工具,允许用户通过 LLM 或 API 接口,以只读方式查看表格信息、预览数据、进行筛选和排序操作。所有操作结果均以 Markdown 格式的表格返回,方便 LLM 理解和展示。

主要功能点

  • 查看表格信息和预览: 获取表格文件的基本信息(行数、列数)并预览指定行数的数据。
  • 筛选表格数据: 根据指定的列、运算符和值,筛选表格中的行数据。支持等于、不等于、大于、小于、包含等多种条件。
  • 排序表格数据: 按照指定的列和排序顺序(升序或降序)对表格数据进行排序。
  • 支持 CSV 和 XLSX 文件: 能够处理常见的 CSV 和 XLSX 格式的电子表格文件。
  • Markdown 格式输出: 所有数据操作的结果都以易于阅读和解析的 Markdown 表格形式返回。
  • 写入 XLSX 新 Sheet: 支持将数据写入新的 XLSX 文件或已存在 XLSX 文件的新 Sheet 页,并支持自定义样式。

安装步骤

  1. 安装 Node.js: 确保已安装 Node.js v20 或更高版本。
  2. 安装 npm 依赖: 在仓库根目录下运行以下命令安装项目依赖:
    npm install

服务器配置

MCP 客户端需要配置以下信息以连接到此 MCP 服务器。请将以下 JSON 配置添加到您的 MCP 客户端配置中:

{
  "serverName": "Spreadsheet MCP Server",  // MCP 服务器名称,与 server.ts 中定义的一致
  "command": "npm",                     // 启动服务器的命令,这里使用 npm
  "args": ["run", "start"]              // 启动服务器命令的参数,运行 package.json 中定义的 start 脚本
                                        // "start" 脚本通常会执行 'node ./src/server.ts' 来启动服务器
}

配置说明:

  • 'serverName': 服务器的名称,用于在 MCP 客户端中标识和调用。
  • 'command': 启动服务器进程的可执行命令。由于项目使用 npm 管理,并提供了 'npm run start' 启动命令,因此这里设置为 'npm'。
  • 'args': 传递给 'command' 的参数,用于执行特定的启动脚本。这里使用 '["run", "start"]' 来运行 'package.json' 中定义的 'start' 脚本,该脚本负责启动 'src/server.ts' 中的 MCP 服务器。

基本使用方法

此 MCP 服务器通过工具 (Tools) 提供功能。客户端可以调用以下工具来操作电子表格数据:

  1. 'view_spreadsheet': 查看表格信息和预览。

    • 参数 'filePath': 表格文件路径。
    • 参数 'rows' (可选): 预览的行数,默认为 10 行。

    例如,客户端可以发送以下 JSON-RPC 请求调用 'view_spreadsheet' 工具:

    {
      "jsonrpc": "2.0",
      "method": "call",
      "params": {
        "tool_name": "view_spreadsheet",
        "arguments": {
          "filePath": "/path/to/your/spreadsheet.csv",
          "rows": 5
        }
      },
      "id": "1"
    }
  2. 'filter_spreadsheet': 筛选表格数据。

    • 参数 'filePath': 表格文件路径。
    • 参数 'column': 要筛选的列名。
    • 参数 'operator': 筛选运算符,可选值包括 "eq", "neq", "gt", "lt", "gte", "lte", "contains"。
    • 参数 'value': 筛选值 (字符串或数字)。
    • 参数 'rows' (可选): 返回的最大行数,默认为 10 行,最大 100 行。
  3. 'sort_spreadsheet': 排序表格数据。

    • 参数 'filePath': 表格文件路径。
    • 参数 'column': 要排序的列名。
    • 参数 'order' (可选): 排序顺序,可选值 "asc" (升序) 或 "desc" (降序),默认为 "asc"。
    • 参数 'rows' (可选): 返回的最大行数,默认为 10 行,最大 100 行。
  4. 'update_spreadsheet_with_new_sheet': 将数据写入新的 XLSX sheet。

    • 参数 'filePath': xlsx 文件路径。
    • 参数 'sheetName': 新建 sheet 的名称。
    • 参数 'headers': 表头数组。
    • 参数 'data': 要写入的新数据(对象数组)。
    • 参数 'options' (可选): 表格样式选项,例如 'headerStyle', 'rowStyle', 'border' 等。

注意:

  • 文件路径 ('filePath') 需要是服务器能够访问的路径。
  • 所有工具操作都是只读的,除了 'update_spreadsheet_with_new_sheet' 工具用于写入 XLSX 文件。
  • 服务器默认使用 'stdio' 传输协议,通过标准输入/输出与客户端通信。

信息

分类

数据库与文件