Getting started
This guide gets you from nothing to a working SealStack gateway serving MCP tools and REST endpoints in about ten minutes. Everything runs locally with Docker Compose.
Prerequisites
- Docker Desktop (or Docker Engine + Compose plugin)
- Rust 1.87+ — only required if you’re building the CLI from source. Pre-built binaries are attached to each GitHub release.
cfgCLI on your$PATH.
1. Start the dev stack
Clone the repo and bring up Postgres, Qdrant, and the gateway:
git clone https://github.com/bwiemz/sealstack.gitcd sealstackdocker compose -f deploy/docker/compose.dev.yaml up -dYou should see the gateway come up on port 7070, Postgres on 5432, and
Qdrant on 6333/6334.
Verify the gateway is reachable:
curl -s http://localhost:7070/healthz# {"status":"ok"}2. Define a schema
Create schemas/doc.csl:
namespace examples
schema Doc v1 { id: ID @primary title: String @indexed body: Text @searchable @chunked
context { embedder = "stub" vector_dims = 64 chunking = semantic(max_tokens = 400, overlap = 40) freshness_decay = exponential(half_life = 30d) }}Compile and apply it. The CLI turns CSL into a JSON schema meta the gateway
understands and POSTs it via /v1/schemas:
sealstack schema apply schemas/doc.csl3. Register a connector
Point the local-files connector at a directory of markdown:
mkdir -p sample-docsecho "# Setup\nUse Postgres 16." > sample-docs/setup.mdsealstack connector add local-files --schema examples.Doc --root ./sample-docsThen trigger a sync:
sealstack connector sync local-files/examples.Doc4. Query
sealstack query --schema examples.Doc "what does the setup doc say about postgres?"You’ll get hits plus a receipt id. Fetch the receipt to see why each source surfaced:
sealstack receipt show <receipt-id>5. Next
- CSL Tutorial — model a multi-schema domain
- MCP Tools — connect Claude, Cursor, or any MCP-compatible client
- Deployment — move off Compose to a real Kubernetes install