首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
首页
学习
活动
专区
圈层
工具
MCP广场
MCP广场 >详情页
excel-reader-mcp2025-05-217分享
github
这是一个基于模型上下文协议(MCP)的服务器,用于读取 Excel 文件,支持自动分块处理和分页功能。该服务器采用 SheetJS 库和 TypeScript 语言构建。
By ArchimedesCrypto
2025-05-217
github
详情内容

MCP Excel 读取器

smithery 徽章
这是一个用于读取 Excel 文件的 Model Context Protocol (MCP) 服务器,支持自动分块和分页。使用 SheetJS 和 TypeScript 构建,该工具通过将大文件自动拆分为可管理的小块来帮助您高效处理大型 Excel 文件。

Excel 读取器 MCP 服务器

功能

  • 📊 自动大小限制读取 Excel 文件 (.xlsx, .xls)
  • 🔄 大数据集的自动分块
  • 📑 表格选择与行分页
  • 📅 正确的日期处理
  • ⚡ 针对大文件优化
  • 🛡️ 错误处理与验证

安装

通过 Smithery 安装

要通过 Smithery 自动为 Claude Desktop 安装 Excel 读取器:

npx -y @smithery/cli install @ArchimedesCrypto/excel-reader-mcp-chunked --client claude

作为 MCP 服务器安装

  1. 全局安装:
npm install -g @archimdescrypto/excel-reader
  1. 添加到您的 MCP 设置文件中(通常位于 ~/.config/claude/settings.json 或等效位置):
{
  "mcpServers": {
    "excel-reader": {
      "command": "excel-reader",
      "env": {}
    }
  }
}

开发环境

  1. 克隆仓库:
git clone https://github.com/ArchimdesCrypto/mcp-excel-reader.git
cd mcp-excel-reader
  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build

使用

Excel 读取器提供了一个名为 read_excel 的工具,具有以下参数:

interface ReadExcelArgs {
  filePath: string;      // Path to Excel file
  sheetName?: string;    // Optional sheet name (defaults to first sheet)
  startRow?: number;     // Optional starting row for pagination
  maxRows?: number;      // Optional maximum rows to read
}

// Response format
interface ExcelResponse {
  fileName: string;
  totalSheets: number;
  currentSheet: {
    name: string;
    totalRows: number;
    totalColumns: number;
    chunk: {
      rowStart: number;
      rowEnd: number;
      columns: string[];
      data: Record<string, any>[];
    };
    hasMore: boolean;
    nextChunk?: {
      rowStart: number;
      columns: string[];
    };
  };
}

基本用法

当与 Claude 或其他 MCP 兼容的 AI 一起使用时:

Read the Excel file at path/to/file.xlsx

AI 将使用该工具读取文件,并自动处理大文件的分块。

功能

  1. 自动分块

    • 自动将大文件分割成可管理的小块
    • 默认块大小为 100KB
    • 提供分页所需的元数据
  2. 表格选择

    • 按名称读取特定表格
    • 如果未指定,默认读取第一个表格
  3. 行分页

    • 通过 startRow 和 maxRows 控制要读取的行
    • 获取下一个块的信息以进行连续读取
  4. 错误处理

    • 验证文件存在性和格式
    • 提供清晰的错误消息
    • 优雅地处理格式不正确的 Excel 文件

通过 SheetJS 功能扩展

Excel 读取器基于 SheetJS 构建,可以利用其强大的功能进行扩展:

可用扩展

  1. 公式处理

    // 启用公式解析
    const wb = XLSX.read(data, {
      cellFormula: true,
      cellNF: true
    });
    
  2. 单元格格式化

    // 访问单元格样式和格式
    const styles = Object.keys(worksheet)
      .filter(key => key[0] !== '!')
      .map(key => ({
        cell: key,
        style: worksheet[key].s
      }));
    
  3. 数据验证

    // 访问数据验证规则
    const validation = worksheet['!dataValidation'];
    
  4. 表格功能

    • 合并单元格:worksheet['!merges']
    • 隐藏行/列:worksheet['!rows'], worksheet['!cols']
    • 表格保护:worksheet['!protect']

更多功能和详细文档,请访问 SheetJS 文档

贡献

  1. 叉分仓库
  2. 创建你的特性分支 (git checkout -b feature/amazing-feature)
  3. 提交你的更改 (git commit -m '添加了一些惊人的功能')
  4. 推送到该分支 (git push origin feature/amazing-feature)
  5. 打开一个拉取请求

许可证

本项目根据 MIT 许可证发布 - 详情请参阅 LICENSE 文件。

致谢

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档