Back to MCP Servers

GoSQLX

7 SQL tools (validate, format, parse, lint, security scan, metadata extraction, full analysis) over Streamable HTTP. Public remote server at mcp.gosqlx.dev - no install needed. 1.25M+ ops/sec, 6 SQL dialects.

developer-toolsgosecurity
By ajitpratap0
1057Updated 1 month agoGoApache-2.0

Installation

npx -y GoSQLX

Configuration

{
  "mcpServers": {
    "GoSQLX": {
      "command": "npx",
      "args": ["-y", "GoSQLX"]
    }
  }
}

How to use

  1. Run the installation command above (if needed)
  2. Open your Claude Code settings file (~/.claude/settings.json)
  3. Add the configuration to the mcpServers section
  4. Restart Claude Code to apply changes

GoSQLX

<div align="center"> <img src="https://raw.githubusercontent.com/ajitpratap0/GoSQLX/main/.github/logo.png" alt="GoSQLX Logo" width="180"/>

Parse SQL at the speed of Go

Go Version Release License PRs Welcome

Website VS Code MCP Glama MCP Server Lint Action

Tests Go Report GoDoc Stars OpenSSF Scorecard

<br/>

๐ŸŒ Try the Playground ย ยทย  ๐Ÿ“– Read the Docs ย ยทย  ๐Ÿš€ Get Started ย ยทย  ๐Ÿ“Š Benchmarks

<br/>
1.38M+ ops/sec<1ฮผs latency85% SQL-998 dialects0 race conditions
</div> <br/>

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 - handling 1.38M+ operations per second with sub-microsecond latency.

// v1.15+ recommended entry point: ParseTree returns an opaque Tree,
// so you don't need to import pkg/sql/ast just to get started.
tree, _ := gosqlx.ParseTree(ctx, "SELECT u.name, COUNT(*) FROM users u JOIN orders o ON u.id = o.user_id GROUP BY u.name",
    gosqlx.WithDialect("postgresql"))
fmt.Println("Tables:", tree.Tables())
fmt.Println(tree.Format(gosqlx.WithIndent(2), gosqlx.WithUppercaseKeywords(true)))

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.
<br/>

Get Started in 60 Seconds

go get github.com/ajitpratap0/GoSQLX
package main

import (
    "fmt"
    "github.com/ajitpratap0/GoSQLX/pkg/gosqlx"
)

func main() {
    ctx := context.Background()

    // ParseTree (v1.15+) is the recommended entry point. It returns an
    // opaque handle with built-in helpers โ€” no need to import pkg/sql/ast.
    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.
}
<br/>

Install Everywhere

<table> <tr> <td width="50%">

๐Ÿ“ฆ Go Library

go get github.com/ajitpratap0/GoSQLX

๐Ÿ–ฅ๏ธ CLI Tool

go install github.com/ajitpratap0/GoSQLX/cmd/gosqlx@latest
gosqlx validate "SELECT * FROM users"
gosqlx format query.sql
gosqlx lint query.sql
</td> <td width="50%">

๐Ÿ’ป VS Code Extension

code --install-extension ajitpratap0.gosqlx

Bundles the binary - zero setup. Learn more โ†’

๐Ÿค– MCP Server (AI Integration)

claude mcp add --transport http gosqlx \
  https://mcp.gosqlx.dev/mcp

7 SQL tools in Claude, Cursor, or any MCP client. Guide โ†’

</td> </tr> </table> <br/>

Features at a Glance

<table> <tr> <td align="center" width="33%"><h3>โšก Parser</h3>Zero-copy tokenizer<br/>Recursive descent parser<br/>Full AST generation<br/>Multi-dialect engine</td> <td align="center" width="33%"><h3>๐Ÿ›ก๏ธ Analysis</h3>SQL injection scanner<br/>30 lint rules (L001โ€“L030)<br/>20 optimizer rules<br/>Metadata extraction</td> <td align="center" width="33%"><h3>๐Ÿ”ง Tooling</h3>AST-based formatter<br/>Query transforms API<br/>VS Code extension<br/>GitHub Action</td> </tr> <tr> <td align="center"><h3>๐ŸŒ Multi-Dialect</h3>PostgreSQL ยท MySQL ยท MariaDB<br/>SQL Server ยท Oracle<br/>SQLite ยท Snowflake ยท ClickHouse</td> <td align="center"><h3>๐Ÿค– AI-Ready</h3>MCP server (7 tools)<br/>Public remote endpoint<br/>Streamable HTTP</td> <td align="center"><h3>๐Ÿงช Battle-Tested</h3>20K+ concurrent ops<br/>Zero race conditions<br/>~85% SQL-99 compliance</td> </tr> </table> <br/>

Documentation

ResourceDescription
๐ŸŒgosqlx.devWebsite with interactive playground
๐Ÿš€Getting StartedParse your first SQL in 5 minutes
๐Ÿ“–Usage GuideComprehensive patterns and examples
๐Ÿ“„API ReferenceComplete API documentation
๐Ÿ–ฅ๏ธCLI GuideCommand-line tool reference
๐ŸŒSQL CompatibilityDialect support matrix
๐Ÿค–MCP GuideAI assistant integration
๐Ÿ—๏ธArchitectureSystem design deep-dive
๐Ÿ“ŠBenchmarksPerformance data and methodology
๐Ÿ“Release NotesWhat's new in each version
<br/>

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)
  1. Fork & branch from main
  2. Write tests - we use TDD and require race-free code
  3. Run task check - must pass before PR
  4. Open a PR - we review within 24 hours

๐Ÿ“‹ Contributing Guide ยท ๐Ÿ“œ Code of Conduct ยท ๐Ÿ›๏ธ Governance

<br/>

Who's Using GoSQLX?

GoSQLX is downloaded and cloned by developers worldwide -- 595 unique cloners in just 14 days. If you're using GoSQLX in your project or organization, we'd love to hear about it!

Project / CompanyUse Case
Your project hereAdd yourself via PR or tell us in Discussions

Using GoSQLX at work? Building something cool with it? Share your story in GitHub Discussions -- it helps the community grow and motivates continued development.

<br/>

Community

<div align="center">

Got questions? Ideas? Found a bug?

<a href="https://github.com/ajitpratap0/GoSQLX/discussions"><img src="https://img.shields.io/badge/๐Ÿ’ฌ_Discussions-Ask_&_Share-purple?style=for-the-badge" alt="Discussions"></a> <a href="https://github.com/ajitpratap0/GoSQLX/issues/new/choose"><img src="https://img.shields.io/badge/๐Ÿ›_Issues-Report_&_Request-red?style=for-the-badge" alt="Issues"></a> <a href="https://gosqlx.dev/blog/"><img src="https://img.shields.io/badge/๐Ÿ“_Blog-Release_Notes-green?style=for-the-badge" alt="Blog"></a>

</div> <br/>

License

Apache License 2.0 - see LICENSE for details.


<div align="center">

<sub>Built with โค๏ธ by the GoSQLX community</sub>

gosqlx.dev ยท Playground ยท Docs ยท MCP Server ยท VS Code

<br/>

If GoSQLX helps your project, consider giving it a โญ

</div>
View source on GitHub