llm-guy/mcp_server_public
If you are the rightful owner of mcp_server_public and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
A Model Context Protocol (MCP) server designed for analyzing CSV and Parquet files, providing essential tools for data file analysis.
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 file
Installation
-
Install uv (if not already installed):
curl -LsSf https://astral.sh/uv/install.sh | sh -
Create and activate virtual environment:
uv venv source .venv/bin/activate -
Install dependencies:
uv add "mcp[cli]" pandas pyarrow
Usage
Running the Server
Start the MCP server:
uv run main.py
Using 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/directory - Import the MCP server instance:
from server import mcp - Define your tool function with the
@mcp.tool()decorator - Import the new tool module in
main.py
Adding New File Formats
- Add utility functions in
utils/file_reader.py - Create corresponding tools in the
tools/directory - Import 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.