MCP Excel Reader について
MCP Excel Reader は、Excel ファイルを読み取る MCP サーバーで、SheetJS と TypeScript で構築されています。大きなファイルを自動的に分割し、行単位のページング に対応しており、AI から表計算データを読ませたい利用者に適しています。
主な機能
- 01xlsx と xls ファイルの読み取り
- 02大容量ファイルの自動分割
- 03シート名によるシート選択
- 04開始行と最大行数によるページング
- 05日付データの処理
活用シーン
- 01AI アシスタントによる大規模な Excel データの読み取り
- 02表計算データのバッチ読み込み
- 03特定のシートと行範囲からのデータ抽出
MCP 対応
本プロジェクトは MCP サーバーであり、Excel ファイルの内容を読み取る read_excel ツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Excel Reader
自動チャンク分割とページネーションに対応した、Excel ファイルを読み取るための Model Context Protocol(MCP)サーバーです。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 サーバーとして
- グローバルにインストールします:
npm install -g @archimdescrypto/excel-reader
- MCP 設定ファイル(通常は
~/.config/claude/settings.jsonまたは同等のファイル)に追加します:
{
"mcpServers": {
"excel-reader": {
"command": "excel-reader",
"env": {}
}
}
}
開発環境向け
- リポジトリをクローンします:
git clone https://github.com/ArchimdesCrypto/mcp-excel-reader.git
cd mcp-excel-reader
- 依存関係をインストールします:
npm install
- プロジェクトをビルドします:
npm run build
使い方
使い方
Excel Reader は、以下のパラメーターを持つ単一のツール 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 はこのツールを使ってファイルを読み取り、大きなファイルのチャンク分割を自動的に処理します。
機能
-
自動チャンク分割
- 大きなファイルを扱いやすいチャンクに自動で分割します
- デフォルトのチャンクサイズは 100KB です
- ページネーション用のメタデータを提供します
-
シートの選択
- 名前を指定して特定のシートを読み取ります
- 指定がない場合は、最初のシートがデフォルトで選択されます
-
行のページネーション
- startRow と maxRows を使って読み取る行を制御します
- 続けて読み取るための次のチャンク情報を取得します
-
エラー処理
- ファイルの存在と形式を検証します
- 明確なエラーメッセージを表示します
- 形式が正しくない Excel ファイルも適切に処理します
SheetJS の機能で拡張する
Excel Reader は SheetJS を基盤としており、その強力な機能を使って拡張できます:
利用可能な拡張機能
-
数式の処理
// Enable formula parsing const wb = XLSX.read(data, { cellFormula: true, cellNF: true }); -
セルの書式設定
// Access cell styles and formatting const styles = Object.keys(worksheet) .filter(key => key[0] !== '!') .map(key => ({ cell: key, style: worksheet[key].s })); -
データ検証
// Access data validation rules const validation = worksheet['!dataValidation']; -
シートの機能
- 結合セル:
worksheet['!merges'] - 非表示の行/列:
worksheet['!rows']、worksheet['!cols'] - シートの保護:
worksheet['!protect']
- 結合セル:
その他の機能や詳しいドキュメントについては、SheetJS のドキュメントをご覧ください。
コントリビューション
- リポジトリをフォークします
- フィーチャーブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add some amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - Pull Request を作成します
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細は LICENSE ファイルをご覧ください。
謝辞
- SheetJS を使用して構築されています
- Model Context Protocol エコシステムの一部です
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
