zaturn 0.2.0__tar.gz → 0.2.1__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.
Files changed (48) hide show
  1. {zaturn-0.2.0 → zaturn-0.2.1}/CHANGELOG.md +3 -0
  2. {zaturn-0.2.0/zaturn.egg-info → zaturn-0.2.1}/PKG-INFO +3 -2
  3. {zaturn-0.2.0 → zaturn-0.2.1}/README.md +1 -1
  4. {zaturn-0.2.0 → zaturn-0.2.1}/pyproject.toml +2 -1
  5. {zaturn-0.2.0 → zaturn-0.2.1}/uv.lock +34 -0
  6. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/mcp/__init__.py +4 -0
  7. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/tools/query_utils.py +13 -1
  8. {zaturn-0.2.0 → zaturn-0.2.1/zaturn.egg-info}/PKG-INFO +3 -2
  9. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn.egg-info/SOURCES.txt +0 -1
  10. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn.egg-info/requires.txt +1 -0
  11. zaturn-0.2.0/run_sse_server.py +0 -4
  12. {zaturn-0.2.0 → zaturn-0.2.1}/.gitignore +0 -0
  13. {zaturn-0.2.0 → zaturn-0.2.1}/LICENSE +0 -0
  14. {zaturn-0.2.0 → zaturn-0.2.1}/setup.cfg +0 -0
  15. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/__init__.py +0 -0
  16. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/agent_wrapper.py +0 -0
  17. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/app.py +0 -0
  18. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/static/fira_code.ttf +0 -0
  19. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/static/inter_ital_var.ttf +0 -0
  20. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/static/inter_var.ttf +0 -0
  21. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/static/js/htmx-multi-swap.js +0 -0
  22. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/static/js/htmx.min.js +0 -0
  23. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/static/logo.png +0 -0
  24. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/static/logo.svg +0 -0
  25. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/static/noto_emoji.ttf +0 -0
  26. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/storage.py +0 -0
  27. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/_shell.html +0 -0
  28. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/ai_message.html +0 -0
  29. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/c_settings_updated.html +0 -0
  30. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/c_source_card.html +0 -0
  31. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/chat.html +0 -0
  32. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/css/style.css +0 -0
  33. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/function_call.html +0 -0
  34. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/loader.html +0 -0
  35. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/manage_sources.html +0 -0
  36. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/nav.html +0 -0
  37. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/new_conversation.html +0 -0
  38. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/settings.html +0 -0
  39. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/setup_prompt.html +0 -0
  40. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/studio/templates/user_message.html +0 -0
  41. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/tools/__init__.py +0 -0
  42. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/tools/config.py +0 -0
  43. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/tools/core.py +0 -0
  44. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/tools/example_data/all_pokemon_data.csv +0 -0
  45. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn/tools/visualizations.py +0 -0
  46. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn.egg-info/dependency_links.txt +0 -0
  47. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn.egg-info/entry_points.txt +0 -0
  48. {zaturn-0.2.0 → zaturn-0.2.1}/zaturn.egg-info/top_level.txt +0 -0
@@ -1,3 +1,6 @@
1
+ #### v.0.2.1 (2025-07-24)
2
+ - Added Support For Microsoft SQL Server Databases
3
+
1
4
  ### v0.2.0 (2025-07-01)
2
5
  - The Studio Interface: Now use Zaturn with an inbuilt UI, with your own LLM API.
3
6
  - Refactored MCP Code.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zaturn
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: AI Data Analysis MCP & Studio
5
5
  Author-email: Karthik Devan <krtdvn@gmail.com>
6
6
  Maintainer-email: Karthik Devan <krtdvn@gmail.com>
@@ -25,6 +25,7 @@ Requires-Dist: platformdirs>=4.3.7
25
25
  Requires-Dist: plotly[express]>=6.0.1
26
26
  Requires-Dist: psycopg2-binary>=2.9.10
27
27
  Requires-Dist: pyarrow>=19.0.1
28
+ Requires-Dist: pymssql>=2.3.7
28
29
  Requires-Dist: pymysql>=1.1.1
29
30
  Requires-Dist: python-lsp-server>=1.12.2
30
31
  Requires-Dist: python-slugify>=8.0.4
@@ -58,7 +59,7 @@ https://github.com/user-attachments/assets/d42dc433-e5ec-4b3e-bef0-5cfc097396ab
58
59
  ### Multiple Data Sources
59
60
 
60
61
  Zaturn can currently connect to the following data sources:
61
- - SQL Databases: PostgreSQL, SQLite, DuckDB, MySQL, ClickHouse
62
+ - SQL Databases: PostgreSQL, SQLite, DuckDB, MySQL, ClickHouse, SQL Server
62
63
  - Files: CSV, Parquet
63
64
 
64
65
  Connectors for more data sources are being added.
@@ -20,7 +20,7 @@ https://github.com/user-attachments/assets/d42dc433-e5ec-4b3e-bef0-5cfc097396ab
20
20
  ### Multiple Data Sources
21
21
 
22
22
  Zaturn can currently connect to the following data sources:
23
- - SQL Databases: PostgreSQL, SQLite, DuckDB, MySQL, ClickHouse
23
+ - SQL Databases: PostgreSQL, SQLite, DuckDB, MySQL, ClickHouse, SQL Server
24
24
  - Files: CSV, Parquet
25
25
 
26
26
  Connectors for more data sources are being added.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "zaturn"
3
- version = "0.2.0"
3
+ version = "0.2.1"
4
4
  description = "AI Data Analysis MCP & Studio"
5
5
  authors = [
6
6
  {name = "Karthik Devan", email = "krtdvn@gmail.com"},
@@ -27,6 +27,7 @@ dependencies = [
27
27
  "plotly[express]>=6.0.1",
28
28
  "psycopg2-binary>=2.9.10",
29
29
  "pyarrow>=19.0.1",
30
+ "pymssql>=2.3.7",
30
31
  "pymysql>=1.1.1",
31
32
  "python-lsp-server>=1.12.2",
32
33
  "python-slugify>=8.0.4",
@@ -1390,6 +1390,38 @@ wheels = [
1390
1390
  { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293 },
1391
1391
  ]
1392
1392
 
1393
+ [[package]]
1394
+ name = "pymssql"
1395
+ version = "2.3.7"
1396
+ source = { registry = "https://pypi.org/simple" }
1397
+ sdist = { url = "https://files.pythonhosted.org/packages/ad/97/4e2b350ccc301a2ba38fe3af246f7cbff0f9d454beb30b57a73570789330/pymssql-2.3.7.tar.gz", hash = "sha256:5e6d79c7b1cec40aebec4b099c6e445ccaac24519e5e767b49a4e6f48c087e50", size = 184995 }
1398
+ wheels = [
1399
+ { url = "https://files.pythonhosted.org/packages/8a/74/864e4ff683160a69925c5c528c3bf91daa1a7b294d3c313345e87c698c8a/pymssql-2.3.7-cp311-cp311-macosx_13_0_x86_64.whl", hash = "sha256:217985ffd3bafa7689de3976671f5c3c390ee4ceac2e458af11f22e9021f2ead", size = 2920984 },
1400
+ { url = "https://files.pythonhosted.org/packages/70/0d/3eefc62a77401de9cfb600c2d277ed1c96e1256793bdeca06442eb7ad705/pymssql-2.3.7-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:25972328fc896b525f115f11c19832635a776f6474d957a6f7f610ac0db3ac75", size = 3135486 },
1401
+ { url = "https://files.pythonhosted.org/packages/6d/9c/1fd81a6088eca9cd9edf073be52c67124add73e8a4d4ec68816a238039be/pymssql-2.3.7-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:31543f547613aa84016814bfd0f06687b603883148b1feff44a10604ef50dba8", size = 2443081 },
1402
+ { url = "https://files.pythonhosted.org/packages/09/06/d35699e1bdcf06d901450eed70709179e217137b12275fd4ab73f5d6e9ab/pymssql-2.3.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4391064e5055f4967ae79074678b1794aae7ab4149864f9557054a56e72e2c74", size = 2784484 },
1403
+ { url = "https://files.pythonhosted.org/packages/e5/22/0520248e02777359b95d804cdb16c28ccca8a6a947cc80655d8411b98203/pymssql-2.3.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9ade8beecc2ab5a90a193cd807311d4c74bb76ff3c699e7689f98247a5871442", size = 3685310 },
1404
+ { url = "https://files.pythonhosted.org/packages/79/65/3d0312004705157779a8426fea16b505984068d7e03065623ca37b40b7d2/pymssql-2.3.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:09063a2eefdf8f1d7f52b1a8c50506c0807810934ec109aab2f590bfc0e78e5c", size = 3428722 },
1405
+ { url = "https://files.pythonhosted.org/packages/b9/9c/6406c3313c0c81352ab7fcff8d1127f0301a0fd49e940a757b915ebdfa0a/pymssql-2.3.7-cp311-cp311-win32.whl", hash = "sha256:132698a5327ea78e17960f3a4322a1bae6a953edfd690dfba5f5ea28a3601114", size = 1322524 },
1406
+ { url = "https://files.pythonhosted.org/packages/1d/4c/c6263a16ca905d0617ad8b3afdc354a0046992a1cbe453d626126d9b47bb/pymssql-2.3.7-cp311-cp311-win_amd64.whl", hash = "sha256:a4ead25c67bff2700afb25edaeac923e701465bd33f64b475eb61214b592b8cd", size = 2004594 },
1407
+ { url = "https://files.pythonhosted.org/packages/04/42/2c647097ea0df1ab9b1bba31c936d179b083c06a229bdaf244f96b5d1309/pymssql-2.3.7-cp312-cp312-macosx_13_0_x86_64.whl", hash = "sha256:9ac8232d94447e37ee115d5184ac25ab89cb5c0990147457826b4662b99af124", size = 2904130 },
1408
+ { url = "https://files.pythonhosted.org/packages/89/d8/45ce5a56291a2529e61fa0f541c9df6ebbc8889d52345d0e335ce5e75467/pymssql-2.3.7-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:7a25383d5e9c2cba4728830951329f453a8f404100b851c0a7c43456a8618927", size = 3122024 },
1409
+ { url = "https://files.pythonhosted.org/packages/41/c0/29dfbc30ffaad024155d82d6c3d41d8993968d4da0bc8295233c0f320880/pymssql-2.3.7-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1bbb11b93fd21c261c8c6cf59302fecf66a0b75ce9281772d62252a29de43819", size = 2476192 },
1410
+ { url = "https://files.pythonhosted.org/packages/f6/ec/780c60df9d942b419673f9f5d5ae6e2de279e5954af181df53c7a904d006/pymssql-2.3.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a4ee4a8b86de552c2714512ff144937baf8fc23cc7079cb481229e7c703d2793", size = 2814988 },
1411
+ { url = "https://files.pythonhosted.org/packages/48/d3/91efb0ecf2cefc8aa2b1f6cc3cd77e80807ed37827a7fe0faad9379990ab/pymssql-2.3.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:56310017000e1a78e3e502be511be7211fd0e7d87d784303608e47fa3db28365", size = 3717811 },
1412
+ { url = "https://files.pythonhosted.org/packages/5e/86/6822e6567d7f6587d772adf5d8fbe0157742f59932ddbf6831349c4b590f/pymssql-2.3.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:05ec2b7df85cfc1d849a701471cdab54d4da43d45b361cabb7641d9df6828545", size = 3463486 },
1413
+ { url = "https://files.pythonhosted.org/packages/f8/c6/7e04d6d3b3a61d0a0ca63baf6d6d2b07e5991e98ae1b7662ebfc9e46f0c5/pymssql-2.3.7-cp312-cp312-win32.whl", hash = "sha256:d58c1fab2604fdf37f8e3a895c35ae4f26ec4195e200556c4e583c2c216d0a3d", size = 1307278 },
1414
+ { url = "https://files.pythonhosted.org/packages/f4/4c/5860010cf9a1c2b8c2d37b18fee8720f61c452af5841e7dca4fef811aec5/pymssql-2.3.7-cp312-cp312-win_amd64.whl", hash = "sha256:257f9048a05220596e0697aade7fee9a993e19c51c652b1c0a0eca97769b5fd4", size = 1988370 },
1415
+ { url = "https://files.pythonhosted.org/packages/0f/f2/91db1c61558ac797766011ebaaae94a2764f43cd6a8e1337d797d81cd3fa/pymssql-2.3.7-cp313-cp313-macosx_13_0_x86_64.whl", hash = "sha256:456d7d8b1bf24a611643a67546f2b2188e645250d2c6943bc59093ca03fd33e8", size = 2900668 },
1416
+ { url = "https://files.pythonhosted.org/packages/68/ad/7d5f2892a86992f81bc36b54105ec400f0d5afb8009d2027761a2b9ab52a/pymssql-2.3.7-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:2cbea08bd03acb103b553b9cfccda93d5ffe4bd836f89071af2616e0b04e776e", size = 3119006 },
1417
+ { url = "https://files.pythonhosted.org/packages/88/6a/1f6614352e59b79e59329774ef159bbd0447b172e62b32ffeea9ef396021/pymssql-2.3.7-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b9b9eceea38fd2f389fb325513cb99964f9465facc35b72174c6cfd93ef3e510", size = 2475555 },
1418
+ { url = "https://files.pythonhosted.org/packages/b1/87/f4dc8f9bff8de57f6d6256ff89f7e2e424155c81ac0caea470a391e97e0b/pymssql-2.3.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:69e6feb6916d9e9c37b00538e8cdaf489788244b3111c3cc6e9efffe0e492405", size = 2814496 },
1419
+ { url = "https://files.pythonhosted.org/packages/24/3b/a75181f0e42432c795651654802a237152403048e0b4265dd2c5f378ad4a/pymssql-2.3.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a30c31db155c45aafb355e39ede10593fe6c3f18e98117289cb611611901d608", size = 3717450 },
1420
+ { url = "https://files.pythonhosted.org/packages/38/a9/d4cdbaa63a271e88380d1a99b749c99d6b5be1c4800777a9f9d4a0832f11/pymssql-2.3.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:37c16bc48a2ca88f1719bac6d2ebbbe7e2b821749bc1d04284975f1628300f13", size = 3463013 },
1421
+ { url = "https://files.pythonhosted.org/packages/b0/29/ecacbacf81a5d8c186da77a1fe4f5cc948caf192f15371ead3bf7c95be65/pymssql-2.3.7-cp313-cp313-win32.whl", hash = "sha256:ef769e7c9427cb97143e61c70ec594834bf1954b0f89285b448bb2e3b7e8c2a3", size = 1306860 },
1422
+ { url = "https://files.pythonhosted.org/packages/a3/9e/913aec491c17ccdd60603fd98661c993cd74e13526e62f0e07d3d489fa5a/pymssql-2.3.7-cp313-cp313-win_amd64.whl", hash = "sha256:ee3fdfe37e40ead646a622af3a8b405f6aa8d6f48e9b7a412a47dcf3be8b703e", size = 1988939 },
1423
+ ]
1424
+
1393
1425
  [[package]]
1394
1426
  name = "pymysql"
1395
1427
  version = "1.1.1"
@@ -1858,6 +1890,7 @@ dependencies = [
1858
1890
  { name = "plotly", extra = ["express"] },
1859
1891
  { name = "psycopg2-binary" },
1860
1892
  { name = "pyarrow" },
1893
+ { name = "pymssql" },
1861
1894
  { name = "pymysql" },
1862
1895
  { name = "python-lsp-server" },
1863
1896
  { name = "python-slugify" },
@@ -1887,6 +1920,7 @@ requires-dist = [
1887
1920
  { name = "plotly", extras = ["express"], specifier = ">=6.0.1" },
1888
1921
  { name = "psycopg2-binary", specifier = ">=2.9.10" },
1889
1922
  { name = "pyarrow", specifier = ">=19.0.1" },
1923
+ { name = "pymssql", specifier = ">=2.3.7" },
1890
1924
  { name = "pymysql", specifier = ">=1.1.1" },
1891
1925
  { name = "python-lsp-server", specifier = ">=1.12.2" },
1892
1926
  { name = "python-slugify", specifier = ">=8.0.4" },
@@ -56,6 +56,10 @@ for s in source_list:
56
56
  source_type = 'mysql'
57
57
  s = s.replace('mysql://', 'mysql+pymysql://')
58
58
  source_name = source.split('/')[-1].split('?')[0]
59
+ elif source.startswith("mssql://"):
60
+ source_type = 'mssql'
61
+ s = s.replace('mssql://', 'mssql+pymssql://')
62
+ source_name = source.split('/')[-1].split('?')[0]
59
63
  elif source.startswith('clickhouse://'):
60
64
  source_type = 'clickhouse'
61
65
  source_name = source.split('/')[-1].split('?')[0]
@@ -30,6 +30,10 @@ def list_tables(source):
30
30
  for col in list(result):
31
31
  if col.startswith("Tables_in_"):
32
32
  return result[col].to_list()
33
+
34
+ case "mssql":
35
+ result = execute_query(source, "SELECT name FROM sys.tables")
36
+ return result['name'].to_list()
33
37
 
34
38
  case "duckdb" | "csv" | "parquet" | "clickhouse":
35
39
  result = execute_query(source, "SHOW TABLES")
@@ -46,7 +50,7 @@ def describe_table(source, table_name):
46
50
  f'PRAGMA table_info("{table_name}");'
47
51
  )
48
52
 
49
- case 'postgresql':
53
+ case 'postgresql' | 'mssql':
50
54
  return execute_query(source,
51
55
  f"SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '{table_name}';"
52
56
  )
@@ -81,6 +85,14 @@ def execute_query(source: dict, query: str):
81
85
  result = session.execute(sqlalchemy.text(query))
82
86
  return pd.DataFrame(result)
83
87
 
88
+ case "mssql":
89
+ engine = sqlalchemy.create_engine(url)
90
+ with Session(engine) as session:
91
+ # no known way to ensure read-only here
92
+ # please use read-only credentials
93
+ result = session.execute(sqlalchemy.text(query))
94
+ return pd.DataFrame(result)
95
+
84
96
  case "postgresql":
85
97
  engine = sqlalchemy.create_engine(url)
86
98
  with engine.connect() as conn:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zaturn
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: AI Data Analysis MCP & Studio
5
5
  Author-email: Karthik Devan <krtdvn@gmail.com>
6
6
  Maintainer-email: Karthik Devan <krtdvn@gmail.com>
@@ -25,6 +25,7 @@ Requires-Dist: platformdirs>=4.3.7
25
25
  Requires-Dist: plotly[express]>=6.0.1
26
26
  Requires-Dist: psycopg2-binary>=2.9.10
27
27
  Requires-Dist: pyarrow>=19.0.1
28
+ Requires-Dist: pymssql>=2.3.7
28
29
  Requires-Dist: pymysql>=1.1.1
29
30
  Requires-Dist: python-lsp-server>=1.12.2
30
31
  Requires-Dist: python-slugify>=8.0.4
@@ -58,7 +59,7 @@ https://github.com/user-attachments/assets/d42dc433-e5ec-4b3e-bef0-5cfc097396ab
58
59
  ### Multiple Data Sources
59
60
 
60
61
  Zaturn can currently connect to the following data sources:
61
- - SQL Databases: PostgreSQL, SQLite, DuckDB, MySQL, ClickHouse
62
+ - SQL Databases: PostgreSQL, SQLite, DuckDB, MySQL, ClickHouse, SQL Server
62
63
  - Files: CSV, Parquet
63
64
 
64
65
  Connectors for more data sources are being added.
@@ -3,7 +3,6 @@ CHANGELOG.md
3
3
  LICENSE
4
4
  README.md
5
5
  pyproject.toml
6
- run_sse_server.py
7
6
  uv.lock
8
7
  zaturn.egg-info/PKG-INFO
9
8
  zaturn.egg-info/SOURCES.txt
@@ -14,6 +14,7 @@ platformdirs>=4.3.7
14
14
  plotly[express]>=6.0.1
15
15
  psycopg2-binary>=2.9.10
16
16
  pyarrow>=19.0.1
17
+ pymssql>=2.3.7
17
18
  pymysql>=1.1.1
18
19
  python-lsp-server>=1.12.2
19
20
  python-slugify>=8.0.4
@@ -1,4 +0,0 @@
1
- from zaturn import mcp
2
-
3
- if __name__=="__main__":
4
- mcp.run(transport='sse')
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes