Skip to main content
Glama

Claude Data Buddy

Your friendly data analysis assistant powered by Claude!

A Model Context Protocol (MCP) server for analyzing CSV and Parquet files with natural language interface support. Claude Data Buddy makes data analysis conversational and accessible through Claude Desktop integration - just ask questions about your data!

Features

  • CSV Analysis: Summarize, describe, and analyze CSV files

  • Parquet Support: Full support for Parquet file format

  • Comprehensive Analysis: Multi-step analysis including statistics, data types, null counts, and sample data

  • Natural Language Interface: Works seamlessly with Claude Desktop for conversational data analysis

  • MCP Client: Full-featured asynchronous client with demo and interactive modes

  • Error Handling: Robust error handling and validation

Requirements

  • Python 3.8+

  • CUDA-compatible GPU (optional, for certain operations)

Installation

  1. Clone the repository:

git clone <repository-url>
cd claude-data-buddy
  1. Install dependencies:

pip install -r requirements.txt

Usage

Running the MCP Server

The server can be run directly or integrated with Claude Desktop.

Direct Execution:

python main.py

Claude Desktop Integration:

  1. Use the provided launcher script:

./run_mcp_server.sh
  1. Configure Claude Desktop by adding to your claude_desktop_config.json:

{
  "mcpServers": {
    "claude-data-buddy": {
      "command": "python",
      "args": ["/path/to/claude-data-buddy/main.py"]
    }
  }
}

Using the MCP Client

Demo Mode:

from client import MCPFileAnalyzerClient

async def main():
    client = MCPFileAnalyzerClient()
    await client.connect()
    await client.demo_mode()
    await client.disconnect()

asyncio.run(main())

Interactive Mode:

from client import MCPFileAnalyzerClient

async def main():
    client = MCPFileAnalyzerClient()
    await client.connect()
    await client.interactive_mode()
    await client.disconnect()

asyncio.run(main())

Project Structure

claude-data-buddy/
├── main.py                      # MCP server implementation
├── client.py                    # MCP client with demo/interactive modes
├── requirements.txt             # Python dependencies
├── run_mcp_server.sh            # Server launcher script
├── claude_desktop_config.json   # Claude Desktop configuration example
├── data_files/                  # Sample data files
│   ├── sample.csv
│   ├── sample.parquet
│   └── ...
└── README.md                    # This file

Available Tools

list_data_files

Lists all available CSV and Parquet files in the data directory.

summarize_csv

Provides a comprehensive summary of a CSV file including:

  • Row and column counts

  • Column names and data types

  • Sample data (head)

  • Basic statistics

summarize_parquet

Similar to summarize_csv but for Parquet files.

analyze_csv

Performs various analysis operations:

  • describe: Statistical summary

  • head: First few rows

  • columns: Column information

  • info: Dataset information

  • shape: Dimensions

  • nulls: Null value counts

comprehensive_analysis

Performs a complete multi-step analysis including:

  • Summary statistics

  • Data types

  • Null value analysis

  • Sample data

  • Memory usage

MCP Integration

This server implements the Model Context Protocol, allowing it to work with:

  • Claude Desktop

  • Custom MCP clients

  • Any MCP-compatible application

Example Usage

Via Claude Desktop:

User: "Summarize sample.csv as a CSV file"
Claude: [Calls summarize_csv tool and returns results]

Via Python Client:

result = await client.call_tool("summarize_csv", {"file_name": "sample.csv"})
print(result)

Acknowledgments

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

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/iramk11/claude-data-buddy'

If you have feedback or need assistance with the MCP directory API, please join our Discord server