Data File Analysis MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Data File Analysis MCP Server Can you summarize the sample CSV file?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Basic MCP Server for Data File Analysis
A Model Context Protocol (MCP) server that provides tools for analyzing CSV and Parquet files.
Features
CSV File Analysis: Summarize CSV files by reporting row and column counts
Parquet File Analysis: Summarize Parquet files by reporting row and column counts
Sample Data: Includes sample user data in both CSV and Parquet formats
Related MCP server: MCP File Analyzer
Project Structure
mix_server/
│
├── data/ # Sample CSV and Parquet files
│ ├── sample.csv
│ └── sample.parquet
│
├── tools/ # MCP tool definitions
│ ├── __init__.py
│ ├── csv_tools.py
│ └── parquet_tools.py
│
├── utils/ # Reusable file reading logic
│ ├── __init__.py
│ └── file_reader.py
│
├── server.py # MCP server instance
├── main.py # Entry point for the MCP server
├── generate_parquet.py # Script to convert CSV to Parquet
└── README.md # This fileInstallation
Install uv (if not already installed):
curl -LsSf https://astral.sh/uv/install.sh | shCreate and activate virtual environment:
uv venv source .venv/bin/activateInstall dependencies:
uv add "mcp[cli]" pandas pyarrow
Usage
Running the Server
Start the MCP server:
uv run main.pyUsing with LM Studio
To use this MCP server with LM Studio, edit your mcp.json file and add:
This starts the MCP server for you.
{
"mcpServers": {
"mix_server": {
"command": "uv",
"args": [
"--directory",
"/path/to/your/mcp_server_public",
"run",
"main.py"
]
}
}
}Note: Replace /path/to/your/mcp_server_public with the actual path to your mcp_server_public directory.
Once loaded you should see all available tools for your local LLM to use.
Available Tools
summarize_csv_file(filename: str)
Summarizes a CSV file by reporting its number of rows and columns
Example:
summarize_csv_file("sample.csv")
summarize_parquet_file(filename: str)
Summarizes a Parquet file by reporting its number of rows and columns
Example:
summarize_parquet_file("sample.parquet")
Sample Data
The server includes sample user data with the following structure:
id: Unique identifier
name: User's full name
email: User's email address
signup_date: Date when the user signed up
Development
Adding New Tools
Create a new file in the
tools/directoryImport the MCP server instance:
from server import mcpDefine your tool function with the
@mcp.tool()decoratorImport the new tool module in
main.py
Adding New File Formats
Add utility functions in
utils/file_reader.pyCreate corresponding tools in the
tools/directoryImport the new tools in
main.py
Dependencies
mcp[cli]: Official MCP SDK and command-line tools
pandas: For reading CSV and Parquet files
pyarrow: Adds support for reading Parquet files via Pandas
License
This project is open source and available under the MIT License.
Available Tools
2 toolssummarize_csv_fileA
Summarize a CSV file by reporting its number of rows and columns. Args: filename: Name of the CSV file in the /data directory (e.g., 'sample.csv') Returns: A string describing the file's dimensions.
Inputs: filename (required). Returns: result
summarize_parquet_fileB
Summarize a Parquet file by reporting its number of rows and columns. Args: filename: Name of the Parquet file in the /data directory (e.g., 'sample.parquet') Returns: A string describing the file's dimensions.
Inputs: filename (required). Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 2 tools
The two tools are clearly distinct by file type (Parquet vs CSV), so an agent should be able to tell them apart when the file format is known. However, they share the identical purpose and structure (summarizing file dimensions), and there is no unified or generic tool to handle either format, which could cause confusion if an agent must guess the format.
Both tools follow the same verb_noun pattern (summarize_parquet_file, summarize_csv_file), sharing the identical 'summarize' verb and 'file' suffix. The only variation is the file format in the middle, which is consistent and predictable, though the format should ideally be a parameter rather than baked into the tool name.
With only 2 tools, this sits at the boundary of 'too few.' It's not a single trivial tool, but two near-identical tools covering only file summarization feels thin for a 'Data File Analysis' server, which implies a much broader analysis scope than just counting rows and columns.
For a server named 'Data File Analysis,' this surface is severely limited: there is no way to read, sample, filter, compute statistics, inspect columns/types, or join files. Even for a narrow summarization-only scope, neither tool supports inspecting column schemas or data previews, leaving significant gaps that will cause agent failures for common analysis tasks.
Maintenance
Related MCP Connectors
Query, join, profile, clean and convert CSV/JSON/Parquet with server-side DuckDB over MCP.
Search, sample and query open reproducible datasets published as immutable Parquet with schemas.
Profile, clean and validate CSV/Excel data: schemas, dates, numbers, duplicates. Never guesses.
Open, inspect, filter, edit and convert xlsx and csv files from your AI chat. Processing is local.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables conversational analysis of CSV and Parquet files through natural language, providing statistics, summaries, data type information, and comprehensive multi-step data analysis.-
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables the analysis of CSV and Parquet files by providing tools for statistical summaries, data previews, and structure exploration. It allows users to query local datasets and create sample data using natural language.-
- FlicenseNot gradedqualityDmaintenanceEnables AI models to interact with local CSV and Parquet data through MCP tools, providing summarization and analysis capabilities.-
- AlicenseAqualityCmaintenanceEnables LLMs to profile and analyze tabular data files (CSV, Parquet, Excel, JSON) by extracting schema, statistics, data quality issues, and dtype suggestions, returning structured JSON.747 PyPI3MIT