Data File Analysis MCP Server
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
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/llm-guy/mcp_server_public'
If you have feedback or need assistance with the MCP directory API, please join our Discord server