使用说明
项目简介
本仓库实现了一个基于 Model Context Protocol (MCP) 的服务器,专注于处理 CSV 和 XLSX 电子表格文件。它提供了一组工具,允许用户通过 LLM 或 API 接口,以只读方式查看表格信息、预览数据、进行筛选和排序操作。所有操作结果均以 Markdown 格式的表格返回,方便 LLM 理解和展示。
主要功能点
- 查看表格信息和预览: 获取表格文件的基本信息(行数、列数)并预览指定行数的数据。
- 筛选表格数据: 根据指定的列、运算符和值,筛选表格中的行数据。支持等于、不等于、大于、小于、包含等多种条件。
- 排序表格数据: 按照指定的列和排序顺序(升序或降序)对表格数据进行排序。
- 支持 CSV 和 XLSX 文件: 能够处理常见的 CSV 和 XLSX 格式的电子表格文件。
- Markdown 格式输出: 所有数据操作的结果都以易于阅读和解析的 Markdown 表格形式返回。
- 写入 XLSX 新 Sheet: 支持将数据写入新的 XLSX 文件或已存在 XLSX 文件的新 Sheet 页,并支持自定义样式。
安装步骤
- 安装 Node.js: 确保已安装 Node.js v20 或更高版本。
- 安装 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) 提供功能。客户端可以调用以下工具来操作电子表格数据:
-
'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" } -
'filter_spreadsheet': 筛选表格数据。
- 参数 'filePath': 表格文件路径。
- 参数 'column': 要筛选的列名。
- 参数 'operator': 筛选运算符,可选值包括 "eq", "neq", "gt", "lt", "gte", "lte", "contains"。
- 参数 'value': 筛选值 (字符串或数字)。
- 参数 'rows' (可选): 返回的最大行数,默认为 10 行,最大 100 行。
-
'sort_spreadsheet': 排序表格数据。
- 参数 'filePath': 表格文件路径。
- 参数 'column': 要排序的列名。
- 参数 'order' (可选): 排序顺序,可选值 "asc" (升序) 或 "desc" (降序),默认为 "asc"。
- 参数 'rows' (可选): 返回的最大行数,默认为 10 行,最大 100 行。
-
'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' 传输协议,通过标准输入/输出与客户端通信。
信息
分类
数据库与文件