Skip to main content
Glama
README.md4.04 kB
# 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: ```bash git clone <repository-url> cd claude-data-buddy ``` 2. Install dependencies: ```bash pip install -r requirements.txt ``` ## Usage ### Running the MCP Server The server can be run directly or integrated with Claude Desktop. #### Direct Execution: ```bash python main.py ``` #### Claude Desktop Integration: 1. Use the provided launcher script: ```bash ./run_mcp_server.sh ``` 2. Configure Claude Desktop by adding to your `claude_desktop_config.json`: ```json { "mcpServers": { "claude-data-buddy": { "command": "python", "args": ["/path/to/claude-data-buddy/main.py"] } } } ``` ### Using the MCP Client #### Demo Mode: ```python from client import MCPFileAnalyzerClient async def main(): client = MCPFileAnalyzerClient() await client.connect() await client.demo_mode() await client.disconnect() asyncio.run(main()) ``` #### Interactive Mode: ```python 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: ```python result = await client.call_tool("summarize_csv", {"file_name": "sample.csv"}) print(result) ``` ## Acknowledgments - Built with [FastMCP](https://github.com/jlowin/fastmcp) - Uses [Model Context Protocol](https://modelcontextprotocol.io/)

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