Skip to main content

AI Data Analysis MCP

Project description

Zaturn: Your Co-Pilot For Data Analytics & BI

https://github.com/user-attachments/assets/d42dc433-e5ec-4b3e-bef0-5cfc097396ab

Zaturn is an open source, AI-powered data analysis/BI tool that can connect to your data sources, run SQL queries on it, and give you useful insights. Think of it like vibe data analysis, in the spirit of vibe coding. Currently Zaturn is available as an MCP (Model Context Protocol) Server that can be integrated into your favorite MCP Client (Claude, Cursor, etc.) A full fledged notebook interface is on the roadmap.

Features:

Multiple Data Sources

Zaturn can currently connect to the following data sources:

  • SQL Databases: PostgreSQL, SQLite, DuckDB, MySQL
  • Files: CSV, Parquet

Connectors for more data sources are being added.

Visualizations

In addition to providing tabular and textual summaries, Zaturn can also generate the following image visualizations

  • Scatter and Line Plots
  • Histograms
  • Strip and Box Plots
  • Bar Plots

NOTE: The visuals will be shown only if your MCP client supports image rendering (e.g. Claude Desktop)

If you MCP client does not support images (e.g. Cursor) add the --noimg argument in the MCP config. Then the plots will be stored as files and the file location will be returned. You can view the plots with your file browser.

More visualization capabilities are being added.

How Does Zaturn Work?

The naivest way to have an LLM analyze your data is to upload a dataset with a prompt. But that won't get you far, because AI has context window limitations, and it can only go through a few thousand rows at the best. Also, LLM's are not great at doing math.

Using an MCP like Zaturn will keep your data where it is, and enable AI to draft and run SQL queries on the data. The LLM now processes only the queries and results instead of your entire dataset.

Installation & Setup

  1. Install uv

  2. Install Zaturn with uv:

uv tool install zaturn
  1. Add to MCP config, with data sources:
"mcpServers": {
  "zaturn": {
    "command": "zaturn_mcp",
    "args": [
      "postgresql://username:password@host:port/dbname",
      "mysql+pymysql://username:password@host:3306/dbname",
      "sqlite:////full/path/to/sample_dbs/northwind.db",
      "/full/path/to/sample_dbs/titanic.parquet",
      "/full/path/to/sample_dbs/ny_aq.csv",
      "/full/path/to/sample_dbs/duckdb_sample.duckdb"
    ]
  },
}

OR add a sources.txt to the Zaturn config directory:

postgresql://username:password@host:port/dbname
mysql+pymysql://username:password@host:3306/dbname
sqlite:////full/path/to/sample_dbs/northwind.db
/full/path/to/sample_dbs/titanic.parquet
/full/path/to/sample_dbs/ny_aq.csv
/full/path/to/sample_dbs/duckdb_sample.duckdb

This file needs to be at ~/.config/zaturn/sources.txt on Linux/MacOS and at %APPDATA%\zaturn\sources.txt on Windows.

If your MCP client does not support image rendering, add the --noimg argument:

...
    "args": [
      "--noimg",
      "mysql+pymysql://username:password@host:3306/dbname",
...
  1. Set a system prompt if your LLM/IDE allows you to:
You are a helpful data analysis assistant. Use only the tool provided data sources to process user inputs. Do not use external sources or your own knowledge base.
  1. Ask a question and watch the magic:
User: List the top 5 customers by revenue for Northwind
AI: 
The top 5 customers by revenue for Northwind are:

1. B's Beverages with a revenue of $6,154,115.34
2. Hungry Coyote Import Store** with a revenue of $5,698,023.67
3. Rancho grande with a revenue of $5,559,110.08
4. Gourmet Lanchonetes with a revenue of $5,552,597.90
5. Ana Trujillo Emparedados y helados with a revenue of $5,534,356.6

Roadmap

  • Support for more data source types
  • More data visualizations
  • Predictive analysis and forecasting, e.g.:
Based on the revenue of the last 3 months, forecast next month's revenue.
  • Generate Presentations & PDFs
Manager: 
  I need a presentation to show the boss. Can you do it by EOD?
Analyst: 
  EOD?! Are you still in the 2010s? 
  I can get it done right now. Actually, you can do it right now.
  You know what? The boss can do it right now.
  • A native notebook interface

If you have any specific requirements please feel free to raise an issue.

Example Dataset Credits

The pokemon dataset compiled by Sarah Taha and PokéAPI has been included under the CC BY-NC-SA 4.0 license for demonstration purposes.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zaturn-0.1.2.tar.gz (137.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zaturn-0.1.2-py3-none-any.whl (44.2 kB view details)

Uploaded Python 3

File details

Details for the file zaturn-0.1.2.tar.gz.

File metadata

  • Download URL: zaturn-0.1.2.tar.gz
  • Upload date:
  • Size: 137.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.12

File hashes

Hashes for zaturn-0.1.2.tar.gz
Algorithm Hash digest
SHA256 82bd7792aa81f4988e48d7b727b9b1d620dfc3796443c99bc45c0eb31bde0462
MD5 ecda2644ac2da83f47c3c402d5967ad8
BLAKE2b-256 27d877ccd44103405f271a91756bb89e451db10912272891f0a43dedf653629c

See more details on using hashes here.

File details

Details for the file zaturn-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: zaturn-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 44.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.12

File hashes

Hashes for zaturn-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b02ba515dc00094ea57d686c2e40a93b90e4be8ae31d3cdcf74957012e791942
MD5 89dcdc51330889fdc1d839a308f70f34
BLAKE2b-256 5b62e49d68edcc9cca5f678f39d937fb0d903a336490aec38b31f6aa404ebcbf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page