SQL static analysis & query-equivalence for Postgres, MySQL, SQLite, and SQL Server
MCPpedia last refreshed this data
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"sqlike": {
"args": [
"-y",
"@sqlike/mcp"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Deterministic SQL static analysis and query-equivalence checking for Postgres, MySQL, SQLite, and SQL Server, as an MCP server, a CLI, and a shared client library. Part of sqlike.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in data
Manage Supabase projects — databases, auth, storage, and edge functions
Query and manage PostgreSQL databases directly from AI assistants
Zero-dependency, token-efficient database MCP server for Postgres, MySQL, SQL Server, MariaDB, SQLite.
🔥 Official Firecrawl MCP Server - Adds powerful web scraping and search to Cursor, Claude and any other LLM clients.
MCP Security Weekly
Get CVE alerts and security updates for io.github.orifisher2/sqlike-mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
The deterministic safety net for SQL — for the code you write and the code your AI writes.
Your AI wrote a SQL query, or refactored one. Is it correct? Does it still return the same results? sqlike answers that — deterministically, in about a millisecond, and without your real data ever leaving your machine. Part of sqlike.
These are thin remote clients: an MCP server, a CLI, and a shared client library. They tokenize your SQL locally — identifiers and literals are masked before anything leaves your machine — and forward only the tokenized query to the sqlike API. There is no analysis engine here; that runs server-side and is closed.
59% of developers ship AI-generated code they don't fully understand, and AI SQL looks plausible
while being wrong more often than you'd like — a LEFT JOIN quietly becomes an INNER and drops
rows, a WHERE goes missing and updates everything, tables get joined the wrong way. Plausible is
not correct.
sqlike is the deterministic check that catches it — a guardrail, not another prompt. It
verifies whether a rewrite really preserves results and flags unsafe patterns, and it never
rubber-stamps a change that isn't safe: when it can't prove equivalence, it says Undecided rather
than guess. No model in the loop means no retry loops, no per-token cost, and the same answer every
time.
Add it to any MCP client (Claude Desktop, Cursor, etc.):
{
"mcpServers": {
"sqlike": { "command": "npx", "args": ["-y", "@sqlike/mcp"] }
}
}
Or install via Smithery. An optional
SQLIKE_API_KEY environment variable raises rate limits; without it you get the open anonymous tier.
analyzeStatic analysis of one SQL query: validity, anti-patterns, suggested rewrites, and schema/index advice. Returns the JSON analysis envelope.
| Argument | Type | Description |
|---|---|---|
sql | string | The SQL query to analyze. Required. |
schema | string | Optional DDL (CREATE TABLE / CREATE INDEX) for column- & type-aware checks. |
dialect | string | postgres (default), mysql, sqlite, or mssql. |
allow_raw | boolean | Only used when a query fails to parse (so can't be tokenized): send raw SQL for a parse diagnostic. Default false. |
diffCheck whether two SQL queries are equivalent (result-preserving) — for verifying a rewrite or
refactor, a judgement an LLM cannot reliably self-grade. Returns a verdict (Equivalent /
EquivalentWithNotes / Differs / Undecided), a confidence level, and a per-property report
(columns, rows, cardinality, order), so you see what changed, not just a yes/no. Undecided never
means equivalent.
| Argument | Type | Description |
|---|---|---|
sql_a | string | The original query. Required. |
sql_b | string | The rewritten query to check against sql_a. Required. |
schema | string | Optional DDL both queries resolve against (one shared schema). |
dialect | string | postgres (default), mysql, sqlite, or mssql. |