SQLx MCP Server
Provides comprehensive database management tools including table listing, structure inspection, DDL export, and executing read-only and write queries on MySQL databases with engine-specific features.
Provides comprehensive database management tools including table listing, structure inspection, DDL export, and executing read-only and write queries on PostgreSQL databases.
Provides comprehensive database management tools including table listing, structure inspection, DDL export, and executing read-only and write queries on SQLite embedded databases.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SQLx MCP Servershow me the structure of the users table"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SQLx MCP Server
A Model Context Protocol (MCP) server implementation in Rust that provides comprehensive database management tools using SQLx.
π Features
This server provides 6 powerful MCP tools for database management:
π get_database_info - Get basic database information
π list_tables - List all tables with metadata (comments, row counts, etc.)
ποΈ get_table_structure - Get detailed table structure information
π get_table_ddl - Export table DDL (CREATE TABLE statements)
ποΈ execute_readonly_query - Execute read-only SQL queries safely
βοΈ execute_write_query - Execute write SQL operations
π― Smart Configuration Management
Auto-Configuration Detection: Server automatically detects and reports database configuration at startup
Client Notification: Clients receive configuration status via MCP protocol initialization
Flexible URL Management: Optional database URL parameters when server is pre-configured
Secure Display: Database credentials are automatically masked for security
ποΈ Supported Databases
PostgreSQL - Full support with native features
MySQL - Complete functionality including engine-specific features
SQLite - Comprehensive support for embedded database operations
π§ Installation
Option 1: NPM (Recommended)
Install globally via npm:
npm install -g @sqlx-mcp/sqlx-mcpOr use directly with npx (no installation needed):
npx @sqlx-mcp/sqlx-mcp --database-url "postgresql://user:pass@localhost/mydb"Option 2: Build from Source
Prerequisites
Rust 1.70 or later
Git
Build Steps
git clone https://github.com/lihongjie0209/sqlx-mcp.git
cd sqlx-mcp
cargo build --releaseπ Quick Start
1. Run as Standalone Server
Using NPM/npx (Recommended):
# Install globally and run
npm install -g @sqlx-mcp/sqlx-mcp
sqlx-mcp --database-url "postgresql://user:pass@localhost/mydb"
# Or run directly with npx (no installation needed)
npx @sqlx-mcp/sqlx-mcp --database-url "postgresql://user:pass@localhost/mydb"
# With environment variable
export DATABASE_URL="postgresql://user:pass@localhost/mydb"
npx @sqlx-mcp/sqlx-mcpUsing Built Binary:
# With environment variable
export DATABASE_URL="postgresql://user:pass@localhost/mydb"
./target/release/sqlx-mcp
# With command line argument
./target/release/sqlx-mcp --database-url "postgresql://user:pass@localhost/mydb"2. Integrate with Claude Desktop
Add to your Claude Desktop configuration. The server will automatically notify Claude about the current database configuration status.
Using NPM Package (Recommended):
With Environment Variable (Recommended):
{
"mcpServers": {
"sqlx-mcp": {
"command": "npx",
"args": ["@sqlx-mcp/sqlx-mcp"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost/mydb"
}
}
}
}With Command Line Argument:
{
"mcpServers": {
"sqlx-mcp": {
"command": "npx",
"args": ["@sqlx-mcp/sqlx-mcp", "--database-url", "postgresql://user:pass@localhost/mydb"]
}
}
}Without Pre-configuration (require database_url in each tool call):
{
"mcpServers": {
"sqlx-mcp": {
"command": "npx",
"args": ["@sqlx-mcp/sqlx-mcp"]
}
}
}Using Built Binary:
Windows (%APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"sqlx-mcp": {
"command": "D:\\path\\to\\sqlx-mcp\\target\\release\\sqlx-mcp.exe",
"args": ["--database-url", "postgresql://user:pass@localhost/mydb"]
}
}
}macOS/Linux:
{
"mcpServers": {
"sqlx-mcp": {
"command": "/path/to/sqlx-mcp/target/release/sqlx-mcp",
"args": ["--database-url", "postgresql://user:pass@localhost/mydb"]
}
}
}π Database Configuration
The server provides intelligent database configuration management with automatic detection and client notification.
Configuration Priority
The server resolves database connections with the following priority:
Tool Parameter (highest) -
database_urlparameter in individual tool callsCommand Line -
--database-urlargument at server startupEnvironment Variable (lowest) -
DATABASE_URLenvironment variable
Auto-Detection & Client Notification
When clients connect to the MCP server, they automatically receive configuration information:
Configuration Status: Whether a database is pre-configured
Connection Source: How the database was configured (command line, environment, or none)
Masked URL: Database connection string with credentials safely hidden
Usage Guidance: Whether
database_urlparameter is required in tool calls
Example Client Notifications:
No Configuration:
Current database configuration: No database configured. Please provide database_url parameter in tool calls or set DATABASE_URL environment variable.Environment Variable Configuration:
Current database configuration: Database configured via environment variable: postgresql://user:***@localhost:5432/mydb
If a database is already configured, you can omit the database_url parameter in tool calls.Command Line Configuration:
Current database configuration: Database configured via command line: mysql://root:***@localhost:3306/testdb
If a database is already configured, you can omit the database_url parameter in tool calls.Flexible Usage Patterns
Pre-configured Server (Recommended)
# Set up database via environment variable
export DATABASE_URL="postgresql://user:pass@localhost/mydb"
npx @sqlx-mcp/sqlx-mcp
# Or via command line
npx @sqlx-mcp/sqlx-mcp --database-url "postgresql://user:pass@localhost/mydb"Then use tools without database_url parameter:
{
"name": "list_tables",
"arguments": {}
}Per-Tool Database URLs
{
"name": "list_tables",
"arguments": {
"database_url": "postgresql://user:pass@different-host/other-db"
}
}This allows flexible connection management for multiple databases.
π οΈ Tool Usage Examples
Get Database Information
{
"name": "get_database_info",
"arguments": {
"database_url": "postgresql://user:pass@localhost/mydb" // Optional if server is pre-configured
}
}List Tables with Metadata
{
"name": "list_tables",
"arguments": {
"database_url": "postgresql://user:pass@localhost/mydb" // Optional if server is pre-configured
}
}Export Table DDL
{
"name": "get_table_ddl",
"arguments": {
"database_url": "postgresql://user:pass@localhost/mydb", // Optional if server is pre-configured
"table_name": "users"
}
}Execute Safe Read-Only Queries
Supports SELECT, WITH (CTE), SHOW, DESCRIBE, EXPLAIN:
{
"name": "execute_readonly_query",
"arguments": {
"database_url": "postgresql://user:pass@localhost/mydb", // Optional if server is pre-configured
"query": "WITH recent_users AS (SELECT * FROM users WHERE created_at > '2024-01-01') SELECT count(*) FROM recent_users"
}
}Note: When the server is pre-configured with a database (via command line or environment variable), the database_url parameter becomes optional in all tool calls. The server will notify clients about the current configuration status during MCP initialization.
π Security Features
Query Validation: Strict read-only query enforcement for safe operations
SQL Injection Protection: Parameterized queries where possible
Connection Security: Supports SSL/TLS encrypted connections
Access Control: Respects database user permissions
Credential Protection: Database passwords automatically masked in logs and client notifications
Secure Configuration Display: Connection strings shown with sensitive information hidden
ποΈ Architecture
Built with modern Rust ecosystem:
rmcp - Rust MCP SDK for protocol compliance
SQLx - Async SQL toolkit with compile-time checked queries
Tokio - Async runtime for high performance
Serde - Serialization framework for JSON handling
Tracing - Structured logging and debugging
π Documentation
π§ Development & Release
This project includes an advanced automated release system powered by AI:
Environment Setup
For Windows PowerShell users who want to use the automated release features:
# Quick setup using .env file (recommended)
Copy-Item ".env.template" ".env"
notepad .env # Add your OPENROUTER_API_KEY
# Or set environment variable for current session
$env:OPENROUTER_API_KEY = "your-api-key-here"For detailed PowerShell environment setup, see PowerShell Environment Setup Guide.
Release Management
The project includes a comprehensive release script with AI-powered commit message generation:
# Create automated release with AI-generated commit messages
npm run release
# The script will:
# - Bump version numbers
# - Generate intelligent commit messages using AI
# - Update package files
# - Create git commits and tags
# - Push to repositoryFeatures:
π€ AI-powered commit message generation using OpenRouter
π¦ Automatic version management
π Multi-file synchronization (Cargo.toml β package.json)
π Git automation (commit, tag, push)
π₯οΈ Cross-platform support (Windows, macOS, Linux)
π€ Contributing
Fork the repository
Create a feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add some amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Acknowledgments
Model Context Protocol for the protocol specification
SQLx for the excellent SQL toolkit
rmcp for the Rust MCP SDK
π Support
Create an Issue for bug reports
Start a Discussion for questions
Check the Documentation for detailed guides
Made with β€οΈ and π¦ (Rust)
This server cannot be installed
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/lihongjie0209/sqlx-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server