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 henry@mcphub.com.
A Model Context Protocol (MCP) server designed for analyzing CSV and Parquet files, providing essential tools for data file analysis.
summarize_csv_file
Summarizes a CSV file by reporting its number of rows and columns.
summarize_parquet_file
Summarizes a Parquet file by reporting its number of rows and columns.
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.