About GoSQLX
GoSQLX is a pure-Go SQL parsing SDK and toolset for developers working with SQL across supported dialects. It combines AST parsing with formatting, linting, security scanning, metadata extraction, and an MCP server.
Key features
- 01Parse SQL into abstract syntax trees
- 02Support eight SQL dialects
- 03Format and transform SQL queries
- 04Scan for injection risks and lint issues
- 05Extract SQL metadata
- 06Provide CLI, VS Code extension, and GitHub Action
Use cases
- 01Validate SQL across dialects in a project
- 02Format queries for code review
- 03Scan SQL for injection risks and lint violations
- 04Let MCP clients analyze SQL
MCP support
The remote MCP server exposes seven SQL tools over Streamable HTTP for MCP clients, including Claude and Cursor.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://mcp.gosqlx.dev/mcpclaude mcp add --transport http ajitpratap0-gosqlx https://mcp.gosqlx.dev/mcp{"mcpServers":{"ajitpratap0-gosqlx":{"type":"http","url":"https://mcp.gosqlx.dev/mcp"}}}Open in Cursor{"servers":{"ajitpratap0-gosqlx":{"type":"http","url":"https://mcp.gosqlx.dev/mcp"}}}Open in VS Code{"mcpServers":{"ajitpratap0-gosqlx":{"type":"http","url":"https://mcp.gosqlx.dev/mcp"}}}{"mcpServers":{"ajitpratap0-gosqlx":{"serverUrl":"https://mcp.gosqlx.dev/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project README
GoSQLX
Pure-Go SQL parser, formatter, linter and security scanner for 8 dialects.
Playground · Docs · Benchmarks · VS Code · MCP server
| ~2.9M parses/sec† | 349 ns parse latency† | ~80–85% SQL-99 (est.) | 8 dialects | 0 race conditions |
|---|
† Parse stage only (pre-tokenized input to AST), SELECT id, name FROM users, Apple M4, Go 1.27, median of 20 runs of BenchmarkPerformanceBaseline. Complex queries take longer (see performance_baselines.json). Reproduce: go test -run ^$ -bench BenchmarkPerformanceBaseline -benchmem -count=20 ./pkg/sql/parser/.
What is GoSQLX?
GoSQLX is a production-ready SQL parsing SDK for Go. It tokenizes, parses, and generates ASTs from SQL with zero-copy optimizations and intelligent object pooling - parsing a simple SELECT in about 349 ns (~2.9M parses/sec).
Why GoSQLX?
- Not an ORM - a parser. You get the AST, you decide what to do with it.
- Not slow - zero-copy tokenization, sync.Pool recycling, no allocations on hot paths.
- Not limited - PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, SQLite, Snowflake, ClickHouse. CTEs, window functions, MERGE, set operations.
- Not just a library - CLI, VS Code extension, GitHub Action, MCP server, WASM playground, Python bindings.
Install
Go library
go get github.com/ajitpratap0/GoSQLX
CLI
go install github.com/ajitpratap0/GoSQLX/cmd/gosqlx@latest
VS Code
code --install-extension ajitpratap0.gosqlx
The extension bundles the binary, so there is no extra setup. Learn more.
MCP server
claude mcp add --transport http gosqlx https://mcp.gosqlx.dev/mcp
7 SQL tools in Claude, Cursor, or any MCP client. MCP guide.
Claude Code plugin (skills, slash commands, SQL reviewer agent): /plugin marketplace add ajitpratap0/GoSQLX then /plugin install gosqlx@gosqlx - details.
ChatGPT app: add https://mcp.gosqlx.dev/mcp as a connector in developer mode for an interactive analysis widget - details.
GitHub Action
- uses: ajitpratap0/GoSQLX@v1
with:
files: '**/*.sql'
validate: true
Quick start
Source: examples/readme_quickstart/main.go, compiled in CI against HEAD and the latest release.
package main
import (
"context"
"errors"
"fmt"
"log"
"github.com/ajitpratap0/GoSQLX/pkg/gosqlx"
"github.com/ajitpratap0/GoSQLX/pkg/sql/ast"
)
func main() {
ctx := context.Background()
// ParseTree is the recommended entry point. It returns an
// opaque handle with built-in helpers.
tree, err := gosqlx.ParseTree(ctx, "SELECT id, name FROM users WHERE active = true",
gosqlx.WithDialect("postgresql"))
if err != nil {
// Sentinel errors work with errors.Is
if errors.Is(err, gosqlx.ErrSyntax) {
log.Fatalf("syntax error: %v", err)
}
log.Fatal(err)
}
fmt.Println("Tables:", tree.Tables())
fmt.Println(tree.Format(gosqlx.WithIndent(2), gosqlx.WithUppercaseKeywords(true)))
// Walk the AST - typed walkers avoid the type-assertion dance:
tree.WalkSelects(func(s *ast.SelectStatement) bool {
fmt.Printf(" SELECT with %d columns\n", len(s.Columns))
return true
})
// The legacy Parse/Format/Validate API still works for v1.x code.
// See docs/MIGRATION.md for the Tree migration guide.
}
Output:
Tables: [users]
SELECT id, name
FROM users
WHERE active = true
SELECT with 2 columns
Formatting turns one-line SQL into a readable query:
Features
- Parser - zero-copy tokenizer, recursive descent parser and full AST generation.
- Analysis - SQL injection scanner, 30 lint rules (L001-L030), 20 optimizer rules and metadata extraction.
- Tooling - AST-based formatter, query transforms API, VS Code extension and GitHub Action.
- Syntax highlighting - dialect-aware highlighting for terminals (ANSI), HTML/CSS, JSON spans, LSP semantic tokens and WASM;
gosqlx highlight query.sqlorgosqlx.HighlightANSI(sql). - Multi-dialect - 8 dialects with dedicated grammar support: PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, SQLite, Snowflake, ClickHouse. The
--dialectflag andWithDialectaccept 11 names: those 8 (postgresql,mysql,mariadb,sqlserver,oracle,sqlite,snowflake,clickhouse) plusgeneric,bigqueryandredshift. BigQuery and Redshift have no dialect-specific keyword set (they use the generic keywords) and only capability-gated grammar, such as BigQuery'sQUALIFY,PIVOT/UNPIVOT,UNNESTinFROMand(struct).fieldaccess. - AI-ready - MCP server with 7 tools, public remote endpoint, Streamable HTTP.
- Tested - race-detector clean in CI, ~80-85% SQL-99 (estimated).
Documentation
- Getting Started - parse your first SQL in 5 minutes
- Usage Guide - comprehensive patterns and examples
- API Reference - complete API documentation
- CLI Guide - command-line tool reference
- SQL Compatibility - dialect support matrix
- MCP Guide - AI assistant integration
- Architecture - system design deep-dive
- Benchmarks - performance data and methodology
- Changelog - what changed in each version
Contributing
GoSQLX is built by contributors like you. Whether it's a bug fix, new feature, documentation improvement, or just a typo - every contribution matters.
git clone https://github.com/ajitpratap0/GoSQLX.git && cd GoSQLX
task check # fmt → vet → lint → test (with race detection)
- Fork & branch from
main - Write tests - we use TDD and require race-free code
- Run
task check- must pass before PR - Open a PR - we review within 24 hours
Contributing Guide · Code of Conduct · Governance
Community
Questions or ideas: Discussions. Found a bug or want a feature: Issues.
License
Apache License 2.0 - see LICENSE for details.
gosqlx.dev · Playground · Docs · MCP Server · VS Code
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.