@sheetaldharshan/exasol-json-mcp
v0.1.6
Published
One-command local Exasol Nano + JSON Tables + MCP launcher.
Downloads
1,081
Readme
Exasol JSON MCP Launcher
Run a local Exasol Nano database, load sample JSON data, and expose a safe read-only MCP endpoint for AI assistants with one command.
npx -y @sheetaldharshan/exasol-json-mcp@latest startThis project is for local demos, BI exploration, solution engineering, and repeatable JSON/MCP testing. It starts everything in Docker on your machine and binds SQL and MCP ports to 127.0.0.1 by default.
What You Get
- Exasol Nano running locally in Docker.
- A bootstrapped
ANALYTICS.CUSTOMER_EVENTSJSON sample table/view. - Exasol MCP Server exposed at
http://localhost:7766/mcp. - A generated
MCP_READONLYdatabase user for AI access. - Read-only MCP defaults: write SQL, BucketFS, functions, scripts, profiling, and summarization are disabled.
- Built-in
status,logs,smoke-test,update,rollback,stop,reset,doctor,autostart, andinstall-client-configcommands.
Before You Start
Install these first:
- Docker Desktop: https://www.docker.com/products/docker-desktop/
- Node.js 20 or newer: https://nodejs.org/
Then start Docker Desktop and wait until it says the engine is running.
Check from a terminal:
docker --version
docker compose version
node --version
npm --versionFirst Run
Use PowerShell, Terminal, or Command Prompt:
npx -y @sheetaldharshan/exasol-json-mcp@latest startThe launcher will:
- Create a local folder for its files.
- Generate safe default passwords.
- Download the tested Docker images.
- Start Exasol Nano, JSON bootstrap, and MCP Server.
- Run smoke tests.
- Print the MCP URL, AI client config, and first prompt.
First run timing:
- After a Docker prune or on a new machine, startup can take several minutes because Docker must download images again.
- Exasol Nano also needs time to initialize before JSON bootstrap and MCP can start.
- Later runs are normally faster because images and the local Docker volume are already present.
Default local folder:
- Windows:
%USERPROFILE%\.exasol-json-mcp - macOS/Linux:
~/.exasol-json-mcp
Connect Your AI Client
After start finishes, copy the MCP config printed by the launcher into your AI client.
Default MCP URL:
http://localhost:7766/mcpFirst prompt to try:
Use the connected Exasol MCP server. List available schemas, describe ANALYTICS.CUSTOMER_EVENTS, then run SELECT COUNT(*) FROM ANALYTICS.CUSTOMER_EVENTS.When your AI client finishes, return to the terminal and type:
completedThe stack keeps running until you stop it.
Daily Use
Start or reuse the stack:
npx -y @sheetaldharshan/exasol-json-mcp@latest startShow current status:
npx -y @sheetaldharshan/exasol-json-mcp@latest statusPrint only the MCP config again:
npx -y @sheetaldharshan/exasol-json-mcp@latest print-mcp-configShow recent logs:
npx -y @sheetaldharshan/exasol-json-mcp@latest logsRun health checks:
npx -y @sheetaldharshan/exasol-json-mcp@latest smoke-testStop containers but keep data:
npx -y @sheetaldharshan/exasol-json-mcp@latest stopInstall the MCP entry into supported AI clients:
npx -y @sheetaldharshan/exasol-json-mcp@latest install-client-config --client=allStart the local stack automatically when you sign in:
npx -y @sheetaldharshan/exasol-json-mcp@latest autostart enableCheck installation health:
npx -y @sheetaldharshan/exasol-json-mcp@latest doctorAfter a system restart, either autostart brings the stack back when Docker Desktop is available, or the user can run the normal start command again. The AI client config can remain installed permanently. Supported client targets are claude, codex, vscode, and all.
Update Safely
Use this when a new tested launcher/runtime release is available:
npx -y @sheetaldharshan/exasol-json-mcp@latest updateThe update flow shows current and target versions before changing anything. It saves the old manifest as previous-manifest.json, pulls the new images, starts the stack, and runs smoke tests.
If an update fails, roll back:
npx -y @sheetaldharshan/exasol-json-mcp@latest rollbackUse status after update or rollback:
npx -y @sheetaldharshan/exasol-json-mcp@latest statusClean Reset
Use this only when you want to remove the local containers and Docker volume for this stack.
npx -y @sheetaldharshan/exasol-json-mcp@latest reset --confirm=delete-local-exasol-json-mcpA normal stop is safer for daily use because it preserves data.
Troubleshooting
Docker is not running:
Start Docker Desktop, wait for Engine running, then run start again.Port already in use:
npx -y @sheetaldharshan/exasol-json-mcp@latest configureThen choose different SQL or MCP ports.
Need logs:
npx -y @sheetaldharshan/exasol-json-mcp@latest logs --tail=300Need to verify the system:
npx -y @sheetaldharshan/exasol-json-mcp@latest smoke-test --verboseFor Maintainers
Local checks:
npm ci
npm run lint
npm test
npm run validate:manifests
npm run check:upstreams
npm pack --dry-runGitHub Actions:
ci: lint, tests, manifest validation, package dry-run, and render-only smoke checks.docker-compatibility: manual full Docker stack compatibility test.upstream-watch: scheduled upstream release monitor for Exasol Nano, Exasol MCP Server, and JSON Tables.release-npm: publishes the npm package when a version tag is pushed or the workflow is manually run.
Release order:
- Check upstream updates with
npm run check:upstreams. - Update candidate pins only.
- Run
docker-compatibilityoncandidate. - Promote tested pins to
stable. - Run
docker-compatibilityonstable. - Bump npm version and publish.
More details are in docs/user-guide.md, docs/maintainer-updates.md, and docs/release-checklist.md.
