database-mcp-mysql
MCP server giving AI clients safe, structured access to a MySQL database. Two tools, guardrails on by default.
Quick start (Claude Desktop / Claude Code / Cursor)
{
"mcpServers": {
"mysql": {
"command": "uvx",
"args": ["database-mcp-mysql"],
"env": {
"MYSQL_HOST": "127.0.0.1",
"MYSQL_USER": "youruser",
"MYSQL_PASSWORD": "yourpassword",
"MYSQL_DATABASE": "yourdb"
}
}
}
}
Configuration
Sources, highest precedence first: flags, --config YAML, environment
variables, defaults.
Environment variables
MYSQL_HOST, MYSQL_PORT, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE,
or a full MYSQL_DSN (mysql://user:pass@host:3306/db, inline credentials
discouraged).
Password without plaintext
MYSQL_PASSWORD_FILE=/run/secrets/mysql_password(Docker/Kubernetes secrets convention)- In YAML:
connection.password: ${MYSQL_PASSWORD}(env expansion, never a literal)
The password is held in a non-printable type and redacted from all output.
Config file
--config /absolute/path/to/database-mcp.yaml:
connection:
host: 127.0.0.1
port: 3306
user: mcpuser
password: ${MYSQL_PASSWORD}
database: yourdb
guardrails:
readOnly: true
maxRows: 1000
queryTimeoutMs: 30000
Tools
execute_sql: run a single SQL statement. Returns a summary line and compact JSON{columns, rows}.search_objects: list tables with estimated row counts, or describe one table (columns, indexes, foreign keys).
Guardrails
- Read-only by default, enforced twice: a SQL guard plus
SET SESSION TRANSACTION READ ONLYat the server. Pass--allow-writeto enable writes. - Results capped at
maxRows(default 1000,MAX_ROWS). - Statements exceeding
queryTimeoutMs(default 30000,QUERY_TIMEOUT_MS) are aborted.
Full contract: docs/tool-contract.md
mcp-name: io.github.arifulislamat/database-mcp-mysql
Metadata
Release files for database-mcp-mysql 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| database_mcp_mysql-0.2.1.tar.gz | 5.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| database_mcp_mysql-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.0 kB
Release files / database_mcp_mysql-0.2.1.tar.gz
| Download URL | database_mcp_mysql-0.2.1.tar.gz |
|---|---|
| Size | 5.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d72a8a823a9785138a455101792eac0fd996bf53ca859040e703faaa5591a06f
|
|
BLAKE2b-256 checksum How to use checksums |
d6b89b6a8f83d9fa9686562e9b42475e4d1f5f0fd1653b859b787337d353b39b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / database_mcp_mysql-0.2.1-py3-none-any.whl
| Download URL | database_mcp_mysql-0.2.1-py3-none-any.whl |
|---|---|
| Size | 5.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c10024e9d8641f5a6d84fc0988663b20a1fdc81653f18d1bc3b1791ce449371d
|
|
BLAKE2b-256 checksum How to use checksums |
143c8f2f3f2c4020df01a6b7c82a55dea8bff9016c5165c465b01c1925610878
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for database-mcp-mysql 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.