iramk11/claude-data-buddy
If you are the rightful owner of claude-data-buddy 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.
Claude Data Buddy is a Model Context Protocol (MCP) server designed to make data analysis conversational and accessible through natural language interfaces.
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
- Clone the repository:
git clone <repository-url>
cd claude-data-buddy
- 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:
- Use the provided launcher script:
./run_mcp_server.sh
- 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 summaryhead: First few rowscolumns: Column informationinfo: Dataset informationshape: Dimensionsnulls: 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
- Built with FastMCP
- Uses Model Context Protocol