- Home
- MCP servers
- Excel Analyser
Excel Analyser
- javascript
2
GitHub Stars
javascript
Language
5 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Excel Analyser MCP is a Node.js server that reads and analyzes Excel (.xlsx), CSV (.csv), and JSON (.json) files. It supports multiple transport protocols for flexible integration with AI agents and automation workflows, and it processes large datasets efficiently through streaming, chunking, and column/field filtering.
How to use
To use the server you connect an MCP client via HTTP, stdio, or (deprecated) SSE. Choose the transport that fits your workflow. Use HTTP when you want a hosted or cloud-enabled endpoint. Use stdio for local, CLI-based integrations. For large datasets, rely on chunked access to process data in manageable portions and selectively fetch only the columns you need.
Practical usage patterns include: first previewing a file with a read tool to understand its structure, then iterating through the data in chunks with get_chunk or get_json_chunk for batch processing. For JSON data, you can read a quick preview with read_json, search with query_json, and stream through the data with get_json_chunk. For Excel/CSV, read_excel returns a preview and metadata for large files.
Typical flows you can implement with an MCP client: 1) Analyze an Excel or CSV file to get column names and a sample of rows. 2) Process a large JSON file in chunks to categorize or transform records. 3) Search a massive JSON dataset for entries that match a condition using query_json and then fetch matching records. 4) Stream data in real time from a server using the HTTP or SSE transports when you need live updates.
How to install
Prerequisites: Node.js (v18 or higher is recommended). Ensure you have a package manager installed (npm or yarn).
Install dependencies for the MCP server project:
npm install
# or
yarn install
Cloud deployment and hosting
You can deploy an HTTP-enabled MCP server to the cloud for public access. The deployment example uses a ready HTTP endpoint to connect clients.
Example cloud endpoint configuration for an MCP client (HTTP):
{
"mcpServers": {
"Excel Analyser MCP (Cloud)": {
"type": "http",
"url": "https://your-app.railway.app/mcp"
}
}
}
Running the MCP server locally
You can run the MCP server locally with a direct Node invocation. This starts the standard I/O transport by default.
Start the server using Node.js directly from your project root:
node excel-analyser-mcp.js
Security and notes
Important notes: absolute file paths are required for local file access. The server supports multiple file formats: .xlsx, .csv, and .json. JSON files must contain an array of objects. Chunked operations read the first sheet of Excel files by default and paginate JSON results when there are more than 1000 entries.
For JSON, you can adjust the chunk size (default 1000) and request specific fields to minimize memory usage during streaming.
Testing and development
Run tests to verify functionality for both Excel/CSV and JSON processing, as well as transport connectivity and deployment readiness.
# Test file processing
npm test
# JSON tests
npm run test-json
# Run all tests
npm run test-all
# Start HTTP server for testing (in separate terminal)
npm run start:http
# Test HTTP connectivity (in another terminal)
npm run test-http
Available tools
read_excel
Reads an Excel or CSV file and returns a preview of the first 100 rows and metadata for large files, or the full data for small files.
get_chunk
Fetches a chunk of rows from a CSV or Excel file with optional column filtering, enabling batch processing of large files.
read_json
Efficiently reads a large JSON file to provide a quick preview and metadata without loading the entire file into memory.
query_json
Performs a memory-efficient search on a large JSON file by streaming and returning matching entries.
get_json_chunk
Fetches a specific chunk of entries from a JSON file to enable iterative analysis in chunks.