Mcp Analyst — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Analyst (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Transform Claude (or ChatGPT) into a powerful data analyst with SQL capabilities. Import CSVs or Google Sheets, run complex queries, and get instant insights - all through natural language.
This MCP server lets AI assistants analyze your data by:
Simple Example:
You: "Load sales_2024.csv as sales and show me the top 10 products by revenue"
Claude/ChatGPT:
1. Imports your CSV into a DuckDB database
2. Writes SQL: SELECT product, SUM(revenue) FROM sales GROUP BY product ORDER BY revenue DESC LIMIT 10
3. Executes the query
4. Shows results with insights: "Your top product is Widget A with $50K revenue..."Option 1: Docker (Recommended)
# Clone or download this repo
cd mcp-data-analyst
# Start the container
./docker-start.sh
# Falls das File nicht ausführbar ist. führe im Terminal folgenden Befehl aus:
chmod +x docker-start.sh
# Danach starte es erneut:
./docker-start.sh
# Follow the instructions to configure Claude/ChatGPTOption 2: Direct Python Install
# Clone or download this repo
cd mcp-data-analyst
# Install dependencies
pip install -r requirements.txt
# Run the server
python server.py#### For Claude Desktop
Edit the config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonIf using Docker:
{
"mcpServers": {
"mcp-data-analyst": {
"command": "docker",
"args": ["exec", "-i", "data-analyst-mcp", "python3", "server.py"]
}
}
}If using direct install:
{
"mcpServers": {
"mcp-data-analyst": {
"command": "python3",
"args": ["/absolute/path/to/mcp-data-analyst/server.py"]
}
}
}#### For ChatGPT Desktop
Edit the config file:
~/Library/Application Support/ChatGPT/config.json%APPDATA%\ChatGPT\config.jsonUse the same JSON format as Claude Desktop above.
For cloud storage with MotherDuck (handles billions of rows):
# Copy the example
cp .env.example .env
# Edit .env and add your token
nano .envAdd your MotherDuck token:
MOTHERDUCK_TOKEN=your_token_here
MEMORY_LIMIT=4G
CPU_LIMIT=2.0Get a free token at motherduck.com (10GB free tier).
Without MotherDuck: Data is stored in-memory (fast, but session-only).
Completely quit and restart Claude Desktop or ChatGPT Desktop.
You: "Load example_data.csv as customers and show me the data"The AI will import the file and show you the results!
Full SQL support including:
| Rows | CSV Size | Mode | Performance |
|---|---|---|---|
| < 1M | ~100MB | In-memory | ⚡ Instant |
| 1-10M | ~1GB | In-memory | ✅ Fast (seconds) |
| 10M+ | 1GB+ | MotherDuck | ☁️ Optimized (cloud) |
Recommendation: Use in-memory for < 10M rows, MotherDuck for larger datasets.
You: "Load my sales data from https://example.com/sales.csv as sales"
AI: ✓ Imported 50,000 rows into 'sales' table
You: "What are the top 5 products by revenue?"
AI: [Writes and executes SQL, shows results with insights]
You: "Show me monthly revenue trends"
AI: [Creates time-series analysis with DATE_TRUNC]You: "Load sales.csv as sales and products.csv as products"
AI: ✓ Imported both tables
You: "Join these tables and show me which product categories generate the most revenue"
AI: [Automatically identifies the relationship (product_id), performs JOIN, provides analysis]You: "Analyze customer behavior and create segments based on purchase patterns"
AI: [Performs multi-step analysis with CTEs, window functions, and provides business insights]You: "Load this Google Sheet: https://docs.google.com/spreadsheets/d/abc123/edit"
AI: ✓ Converted to CSV and imported
You: "Calculate the correlation between marketing spend and sales"
AI: [Performs statistical analysis]# Start server
./docker-start.sh
# Stop server
./docker-stop.sh
# View logs
docker-compose logs -f
# Restart
docker-compose restart
# Stop and remove
docker-compose down
# Rebuild
docker-compose down && docker-compose up -d --build~ or relative)docker psdocker-compose logschmod +x docker-start.sh docker-stop.sh setup.shFor large datasets (> 10M rows):
Option 1: Increase Docker memory in docker-compose.yml:
memory: 8G # or 16G
cpus: '4.0'Option 2: Use MotherDuck (recommended for > 10M rows):
.env: MOTHERDUCK_TOKEN=your_tokendocker-compose restart┌─────────────────────────────────────┐
│ Claude Desktop / ChatGPT Desktop │
│ (Natural Language Interface) │
└─────────────────┬───────────────────┘
│ MCP Protocol
▼
┌─────────────────────────────────────┐
│ MCP Data Analyst Server (Python) │
│ - 6 Tools (FastMCP) │
│ - CSV Import & SQL Query │
└─────────────────┬───────────────────┘
│
▼
┌─────────────────────────────────────┐
│ DuckDB Database │
│ - In-Memory (< 10M rows) │
│ - MotherDuck Cloud (billions) │
└─────────────────────────────────────┘Edit docker-compose.yml:
deploy:
resources:
limits:
memory: 8G # Increase for large datasets
cpus: '4.0' # More CPU for faster processingLoad multiple CSVs:
You: "Load sales.csv, products.csv, and customers.csv"
AI: [Imports all three as separate tables]
You: "Show me how these tables relate to each other"
AI: [Analyzes schemas, identifies foreign keys, suggests JOINs]You: "Export the top 100 customers to a CSV file"
AI: [Executes query and saves to /data/top_customers.csv]The FastMCP framework makes it easy to add new tools:
@mcp.tool()
def my_custom_tool(param: str, count: int = 10) -> dict:
"""Description that appears to the AI"""
# Your logic here
return {"result": "..."}That's it! FastMCP handles validation, errors, and protocol details.
mcp-data-analyst/
├── server.py # Main MCP server (FastMCP)
├── requirements.txt # Python dependencies
├── Dockerfile # Container definition
├── docker-compose.yml # Docker orchestration
├── docker-start.sh # Easy start script
├── docker-stop.sh # Easy stop script
├── setup.sh # Direct install script
├── .env.example # Environment template
├── .gitignore # Git ignore rules
└── example_data.csv # Sample data for testingContributions welcome! Please:
MIT License - Free to use, modify, and distribute.
Built with:
If you find this useful, please star the repo! ⭐
Transform your AI assistant into a data analyst in 5 minutes! 📊✨
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.