MCP Excel Reader

Leia arquivos grandes do Excel com suporte automático a chunking e paginação.

Documentação

MseeP.ai Security Assessment Badge

MCP Excel Reader

smithery badge Um servidor Model Context Protocol (MCP) para leitura de arquivos Excel com suporte automático a divisão em partes e paginação. Construído com SheetJS e TypeScript, esta ferramenta ajuda você a lidar com arquivos Excel grandes de forma eficiente, dividindo-os automaticamente em partes gerenciáveis.

Excel Reader MCP server

Recursos

  • 📊 Leitura de arquivos Excel (.xlsx, .xls) com limites automáticos de tamanho
  • 🔄 Divisão automática em partes para grandes conjuntos de dados
  • 📑 Seleção de planilhas e paginação de linhas
  • 📅 Tratamento adequado de datas
  • ⚡ Otimizado para arquivos grandes
  • 🛡️ Tratamento de erros e validação

Instalação

Instalação via Smithery

Para instalar o Excel Reader para Claude Desktop automaticamente via Smithery:

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

Como Servidor MCP

  1. Instale globalmente:
npm install -g @archimdescrypto/excel-reader
  1. Adicione ao seu arquivo de configurações MCP (geralmente em ~/.config/claude/settings.json ou equivalente):
{
  "mcpServers": {
    "excel-reader": {
      "command": "excel-reader",
      "env": {}
    }
  }
}

Para Desenvolvimento

  1. Clone o repositório:
git clone https://github.com/ArchimdesCrypto/mcp-excel-reader.git
cd mcp-excel-reader
  1. Instale as dependências:
npm install
  1. Compile o projeto:
npm run build

Uso

Uso

O Excel Reader fornece uma única ferramenta read_excel com os seguintes parâmetros:

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[];
    };
  };
}

Uso Básico

Quando usado com Claude ou outra IA compatível com MCP:

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

A IA usará a ferramenta para ler o arquivo, lidando automaticamente com a divisão em partes para arquivos grandes.

Recursos

  1. Divisão Automática em Partes

    • Divide automaticamente arquivos grandes em partes gerenciáveis
    • Tamanho padrão de parte de 100KB
    • Fornece metadados para paginação
  2. Seleção de Planilhas

    • Leia planilhas específicas pelo nome
    • Usa a primeira planilha por padrão se não for especificada
  3. Paginação de Linhas

    • Controle quais linhas ler com startRow e maxRows
    • Obtenha informações da próxima parte para leitura contínua
  4. Tratamento de Erros

    • Valida a existência e o formato do arquivo
    • Fornece mensagens de erro claras
    • Lida com arquivos Excel malformados de forma graciosa

Estendendo com Recursos do SheetJS

O Excel Reader é construído sobre o SheetJS e pode ser estendido com seus recursos poderosos:

Extensões Disponíveis

  1. Tratamento de Fórmulas

    // Enable formula parsing
    const wb = XLSX.read(data, {
      cellFormula: true,
      cellNF: true
    });
    
  2. Formatação de Células

    // Access cell styles and formatting
    const styles = Object.keys(worksheet)
      .filter(key => key[0] !== '!')
      .map(key => ({
        cell: key,
        style: worksheet[key].s
      }));
    
  3. Validação de Dados

    // Access data validation rules
    const validation = worksheet['!dataValidation'];
    
  4. Recursos de Planilha

    • Células Mescladas: worksheet['!merges']
    • Linhas/Colunas Ocultas: worksheet['!rows'], worksheet['!cols']
    • Proteção de Planilha: worksheet['!protect']

Para mais recursos e documentação detalhada, visite a Documentação do SheetJS.

Contribuindo

  1. Faça um fork do repositório
  2. Crie sua branch de recurso (git checkout -b feature/amazing-feature)
  3. Faça commit das suas alterações (git commit -m 'Add some amazing feature')
  4. Envie para a branch (git push origin feature/amazing-feature)
  5. Abra um Pull Request

Licença

Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para detalhes.

Agradecimentos