Connect Vericto to your stack in minutes.
TCP proxy, Runtime API, CLI, Validation API, or MCP for AI agents. Vericto works with any driver, ORM or pipeline that uses a standard connection string, without rewriting your code.
DATABASE_URL=postgres://vericto-proxy:5433/db
curl .../api/v1/proxy/query -d '{"query":"DELETE FROM users"}'
curl .../api/v1/ci/check-key -d '{"sql":"DELETE FROM users"}'
vericto check migrations/0001.sql
check_sql {"sql": "DELETE FROM users"}
Connection modes
Pick the one that fits your architecture. The same deterministic AST evaluation across all five.
TCP proxy
The simplest way: point your connection string at the Vericto proxy instead of your database. It intercepts every query at the protocol level (Postgres/MySQL) and blocks destructive ones before they land. Zero code changes.
Runtime API
Runtime protection from your code: your application sends each query to /api/v1/proxy/query, one per call, and runs it only if it is not blocked. The verdict is enforced as far as your application honours it. It is recorded in Queries, like with the TCP proxy. All six dialects.
CLI
The vericto binary validates SQL against your workspace rules in pre-commit hooks and CI/CD pipelines. Exit code mirrors the verdict. Binaries for Linux, macOS and Windows published on every release.
Validation API
Checks batches of SQL without running them, from your own tools: /api/v1/ci/check-key returns a verdict per statement and an exit_code. Nothing is executed. All six dialects.
MCP
Your coding agent (Claude Code or another MCP client) checks SQL against your workspace rules while it writes it, before the commit. A remote MCP server: paste a URL and your API key, nothing to install.
Which mode should you use?
| TCP proxy | Runtime API | CLI | Validation API | MCP | |
|---|---|---|---|---|---|
| Zero code changes | ✓ | — | — | — | — |
| Inline blocking (in the query path) | ✓ | — | — | — | — |
| Runtime protection (the query runs only if it is not blocked) | ✓ | If your app honours the verdict | — | — | — |
| Checks SQL without running it | — | — | ✓ | ✓ | ✓ |
| Ideal for CI/CD and pre-commit | — | — | ✓ | ✓ | — |
| Requires deploying the proxy | ✓ | — | — | — | — |
| Dialects | Postgres · MySQL | All 6 | All 6 | All 6 | All 6 |
| Checks SQL while the agent writes it | — | — | — | — | ✓ |
Databases
PostgreSQL
Full Postgres dialect support (CTEs, subqueries, extensions) using pg_query, the official parser. Available via inline TCP proxy or the HTTP evaluation API.
TCP ProtocolVia APISDKCLIMySQL
Full MySQL dialect support with dialect-specific semantic rules: DELETE with LIMIT is valid in MySQL, Vericto applies the correct rules. Available via inline TCP proxy or the HTTP API.
TCP ProtocolVia APISDKCLIOracle
The Oracle dialect through the Python and Node SDKs, the Runtime API, the CLI and MCP; there is no TCP proxy for Oracle. Blocks DELETE/UPDATE without WHERE, DROP TABLE and TRUNCATE with the same deterministic AST engine.
Via APISDKCLISQL Server
The SQL Server (T-SQL) dialect through the Python and Node SDKs, the Runtime API, the CLI and MCP; there is no TCP proxy for SQL Server. AST rules for T-SQL, CTEs and proprietary syntax included.
Via APISDKCLISQLite
The SQLite dialect for agents, embedded apps and local databases. No proxy, because SQLite lives inside your application: Python and Node SDKs, Runtime API, CLI and MCP. Blocks ATTACH, PRAGMAs that turn safety off, load_extension and VACUUM INTO.
Via APISDKCLISnowflake
The Snowflake dialect for agents and analytics pipelines: blocks stage unloads, shares to other accounts, role switches and warehouse cost, as well as TRUNCATE and DROP. No TCP proxy: Python and Node SDKs, Runtime API, CLI and MCP.
Coming soon: a read-only history connector that reads ACCOUNT_USAGE.QUERY_HISTORY and shows what Vericto would have blocked (observe only, after execution).
Frameworks & tools
Python SDK
pip install vericto. Wraps snowflake-connector-python, sqlite3, SQLAlchemy and any DB-API driver, with integrations for LangChain, LlamaIndex, dbt (vericto-dbt check) and Airflow. PyPI · vericto-python.
Node.js SDK
npm install @vericto/sdk. Wraps snowflake-sdk and better-sqlite3, with an integration for LangChain.js SQL agents and a Runtime API client for any other driver. npm · vericto-node.
LangChain
VerictoSQLDatabase (Python, vericto[langchain]) and @vericto/sdk/langchain (LangChain.js) check every query a SQL agent or chain runs; a blocked query does not run, and the model gets the reason and the suggested fix.
dbt
pip install "vericto[dbt]". vericto-dbt check checks the compiled SQL of your models, snapshots and hooks in CI, and reports it as a table, JSON or SARIF. It only reads dbt's artifacts: nothing runs.
Airflow
pip install "vericto[airflow]". VerictoSQLExecuteQueryOperator checks each statement before the task runs it, and the guard_sql_tasks cluster policy adds the same check to the SQL tasks you already have. A blocked task fails without running anything.
MCP
Vericto's remote MCP server: Claude Code, Kiro and other MCP clients call check_sql and get your rules' verdict before they run the SQL.
AI agentsGitHub Actions
The vericto/check-sql action checks the *.sql files each PR changes, shows findings as Code Scanning annotations and fails the job when something is blocked. With an API key, or with GitHub OIDC and no stored secret.
GitLab CI
Run the Vericto CLI as a job in your GitLab CI pipeline. Validate SQL changes on every merge request and stop the pipeline if a destructive query appears.
CI/CDReady to connect your stack?
Get started free with the TCP proxy in minutes, or check the integration guide for the step-by-step detail.