mcp-sequel
This server connects to and queries MySQL, MariaDB, PostgreSQL, and SQLite databases using natural language or raw SQL through the MCP protocol.
Core tools:
get_version— Retrieve the installed version of themcp-sequelpackage.list_connections— List all configured named database connections (with types and descriptions).query— Execute SQL on a specified connection with an optional database override. Returns JSON with columns, rows, row count, and whether a row limit was applied.
Additional features (via configuration):
Multiple named connections — Manage connections like
production,staging, andlocalsimultaneously.Read-only mode — Restrict connections to SELECT/SHOW/DESCRIBE/EXPLAIN queries, enforced at both the application and database levels.
Per-connection row limits — Cap returned rows to avoid overwhelming responses.
SSH tunnel support — Route MySQL or PostgreSQL connections through a bastion/jump host using a key file or password.
Allows querying MariaDB databases via natural language through Claude, with the same capabilities as MySQL integration: SELECT/SHOW/DESCRIBE/EXPLAIN queries, row limits, readonly mode, and SSH tunnel support.
Allows querying MySQL databases via natural language through Claude, supporting SELECT/SHOW/DESCRIBE/EXPLAIN queries with configurable row limits, readonly mode, and optional SSH tunnel connections.
Allows querying SQLite databases via natural language through Claude, supporting SELECT/SHOW/DESCRIBE/EXPLAIN queries with configurable row limits and readonly mode (OS-level enforcement via ?mode=ro).
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., "@mcp-sequelShow databases for production"
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.
mcp-sequel
MCP server for Claude that connects to MySQL, MariaDB, PostgreSQL, and SQLite databases. Query your databases using natural language. Supports multiple named connections, SSH tunnels, readonly mode, and per-connection row limits.
Install & Registration
Tip: ask Claude to read this README and set up the server for you.
Option 1: uvx (recommended) — no installation needed, always runs the latest version:
claude mcp add mcp-sequel uvx mcp-sequelOption 2: from cloned repository:
git clone https://github.com/eukos/mcp-sequel
claude mcp add mcp-sequel uv run --directory /path/to/mcp-sequel mcp-sequelRelated MCP server: MariaDB MCP Server
Configuration
Tip: ask Claude to read this README and create a connection config for you.
One file per connection in ~/.config/mcp-sequel/. The filename (without .json) becomes the connection name.
~/.config/mcp-sequel/
├── production.json
├── staging.json
└── local.jsonEach file is one connection. Examples:
MySQL / MariaDB
{
"type": "mysql",
"host": "db.example.com",
"port": 3306,
"user": "analyst",
"password": "secret",
"database": "myapp",
"readonly": true,
"row_limit": 1000,
"description": "Production replica, analytics only"
}Field | Required | Default | Description |
| yes | — |
|
| yes | — | hostname or IP |
| yes | — | database user |
| yes | — | database password |
| no |
| TCP port |
| no | — | default database; can be overridden per query |
| no |
| if true, only SELECT/SHOW/DESCRIBE/EXPLAIN are allowed |
| no |
| max rows returned; |
| no | — | human-readable label shown in |
| no | — | SSH tunnel config (see below); routes the connection through a bastion host |
MySQL via SSH tunnel
Use ssh_tunnel when the database is only reachable through a bastion/jump host. host and port in the top-level config refer to the DB as seen from the SSH server (commonly localhost).
With a key file (most common):
{
"type": "mysql",
"host": "localhost",
"port": 3306,
"user": "reader",
"password": "secret",
"database": "myapp",
"ssh_tunnel": {
"host": "bastion.example.com",
"user": "ubuntu",
"key_file": "~/.ssh/id_rsa"
}
}With an SSH password:
{
"type": "mysql",
"host": "localhost",
"port": 3306,
"user": "reader",
"password": "secret",
"ssh_tunnel": {
"host": "bastion.example.com",
"user": "ubuntu",
"password": "sshpass"
}
}Field | Required | Default | Description |
| yes | — | SSH server hostname or IP |
| yes | — | SSH username |
| no* | — | path to private key file ( |
| no* | — | SSH password (if not using key file) |
| no |
| SSH server port |
* at least one of key_file or password should be provided.
PostgreSQL
{
"type": "postgresql",
"host": "db.example.com",
"port": 5432,
"user": "analyst",
"password": "secret",
"database": "myapp",
"readonly": true,
"row_limit": 1000,
"description": "Production PostgreSQL"
}Field | Required | Default | Description |
| yes | — |
|
| yes | — | hostname or IP |
| yes | — | database user |
| yes | — | database password |
| no |
| TCP port |
| no* | — | database to connect to; can be passed per query instead |
| no |
| if true, connection is opened in read-only mode (DB-level enforcement) |
| no |
| max rows returned; |
| no | — | human-readable label shown in |
| no | — | SSH tunnel config (same format as MySQL) |
* database must be provided either in the config or per query — PostgreSQL requires a database to connect.
SQLite
{
"type": "sqlite",
"path": "/data/analytics.db",
"readonly": true,
"row_limit": 1000,
"description": "Local analytics database"
}Field | Required | Default | Description |
| yes | — |
|
| yes | — | absolute path to the |
| no |
| if true, opens connection with |
| no |
| max rows returned; |
| no | — | human-readable label shown in |
Set permissions to owner-only:
chmod 600 ~/.config/mcp-sequel/*.jsonUsage
After registering, restart Claude to load the server. Then try:
"List available database connections"
"Show databases for staging"
"How many customers do we have on production?"
"Show me the schema of the orders table"
"Query local: SELECT * FROM users LIMIT 10"
"Query production: show me the top 10 users by order count"
License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/eukos/mcp-sequel'
If you have feedback or need assistance with the MCP directory API, please join our Discord server