MCP Excel Reader

local-only server

The server can only run on the client’s local machine because it depends on local resources.

MCP Excel 阅读器

一个模型上下文协议 (MCP) 服务器,用于读取 Excel 文件,并支持自动分块和分页。该工具基于 SheetJS 和 TypeScript 构建,可自动将大型 Excel 文件拆分为易于管理的块,从而帮助您高效地处理这些文件。

特征

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

安装

通过 Smithery 安装

要通过Smithery自动为 Claude Desktop 安装 Excel Reader:

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

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

特征

  1. 自动分块
    • 自动将大文件分割成可管理的块
    • 默认块大小为 100KB
    • 提供分页元数据
  2. 工作表选择
    • 按名称阅读特定工作表
    • 如果未指定,则默认为第一张表
  3. 行分页
    • 使用 startRow 和 maxRows 控制要读取哪些行
    • 获取下一个块信息以进行连续读取
  4. 错误处理
    • 验证文件存在和格式
    • 提供清晰的错误信息
    • 优雅地处理格式错误的 Excel 文件

使用 SheetJS 功能进行扩展

Excel 阅读器基于 SheetJS 构建,并可通过其强大的功能进行扩展:

可用扩展

  1. 公式处理
    // Enable formula parsing const wb = XLSX.read(data, { cellFormula: true, cellNF: true });
  2. 单元格格式
    // Access cell styles and formatting const styles = Object.keys(worksheet) .filter(key => key[0] !== '!') .map(key => ({ cell: key, style: worksheet[key].s }));
  3. 数据验证
    // Access data validation rules 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 'Add some amazing feature'
  4. 推送到分支( git push origin feature/amazing-feature
  5. 打开拉取请求

执照

该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。

致谢

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

通过自动分块和分页提供对大型 Excel 文件的有效处理,使用 MCP 实现无缝文件读取和管理功能,例如工作表选择和错误处理。

  1. Features
    1. Installation
      1. Installing via Smithery
      2. As an MCP Server
      3. For Development
    2. Usage
      1. Usage
        1. Basic Usage
        2. Features
      2. Extending with SheetJS Features
        1. Available Extensions
      3. Contributing
        1. License
          1. Acknowledgments
            ID: jr2ggpdk3a