Skip to main content
Glama
rzlco666

Strut Stack SQL

by rzlco666

Strut Stack SQL

Light strut. Extreme load.

Token-efficient MCP server for MySQL, PostgreSQL, and SQLite — written in Rust. Part of the StrutStack ecosystem; usable standalone with any agent client.

Latest release CI License: MIT

Formerly published as mcp-sql-rust (compat binary alias still ships in v1.0).

Mission

  • Token thrift — default 3 tools, columnar {cols,rows,meta}, row/byte caps

  • Best-practice Rust — AST SQL guard before pool checkout, lean release binary

  • Multi-engine — PostgreSQL + MySQL + SQLite in one binary

  • Ship-ready — one-command install, stdio + Streamable HTTP, Cursor-friendly launcher

Related MCP server: tokenlite-mysql-mcp

Install (one command)

curl -fsSL https://raw.githubusercontent.com/rzlco666/strut-stack-sql/main/install.sh | bash
strut-stack-sql --version

Installs to ~/.local/bin (also creates mcp-sql-rust alias). Ensure ~/.local/bin is on your PATH.

Other channels (Homebrew, Scoop, winget, Docker, cargo): docs/INSTALL.md.

Quick start (Cursor)

{
  "mcpServers": {
    "strut-stack-sql": {
      "command": "strut-stack-sql",
      "args": ["--full-tools"],
      "cwd": "${workspaceFolder}"
    }
  }
}

Project .env:

DATABASE_URL=postgresql://user:pass@127.0.0.1:5432/app

Without credentials the server still starts (ephemeral sqlite::memory:) so MCP initialize succeeds; set DATABASE_URL for real queries.

Official workspace launcher (loads nested apps/api/.env, never blocks start on dead DB):

{
  "mcpServers": {
    "strut-stack-sql": {
      "command": "node",
      "args": [
        "/absolute/path/to/strut-stack-sql/packaging/cursor-mcp-launcher.mjs",
        "${workspaceFolder}"
      ]
    }
  }
}

Why this shape

Choice

Detail

Default tools

search_objects, execute_sql, analyze_query_performance

Extra tools

--full-tools (+ DDL aliases need --allow-ddl)

Results

Columnar JSON only by default (token-efficient)

Guard

sqlparser AST; multi-statement deny; write tiers; complexity limits

Timeouts

Client timeout + PG statement_timeout / MySQL max_execution_time

Transports

stdio · --http 127.0.0.1:8080 (/mcp, /healthz)

Measured RSS / cold-start vs Node rivals (same seed query): docs/BENCHMARKS.md. We do not invent QPS leaderboards.

CLI

strut-stack-sql --version
strut-stack-sql                          # stdio, read-only
strut-stack-sql --allow-writes
strut-stack-sql --full-tools
strut-stack-sql --http 127.0.0.1:8080

Docs

Doc

Purpose

docs/QUICKSTART.md

First run

docs/INSTALL.md

All install channels

docs/SECURITY.md

Guard + write tiers

docs/TOOLS.md

Tool schemas

docs/CONFIGURATION.md

.env / TOML / CLI

docs/ARCHITECTURE.md

Modules

docs/BENCHMARKS.md

Reproducible harness

Agent clients

See AGENTS.md for Cursor / OMNI / CodeGraph conventions.

License

MIT

A
license - permissive license
-
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
2dRelease cycle
6Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rzlco666/mcp-sql-rust'

If you have feedback or need assistance with the MCP directory API, please join our Discord server