SQL validation, formatting, parsing, metadata extraction, linting, and security analysis.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this when the user wants a complete review of a SQL query. Runs validate, parse, metadata, security, lint, and format concurrently and returns one composite report; hosts that support MCP Apps render it as an interactive report.
The SQL string to analyze
Use this when the user wants a complete review of a SQL query. Runs validate, parse, metadata, security, lint, and format concurrently and returns one composite report; hosts that support MCP Apps render it as an interactive report.
| Argument | Type | Description |
|---|---|---|
| sql* | string | The SQL string to analyze |
{
"type": "object",
"required": [
"sql"
],
"properties": {
"sql": {
"type": "string",
"description": "The SQL string to analyze"
}
}
}Use this when the user wants the tables, columns, and functions a SQL query references (e.g. for lineage or impact analysis). Returns {tables, columns, functions}.
| Argument | Type | Description |
|---|---|---|
| sql* | string | The SQL string to analyze |
{
"type": "object",
"required": [
"sql"
],
"properties": {
"sql": {
"type": "string",
"description": "The SQL string to analyze"
}
}
}Use this when the user wants SQL pretty-printed or reformatted: one clause per line, optional upper-case keywords and trailing semicolon. Comments are not kept. Returns {formatted_sql, options}.
| Argument | Type | Description |
|---|---|---|
| sql* | string | The SQL string to format |
| indent_size | number | Spaces per indent level for nested blocks such as CREATE TABLE columns; clauses always start at column 0. 0 puts each statement on one line (default: 2) |
| add_semicolon | boolean | Append a trailing semicolon (default: false) |
| uppercase_keywords | boolean | true upper-cases all SQL keywords (AND, IN, CASE, ...), but not data type names. false keeps the formatter's casing: clause keywords (SELECT, FROM, WHERE, ...) upper-case, other keywords (e.g. and, or) may keep their input case (default: false) |
{
"type": "object",
"required": [
"sql"
],
"properties": {
"sql": {
"type": "string",
"description": "The SQL string to format"
},
"indent_size": {
"type": "number",
"description": "Spaces per indent level for nested blocks such as CREATE TABLE columns; clauses always start at column 0. 0 puts each statement on one line (default: 2)"
},
"add_semicolon": {
"type": "boolean",
"description": "Append a trailing semicolon (default: false)"
},
"uppercase_keywords": {
"type": "boolean",
"description": "true upper-cases all SQL keywords (AND, IN, CASE, ...), but not data type names. false keeps the formatter's casing: clause keywords (SELECT, FROM, WHERE, ...) upper-case, other keywords (e.g. and, or) may keep their input case (default: false)"
}
}
}Use this when the user wants SQL style feedback. Applies the same 10 rules as `gosqlx lint`: L001 trailing whitespace, L002 mixed indentation, L003 consecutive blank lines, L004 indentation depth, L005 line length (>100), L006 column alignment, L007 keyword case (upper), L008 comma placement (trailing), L009 aliasing consistency, L010 redundant whitespace. Returns {violation_count, violations}.
| Argument | Type | Description |
|---|---|---|
| sql* | string | The SQL string to lint |
{
"type": "object",
"required": [
"sql"
],
"properties": {
"sql": {
"type": "string",
"description": "The SQL string to lint"
}
}
}Use this when the user wants to know how SQL parses: returns an AST summary with the statement count and the type of each statement.
| Argument | Type | Description |
|---|---|---|
| sql* | string | The SQL string to parse |
{
"type": "object",
"required": [
"sql"
],
"properties": {
"sql": {
"type": "string",
"description": "The SQL string to parse"
}
}
}Use this when the user wants SQL checked for injection patterns: tautologies, UNION attacks, stacked queries, comment bypasses, and more. Returns findings with severity counts.
| Argument | Type | Description |
|---|---|---|
| sql* | string | The SQL string to scan |
{
"type": "object",
"required": [
"sql"
],
"properties": {
"sql": {
"type": "string",
"description": "The SQL string to scan"
}
}
}Use this when the user wants to know whether a SQL statement is syntactically valid, optionally for a specific dialect. Returns {valid: bool, error?: string, dialect?: string}.
| Argument | Type | Description |
|---|---|---|
| sql* | string | The SQL string to validate |
| dialect | string | SQL dialect: generic, postgresql, mysql, mariadb, sqlserver, oracle, sqlite, snowflake, bigquery, redshift, clickhouse |
{
"type": "object",
"required": [
"sql"
],
"properties": {
"sql": {
"type": "string",
"description": "The SQL string to validate"
},
"dialect": {
"enum": [
"generic",
"postgresql",
"mysql",
"mariadb",
"sqlserver",
"oracle",
"sqlite",
"snowflake",
"bigquery",
"redshift",
"clickhouse"
],
"type": "string",
"description": "SQL dialect: generic, postgresql, mysql, mariadb, sqlserver, oracle, sqlite, snowflake, bigquery, redshift, clickhouse"
}
}
}