Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Claude Data Buddysummarize the sales data CSV file"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-buddyInstall dependencies:
pip install -r requirements.txtUsage
Running the MCP Server
The server can be run directly or integrated with Claude Desktop.
Direct Execution:
python main.pyClaude Desktop Integration:
Use the provided launcher script:
./run_mcp_server.shConfigure 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 fileAvailable 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