Metadata-Version: 2.4
Name: exasol-quickstart
Version: 0.3.5
Summary: One command to try Exasol with AI add-ons (MCP Server + JSON Tables) — auto-selects the right setup for your OS (Windows / macOS / Linux).
Project-URL: Homepage, https://github.com/krishna-exasol/exasol-quickstart
Project-URL: Repository, https://github.com/krishna-exasol/exasol-quickstart
Author: krishna-exasol
License: MIT
License-File: LICENSE
Keywords: analytics,database,exasol,installer,json-tables,mcp,quickstart
Classifier: Development Status :: 1 - Planning
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.9
Description-Content-Type: text/markdown

<div align="center">

# ⚡ exasol-quickstart

### Run **Exasol** with AI — in one command.

A full Exasol analytics database, an **LLM-ready MCP server**, and **JSON-native SQL** — set up the right way for your OS, in minutes.

<br>

[![PyPI](https://img.shields.io/pypi/v/exasol-quickstart?style=for-the-badge&color=1f7a5a&logo=pypi&logoColor=white)](https://pypi.org/project/exasol-quickstart/)
[![Python](https://img.shields.io/pypi/pyversions/exasol-quickstart?style=for-the-badge&color=3776AB&logo=python&logoColor=white)](https://pypi.org/project/exasol-quickstart/)
[![Platforms](https://img.shields.io/badge/platforms-Windows%20%7C%20macOS%20%7C%20Linux-555?style=for-the-badge)](#requirements)
[![License](https://img.shields.io/badge/license-MIT-d29922?style=for-the-badge)](LICENSE)

[**📦 PyPI**](https://pypi.org/project/exasol-quickstart/) &nbsp;•&nbsp; [**💻 GitHub**](https://github.com/krishna-exasol/exasol-quickstart)

</div>

---

<div align="center">

## ⚡ Get started in one line

</div>

```bash
pipx run exasol-quickstart
```

<div align="center"><sub>Prefer <a href="https://docs.astral.sh/uv/">uv</a>? &nbsp;<code>uvx exasol-quickstart</code></sub></div>

<br>

Choose the form that fits — **try it** (runs once, nothing installed) or **keep it** (installs the command for repeated use):

| | with **pipx** | with **uv** |
|---|---|---|
| **▶️ Try it once** | `pipx run exasol-quickstart` | `uvx exasol-quickstart` |
| **📌 Keep it** | `pipx install exasol-quickstart && exasol-quickstart` | `uv tool install exasol-quickstart && exasol-quickstart` |

Every form detects your OS, provisions Exasol the right way, and prints the endpoints. **No flags. No multi-step setup.**

---

## 🎁 What you get

```text
                       exasol-quickstart
                              │
                              ▼
        ┌──────────────────────────────────────────────┐
        │   Exasol  (database)        127.0.0.1:8563    │
        │      ▲            ▲                            │
        │      │            │                            │
        │   MCP server   JSON Tables                     │
        │   :4896/mcp    ingest JSON → SQL               │
        └──────────────────────────────────────────────┘
```

| Component | Endpoint | Purpose |
|-----------|----------|---------|
| 🗄️ **Exasol** (database) | `127.0.0.1:8563` — `sys` / `exasol` | the Exasol SQL engine |
| 🤖 **MCP Server** | `http://127.0.0.1:4896/mcp` | connect Claude / any MCP client to the database |
| 📦 **JSON Tables** | `exasol-quickstart json-tables …` | ingest JSON and query it as SQL |

<sub>Web UI: `https://127.0.0.1:8443`</sub>

---

## ✅ Requirements

The only thing you **always** need is **Python 3.9+ with `pipx`**:

```bash
python -m pip install --user pipx
python -m pipx ensurepath        # then reopen the terminal
```

From there, `exasol-quickstart` picks **how** Exasol runs, per platform:

| Operating system | How Exasol runs | Docker |
|------------------|-----------------|--------|
| 🪟 **Windows** | Exasol Nano, in a container | required *(no native Windows engine exists)* |
| 🍎 **macOS** (Apple Silicon) | Exasol Personal, in a native VM | not required *(experimental)* |
| 🐧 **Linux** | Exasol Nano, in a container *(native install planned)* | required for now |

> The container path is **fully tested** today; the macOS native path is **experimental** and not yet validated end to end.

---

## 🛠️ Usage

```bash
exasol-quickstart                      # full stack: database + MCP + JSON Tables
exasol-quickstart --no-json-tables     # database + MCP only
exasol-quickstart --dry-run            # print the plan, change nothing
exasol-quickstart --base <name>        # force a base: nano-docker | personal | nano-native
exasol-quickstart json-tables --help   # run the JSON Tables CLI
```

<details>
<summary><b>📥 Ingest some JSON</b></summary>

<br>

```bash
docker cp data.json exasol-quickstart-json-tables:/workspace/data.json
exasol-quickstart json-tables ingest-and-wrap --input /workspace/data.json --name demo
# then query it:  SELECT * FROM "EJT_DEMO_VIEW"."demo";
```

On the container path, the first run pulls `exasol/nano` + `exasol/mcp-server` and builds the JSON Tables image once (it compiles a small Rust engine — a few minutes). Subsequent runs are fast.

</details>

<details>
<summary><b>🧹 Stop &amp; remove everything</b></summary>

<br>

```bash
docker rm -f exasol-quickstart-db exasol-quickstart-mcp exasol-quickstart-json-tables
```

</details>

---

## 🧩 How it works

`exasol-quickstart` is a single front-door command that detects the platform and assembles the stack:

- **With Docker** — Exasol Nano (database), the official `exasol/mcp-server` image, and a JSON Tables sidecar run as containers on a shared network. Tested end to end, including ingest.
- **Without Docker** — macOS uses Exasol Personal (a native VM); Linux uses a native Nano install (planned). Add-ons run as isolated host environments.

MCP Server and JSON Tables have incompatible `pyexasol` requirements, so each runs in isolation — a separate container, or a separate host environment — never a shared Python environment.

---

<div align="center">

### 📍 Status

`0.3.x` — the container path (Nano + MCP + JSON Tables) is **tested end to end, including ingest**.
No-Docker native bases are chosen automatically when Docker is absent; the macOS path is **experimental**.

<br>

**[📦 Install from PyPI](https://pypi.org/project/exasol-quickstart/)** &nbsp;•&nbsp; Made to make trying Exasol effortless &nbsp;•&nbsp; [MIT](LICENSE)

</div>
