Skip to main content

MCP server for Claude that connects to MySQL, MariaDB, and SQLite databases

Project description

mcp-sequel

MCP server for Claude that connects to MySQL, MariaDB, 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-sequel

Option 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-sequel

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.json

Each 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
type yes "mysql" or "mariadb"
host yes hostname or IP
user yes database user
password yes database password
port no 3306 TCP port
database no default database; can be overridden per query
readonly no true if true, only SELECT/SHOW/DESCRIBE/EXPLAIN are allowed
row_limit no 1000 max rows returned; null for no limit
description no human-readable label shown in list_connections
ssh_tunnel 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
host yes SSH server hostname or IP
user yes SSH username
key_file no* path to private key file (~ expanded)
password no* SSH password (if not using key file)
port no 22 SSH server port

* at least one of key_file or password should be provided.

SQLite

{
  "type": "sqlite",
  "path": "/data/analytics.db",
  "readonly": true,
  "row_limit": 1000,
  "description": "Local analytics database"
}
Field Required Default Description
type yes "sqlite"
path yes absolute path to the .db file
readonly no true if true, opens connection with ?mode=ro (OS-level enforcement)
row_limit no 1000 max rows returned; null for no limit
description no human-readable label shown in list_connections

Set permissions to owner-only:

chmod 600 ~/.config/mcp-sequel/*.json

Usage

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_sequel-0.1.1.tar.gz (73.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_sequel-0.1.1-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file mcp_sequel-0.1.1.tar.gz.

File metadata

  • Download URL: mcp_sequel-0.1.1.tar.gz
  • Upload date:
  • Size: 73.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mcp_sequel-0.1.1.tar.gz
Algorithm Hash digest
SHA256 7e14faa9e256bf200ff83c4eddd678ee0a66a93937a099a04cb064f279d6a058
MD5 53d4d338c92b6b4b0be6432720cb26a5
BLAKE2b-256 319cda966c0a902e0e769aa0e36578864f211af8e226ebc9885f225389a0dab0

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_sequel-0.1.1.tar.gz:

Publisher: publish.yml on eukos/mcp-sequel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcp_sequel-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: mcp_sequel-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mcp_sequel-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fe7ec5933304de2c89ebf63e59f11623af20a9fcbb6304aa1f353336bf03c931
MD5 10a540b1dcd676c3fba10f7453d039f0
BLAKE2b-256 f4747764ee663e9129afd720d52887f2dac9d25879be40f595b12ba38e4bed33

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_sequel-0.1.1-py3-none-any.whl:

Publisher: publish.yml on eukos/mcp-sequel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page