zaturn 0.1.0__tar.gz → 0.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- zaturn-0.1.2/.gitignore +14 -0
- {zaturn-0.1.0/zaturn.egg-info → zaturn-0.1.2}/PKG-INFO +22 -18
- {zaturn-0.1.0 → zaturn-0.1.2}/README.md +20 -16
- zaturn-0.1.2/brand/logo.png +0 -0
- zaturn-0.1.2/brand/logo.svg +10 -0
- {zaturn-0.1.0 → zaturn-0.1.2}/pyproject.toml +11 -4
- zaturn-0.1.2/uv.lock +1377 -0
- {zaturn-0.1.0 → zaturn-0.1.2}/zaturn/config.py +8 -3
- zaturn-0.1.2/zaturn/example_data/all_pokemon_data.csv +1185 -0
- {zaturn-0.1.0 → zaturn-0.1.2/zaturn.egg-info}/PKG-INFO +22 -18
- {zaturn-0.1.0 → zaturn-0.1.2}/zaturn.egg-info/SOURCES.txt +6 -1
- {zaturn-0.1.0 → zaturn-0.1.2}/zaturn.egg-info/requires.txt +1 -0
- {zaturn-0.1.0 → zaturn-0.1.2}/zaturn.egg-info/top_level.txt +0 -1
- {zaturn-0.1.0 → zaturn-0.1.2}/LICENSE +0 -0
- {zaturn-0.1.0 → zaturn-0.1.2}/setup.cfg +0 -0
- {zaturn-0.1.0 → zaturn-0.1.2}/zaturn/__init__.py +0 -0
- {zaturn-0.1.0 → zaturn-0.1.2}/zaturn/core.py +0 -0
- {zaturn-0.1.0 → zaturn-0.1.2}/zaturn/query_utils.py +0 -0
- {zaturn-0.1.0 → zaturn-0.1.2}/zaturn/visualizations.py +0 -0
- {zaturn-0.1.0 → zaturn-0.1.2}/zaturn.egg-info/dependency_links.txt +0 -0
- {zaturn-0.1.0 → zaturn-0.1.2}/zaturn.egg-info/entry_points.txt +0 -0
zaturn-0.1.2/.gitignore
ADDED
@@ -1,11 +1,10 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: zaturn
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.2
|
4
4
|
Summary: AI Data Analysis MCP
|
5
5
|
Author-email: Karthik Devan <krtdvn@gmail.com>
|
6
6
|
Maintainer-email: Karthik Devan <krtdvn@gmail.com>
|
7
7
|
Project-URL: Homepage, https://github.com/kdqed/zaturn
|
8
|
-
Project-URL: Changelog, https://github.com/kdqed/zaturn/releases
|
9
8
|
Project-URL: Issues, https://github.com/kdqed/zaturn/issues
|
10
9
|
Project-URL: CI, https://github.com/kdqed/zaturn/actions
|
11
10
|
Requires-Python: >=3.11
|
@@ -21,12 +20,13 @@ Requires-Dist: pyarrow>=19.0.1
|
|
21
20
|
Requires-Dist: pymysql>=1.1.1
|
22
21
|
Requires-Dist: python-lsp-server>=1.12.2
|
23
22
|
Requires-Dist: seaborn>=0.13.2
|
23
|
+
Requires-Dist: setuptools>=78.1.0
|
24
24
|
Requires-Dist: sqlalchemy>=2.0.40
|
25
25
|
Requires-Dist: tabulate>=0.9.0
|
26
26
|
Dynamic: license-file
|
27
27
|
|
28
28
|
<p align="center">
|
29
|
-
<img src="brand/logo.png" width="128" height="128">
|
29
|
+
<img src="https://github.com/kdqed/zaturn/raw/main/brand/logo.png" width="128" height="128">
|
30
30
|
</p>
|
31
31
|
|
32
32
|
# Zaturn: Your Co-Pilot For Data Analytics & BI
|
@@ -68,23 +68,19 @@ Using an MCP like Zaturn will keep your data where it is, and enable AI to draft
|
|
68
68
|
## Installation & Setup
|
69
69
|
1. Install [uv](https://docs.astral.sh/uv/getting-started/installation/#installation-methods)
|
70
70
|
|
71
|
-
2.
|
71
|
+
2. Install [Zaturn](https://pypi.org/project/zaturn/) with uv:
|
72
72
|
```bash
|
73
|
-
|
73
|
+
uv tool install zaturn
|
74
74
|
```
|
75
75
|
|
76
76
|
3. Add to MCP config, with data sources:
|
77
77
|
```json
|
78
78
|
"mcpServers": {
|
79
79
|
"zaturn": {
|
80
|
-
"command": "
|
80
|
+
"command": "zaturn_mcp",
|
81
81
|
"args": [
|
82
|
-
"run",
|
83
|
-
"--directory",
|
84
|
-
"/path/to/downloaded/folder",
|
85
|
-
"mcp_server.py",
|
86
|
-
"mysql+pymysql://username:password@host:3306/dbname",
|
87
82
|
"postgresql://username:password@host:port/dbname",
|
83
|
+
"mysql+pymysql://username:password@host:3306/dbname",
|
88
84
|
"sqlite:////full/path/to/sample_dbs/northwind.db",
|
89
85
|
"/full/path/to/sample_dbs/titanic.parquet",
|
90
86
|
"/full/path/to/sample_dbs/ny_aq.csv",
|
@@ -94,10 +90,22 @@ $ git clone https://github.com/kdqed/zaturn.git
|
|
94
90
|
}
|
95
91
|
```
|
96
92
|
|
97
|
-
|
93
|
+
OR add a `sources.txt` to the Zaturn config directory:
|
94
|
+
```
|
95
|
+
postgresql://username:password@host:port/dbname
|
96
|
+
mysql+pymysql://username:password@host:3306/dbname
|
97
|
+
sqlite:////full/path/to/sample_dbs/northwind.db
|
98
|
+
/full/path/to/sample_dbs/titanic.parquet
|
99
|
+
/full/path/to/sample_dbs/ny_aq.csv
|
100
|
+
/full/path/to/sample_dbs/duckdb_sample.duckdb
|
101
|
+
```
|
102
|
+
|
103
|
+
This file needs to be at `~/.config/zaturn/sources.txt` on Linux/MacOS and at `%APPDATA%\zaturn\sources.txt` on Windows.
|
104
|
+
|
105
|
+
If your MCP client does not support image rendering, add the `--noimg` argument:
|
98
106
|
```json
|
99
107
|
...
|
100
|
-
|
108
|
+
"args": [
|
101
109
|
"--noimg",
|
102
110
|
"mysql+pymysql://username:password@host:3306/dbname",
|
103
111
|
...
|
@@ -113,10 +121,6 @@ You are a helpful data analysis assistant. Use only the tool provided data sourc
|
|
113
121
|
```
|
114
122
|
User: List the top 5 customers by revenue for Northwind
|
115
123
|
AI:
|
116
|
-
[04/08/25 15:16:47] INFO Processing request of type ListToolsRequest server.py:534
|
117
|
-
[04/08/25 15:16:51] INFO Processing request of type CallToolRequest server.py:534
|
118
|
-
[04/08/25 15:16:53] INFO Processing request of type CallToolRequest server.py:534
|
119
|
-
[04/08/25 15:16:55] INFO Processing request of type CallToolRequest server.py:534
|
120
124
|
The top 5 customers by revenue for Northwind are:
|
121
125
|
|
122
126
|
1. B's Beverages with a revenue of $6,154,115.34
|
@@ -150,4 +154,4 @@ If you have any specific requirements please feel free to raise an issue.
|
|
150
154
|
|
151
155
|
## Example Dataset Credits
|
152
156
|
|
153
|
-
|
157
|
+
The [pokemon dataset compiled by Sarah Taha and PokéAPI](https://www.kaggle.com/datasets/sarahtaha/1025-pokemon) has been included under the [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/) license for demonstration purposes.
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<p align="center">
|
2
|
-
<img src="brand/logo.png" width="128" height="128">
|
2
|
+
<img src="https://github.com/kdqed/zaturn/raw/main/brand/logo.png" width="128" height="128">
|
3
3
|
</p>
|
4
4
|
|
5
5
|
# Zaturn: Your Co-Pilot For Data Analytics & BI
|
@@ -41,23 +41,19 @@ Using an MCP like Zaturn will keep your data where it is, and enable AI to draft
|
|
41
41
|
## Installation & Setup
|
42
42
|
1. Install [uv](https://docs.astral.sh/uv/getting-started/installation/#installation-methods)
|
43
43
|
|
44
|
-
2.
|
44
|
+
2. Install [Zaturn](https://pypi.org/project/zaturn/) with uv:
|
45
45
|
```bash
|
46
|
-
|
46
|
+
uv tool install zaturn
|
47
47
|
```
|
48
48
|
|
49
49
|
3. Add to MCP config, with data sources:
|
50
50
|
```json
|
51
51
|
"mcpServers": {
|
52
52
|
"zaturn": {
|
53
|
-
"command": "
|
53
|
+
"command": "zaturn_mcp",
|
54
54
|
"args": [
|
55
|
-
"run",
|
56
|
-
"--directory",
|
57
|
-
"/path/to/downloaded/folder",
|
58
|
-
"mcp_server.py",
|
59
|
-
"mysql+pymysql://username:password@host:3306/dbname",
|
60
55
|
"postgresql://username:password@host:port/dbname",
|
56
|
+
"mysql+pymysql://username:password@host:3306/dbname",
|
61
57
|
"sqlite:////full/path/to/sample_dbs/northwind.db",
|
62
58
|
"/full/path/to/sample_dbs/titanic.parquet",
|
63
59
|
"/full/path/to/sample_dbs/ny_aq.csv",
|
@@ -67,10 +63,22 @@ $ git clone https://github.com/kdqed/zaturn.git
|
|
67
63
|
}
|
68
64
|
```
|
69
65
|
|
70
|
-
|
66
|
+
OR add a `sources.txt` to the Zaturn config directory:
|
67
|
+
```
|
68
|
+
postgresql://username:password@host:port/dbname
|
69
|
+
mysql+pymysql://username:password@host:3306/dbname
|
70
|
+
sqlite:////full/path/to/sample_dbs/northwind.db
|
71
|
+
/full/path/to/sample_dbs/titanic.parquet
|
72
|
+
/full/path/to/sample_dbs/ny_aq.csv
|
73
|
+
/full/path/to/sample_dbs/duckdb_sample.duckdb
|
74
|
+
```
|
75
|
+
|
76
|
+
This file needs to be at `~/.config/zaturn/sources.txt` on Linux/MacOS and at `%APPDATA%\zaturn\sources.txt` on Windows.
|
77
|
+
|
78
|
+
If your MCP client does not support image rendering, add the `--noimg` argument:
|
71
79
|
```json
|
72
80
|
...
|
73
|
-
|
81
|
+
"args": [
|
74
82
|
"--noimg",
|
75
83
|
"mysql+pymysql://username:password@host:3306/dbname",
|
76
84
|
...
|
@@ -86,10 +94,6 @@ You are a helpful data analysis assistant. Use only the tool provided data sourc
|
|
86
94
|
```
|
87
95
|
User: List the top 5 customers by revenue for Northwind
|
88
96
|
AI:
|
89
|
-
[04/08/25 15:16:47] INFO Processing request of type ListToolsRequest server.py:534
|
90
|
-
[04/08/25 15:16:51] INFO Processing request of type CallToolRequest server.py:534
|
91
|
-
[04/08/25 15:16:53] INFO Processing request of type CallToolRequest server.py:534
|
92
|
-
[04/08/25 15:16:55] INFO Processing request of type CallToolRequest server.py:534
|
93
97
|
The top 5 customers by revenue for Northwind are:
|
94
98
|
|
95
99
|
1. B's Beverages with a revenue of $6,154,115.34
|
@@ -123,4 +127,4 @@ If you have any specific requirements please feel free to raise an issue.
|
|
123
127
|
|
124
128
|
## Example Dataset Credits
|
125
129
|
|
126
|
-
|
130
|
+
The [pokemon dataset compiled by Sarah Taha and PokéAPI](https://www.kaggle.com/datasets/sarahtaha/1025-pokemon) has been included under the [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/) license for demonstration purposes.
|
Binary file
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<svg width="512" height="512" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
|
2
|
+
<rect x="32" y="32" width="448" height="448" rx="32" ry="32"
|
3
|
+
style="fill: #182030;"/>
|
4
|
+
<path d="M128 128 A 181 60 45 0 1 384 384"
|
5
|
+
style="stroke: #ffffff; stroke-width: 32; fill: none; stroke-linecap: round;"/>
|
6
|
+
<circle cx="256" cy="256" r="120"
|
7
|
+
style="stroke: #ffffff; stroke-width: 32; fill: #182030;"/>
|
8
|
+
<path d="M128 128 Q192 256 288 224 L224 288 Q320 256 384 384"
|
9
|
+
style="stroke: #ffffff; stroke-width: 32; fill: none; stroke-linecap: round; stroke-linejoin: round;"/>
|
10
|
+
</svg>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "zaturn"
|
3
|
-
version = "0.1.
|
3
|
+
version = "0.1.2"
|
4
4
|
description = "AI Data Analysis MCP"
|
5
5
|
authors = [
|
6
6
|
{name = "Karthik Devan", email = "krtdvn@gmail.com"},
|
@@ -21,6 +21,7 @@ dependencies = [
|
|
21
21
|
"pymysql>=1.1.1",
|
22
22
|
"python-lsp-server>=1.12.2",
|
23
23
|
"seaborn>=0.13.2",
|
24
|
+
"setuptools>=78.1.0",
|
24
25
|
"sqlalchemy>=2.0.40",
|
25
26
|
"tabulate>=0.9.0",
|
26
27
|
]
|
@@ -30,19 +31,25 @@ zaturn_mcp = "zaturn:main"
|
|
30
31
|
|
31
32
|
[project.urls]
|
32
33
|
Homepage = "https://github.com/kdqed/zaturn"
|
33
|
-
Changelog = "https://github.com/kdqed/zaturn/releases"
|
34
34
|
Issues = "https://github.com/kdqed/zaturn/issues"
|
35
35
|
CI = "https://github.com/kdqed/zaturn/actions"
|
36
36
|
|
37
37
|
[build-system]
|
38
|
-
requires = [
|
38
|
+
requires = [
|
39
|
+
"setuptools>=60",
|
40
|
+
"setuptools-scm>=8.0"
|
41
|
+
]
|
39
42
|
build-backend = "setuptools.build_meta"
|
40
43
|
|
41
44
|
[tool.setuptools]
|
42
45
|
include-package-data = false
|
43
46
|
|
44
47
|
[tool.setuptools.packages.find]
|
45
|
-
exclude = ["docs*", "
|
48
|
+
exclude = ["docs*", "brand*"]
|
49
|
+
include = ["zaturn*"]
|
50
|
+
|
51
|
+
[tool.setuptools.package-data]
|
52
|
+
"*" = ["*.*"]
|
46
53
|
|
47
54
|
[dependency-groups]
|
48
55
|
dev = []
|