Skip to main content
Glama
Data File Analysis MCP Server

Data File Analysis MCP Server

by llm-guy

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 file

Installation

  1. Install uv (if not already installed):

    curl -LsSf https://astral.sh/uv/install.sh | sh
  2. Create and activate virtual environment:

    uv venv
    source .venv/bin/activate
  3. 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

  1. summarize_csv_file(filename: str)

    • Summarizes a CSV file by reporting its number of rows and columns

    • Example: summarize_csv_file("sample.csv")

  2. 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

  1. Create a new file in the tools/ directory

  2. Import the MCP server instance: from server import mcp

  3. Define your tool function with the @mcp.tool() decorator

  4. Import the new tool module in main.py

Adding New File Formats

  1. Add utility functions in utils/file_reader.py

  2. Create corresponding tools in the tools/ directory

  3. 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.

Available Tools

2 tools
summarize_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

    B3.3/5.0

    Scored across 2 tools

    Disambiguation3/5

    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.

    Naming Consistency4/5

    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.

    Tool Count3/5

    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.

    Completeness2/5

    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

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      An 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.
      -
    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables AI models to interact with local CSV and Parquet data through MCP tools, providing summarization and analysis capabilities.
      -
    • A
      license
      A
      quality
      C
      maintenance
      Enables 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.
      7
      47 PyPI
      3
      MIT