SOAT is open-source infrastructure for building AI applications. One self-hostable Node.js server gives you IAM, file and document storage with vector search, conversational memory, agent orchestration, multi-agent workflows, retrieval-augmented generation, declarative stack deployment, and a full Model Context Protocol server — backed by PostgreSQL.
You bring the product. SOAT handles the infrastructure layer.
Shipping AI applications means rebuilding the same infrastructure on every project: users, API keys, encrypted secrets, file storage, embeddings, conversation history, agent tool calling, traces, observability. SOAT solves all of it once and exposes it through four equivalent surfaces — REST, MCP, CLI, and TypeScript SDK — so the same operation runs the same way whether you call it from a backend, Claude Desktop, a CI script, or your own UI.
- Identity & access — users, projects, JWTs, project keys, personal API keys, and reusable IAM policy documents enforced consistently on every surface.
- Files, documents, memories & knowledge — pgvector-backed semantic search across documents and memory entries, with memory containers that keep durable context for agents. See Files, Documents, Memories, and Knowledge.
- Agents that actually do things — tool-calling reasoning loops with HTTP, MCP, client-side, and SOAT-platform tools, including multi-agent workflows where agents invoke other agents. See Agents.
- Declarative deployments — Agent Formations let you define providers, memories, tools, and agents in a single template and deploy in dependency order.
- Sessions — a 1-user ↔ 1-agent interface that hides actors and conversations. Two API calls take a user from message to answer. See Sessions.
- Async generations — kick off long-running agent runs, poll for status, or fire a webhook on completion.
- Operations — encrypted secrets, HMAC-signed webhooks with event-pattern subscriptions, and trace records for every generation. See Webhooks and Traces.
- MCP native — every operation is automatically available as an MCP tool. Plug SOAT into Claude Desktop, Cursor, or any MCP-compatible runtime. See MCP docs.
Read the full documentation — quick start, key concepts, module reference, API, MCP, CLI, and SDK guides.
The fastest path is Docker Compose:
git clone https://github.com/ttoss/soat.git
cd soatFollow the Getting Started Guide to bring up the server and database in under five minutes.
| Surface | Best for | Docs |
|---|---|---|
| REST API | Backend services and custom integrations | https://soat.ttoss.dev/docs/api |
| MCP server | Claude Desktop, Cursor, and other MCP-aware AI runtimes | https://soat.ttoss.dev/docs/mcp |
CLI (soat) |
Scripts, CI pipelines, and local exploration | https://soat.ttoss.dev/docs/cli |
SDK (@soat/sdk) |
TypeScript and JavaScript applications | https://soat.ttoss.dev/docs/sdk |
All four hit the same business logic and the same permission engine.
This is a monorepo managed with pnpm and Turbo:
packages/server— the SOAT server (REST + MCP, business logic, permissions)packages/postgresdb— Sequelize models and database utilitiespackages/sdk— TypeScript SDK generated from the OpenAPI specspackages/cli— thesoatcommand-line clientpackages/website— the documentation site (Docusaurus)
Issues and pull requests are welcome. Run the tests with pnpm --filter @soat/server test and the smoke suite with pnpm run -w smoke-tests.
MIT — see the LICENSE file for details.
