sqai-mcp
Officialby thyn-ai
README.md
# SQAI — Structured Query AI
> **SQAI is the deterministic, read-only structured-data tool for AI agents, with governed execution and replayable provenance.**
Apache-2.0 · TypeScript + Python · built on Algenta as the underlying substrate · a [Thyn](https://thyn.ai) product
The model proposes meaning. SQAI controls execution: typed intent in, policy-checked
deterministic execution, replayable results with full provenance out. No raw SQL,
no eval, no write path.
## Architecture
| Layer | Package | What it is |
| --- | --- | --- |
| AI SDK tools | `@thyn-ai/sqai-ai-sdk` (npm) | Three Vercel AI SDK 7 tools — `listSources`, `queryData`, `explainQuery` |
| Product SDK | `@thyn-ai/sqai` (npm) | SQAI query plane + full computation plane |
| Product SDK | `sqai` (PyPI) | Same SQAI surface, 1:1 vocabulary |
| CLI | `@thyn-ai/sqai-cli` (npm, bin `sqai`) | `sqai doctor --parity`, `sqai runtime install/verify/status/stop` |
| Capability contract | Embedded SQAI contract | The generated, hash-pinned inventory of every capability SQAI exposes |
| Execution substrate | Algenta (exact-pinned) | Underlying deterministic execution substrate and managed signed runtime bundle |
## Quickstart (AI SDK)
```ts
import { generateText } from "ai";
import { createSQAI } from "@thyn-ai/sqai-ai-sdk";
const sqai = createSQAI({ sources: [{ data: "./data/sales.csv", name: "sales" }] });
const { text } = await generateText({
model: "openai/gpt-5-mini",
tools: sqai.tools(),
prompt: "Which region had the highest total revenue?",
});
```
No server. No daemon for the query plane. The computation plane provisions a
signed managed runtime transparently on first use.
<!-- mcp-name: io.github.thyn-ai/sqai -->
## MCP server
The same three governed tools are available to any MCP host (Claude Desktop,
Cursor, …) as a stdio server — descriptions, Zod schemas, and execute
functions are read straight off the AI-SDK tool objects, never forked:
```bash
npx @thyn-ai/sqai-mcp
```
```json
{
"mcpServers": {
"sqai": {
"command": "npx",
"args": ["-y", "@thyn-ai/sqai-mcp"],
"env": {
"SQAI_SOURCES": "[{\"data\": \"./data/sales.csv\", \"name\": \"sales\"}]"
}
}
}
}
```
Zero environment is a valid configuration: `initialize` and `tools/list` answer
with no credentials (sources connect lazily on the first tool call). `SQAI_API_KEY`
and `SQAI_DEPLOYMENT_URL` keep their usual semantics from `@thyn-ai/sqai`.
| Tool | What it does |
| --- | --- |
| `listSources` | Discovery: sources with exact field names, types, and allowed operations; computation-catalog search; per-module signatures. |
| `queryData` | One deterministic, read-only query or computation; truncated results stay retrievable via `result_id`. |
| `explainQuery` | Dry-run: resolved plan, `plan_hash`, validation — or a computation-signature check with a preview `invocation_hash`. |
All three are annotated `readOnlyHint: true`, `destructiveHint: false`,
`idempotentHint: true`, `openWorldHint: false`. The computation plane is free on
1 machine with a one-time device registration (`sqai login`) — licensing moves a
signed token, never your data; without it, computation calls return a structured
licensing error by design and queries keep working.
## What works today
- Query plane (connect / resolve / query / verify / ask) — in-process, both languages
- Full SQAI computation plane behind capability-contract validation
- Policy allow-lists (sources, fields, functions) the model can never override
- Cross-language conformance: identical values, `plan_hash`, `intent_signature`
- Model-context truncation with opaque result handles
## Repository layout
```
contracts/ generated capability contract + tested version pair
packages/sdk/ @thyn-ai/sqai (TypeScript product SDK)
packages/ai-sdk/ @thyn-ai/sqai-ai-sdk (Vercel AI SDK tools)
packages/cli/ sqai CLI (doctor, runtime verbs)
packages/mcp/ @thyn-ai/sqai-mcp (MCP stdio server)
packages/python-sdk/ sqai (PyPI)
examples/ runnable examples (AI SDK registry example)
scripts/ contract sync + parity gate
docs/ GitBook (docs.sqai.com)
```
## Key documents
| Doc | Purpose |
| --- | --- |
| [docs/quickstart-ts.md](docs/quickstart-ts.md) | TypeScript quickstart |
| [docs/quickstart-python.md](docs/quickstart-python.md) | Python quickstart |
| [docs/ai-sdk-tools.md](docs/ai-sdk-tools.md) | Tool schemas and truncation contract |
| [docs/determinism.md](docs/determinism.md) | Hashes, envelopes, "deterministic within the declared execution scope" |
| [docs/licensing.md](docs/licensing.md) | Free developer tier, entitlements, runtime bundle trust |
| [SECURITY.md](SECURITY.md) | Security policy |
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues