Provides read-only access to MySQL databases.
Provides read-only access to MySQL databases. That is what the mysql mcp server brings to an AI assistant: the same capability, reachable through the Model Context Protocol rather than a separate app or dashboard.
The server publishes 4 tools. What each one is for:
list_databases — The list_databases tool exposed by this serverlist_tables — The list_tables tool exposed by this serverdescribe_table — The describe_table tool exposed by this serverexecute_query — The execute_query tool exposed by this serverConfiguration is passed through the environment: MYSQL_HOST, MYSQL_PORT, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE, MYSQL_CONNECTION_LIMIT, MYSQL_QUEUE_LIMIT, MYSQL_CONNECT_TIMEOUT. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.
@smithery/cli on npm is all you need. Most clients run it directly, so configuration is a few lines and a restart.
This sits in the database access group, where several servers overlap in what they claim to do but differ sharply once you actually set them up. MySQL's toolset — list_databases, list_tables, describe_table and 1 more — is a fair guide to whether it matches your workflow. It is maintained by dpflucas; worth a glance at recent repository activity before you build anything load-bearing on it.
We check each listing at SyncDev against the project's documentation before it goes live — if something here drifts out of date, it is a bug worth reporting.
| Tool | What it does |
|---|---|
| list_databases | The list_databases tool exposed by this server. |
| list_tables | The list_tables tool exposed by this server. |
| describe_table | The describe_table tool exposed by this server. |
| execute_query | The execute_query tool exposed by this server. |
If you built from source (Option 2):
```json
{
"mcpServers": {
"mysql": {
"command": "node",
"args": ["/path/to/mysql-mcp-server/build/index.js"],
"env": {
"MYSQL_HOST": "your-mysql-host",
"MYSQL_PORT": "3306",
"MYSQL_USER": "your-mysql-user",
"MYSQL_PASSWORD": "your-mysql-password",
"MYSQL_DATABASE": "your-default-database"
},
"disabled": false,
"autoApprove": []
}
}
}Configuration as documented by the project. Restart the client after saving.
| Variable | Description | Required |
|---|---|---|
| MYSQL_HOST | Endpoint or connection string the server talks to. | Optional |
| MYSQL_PORT | Configuration value read at startup. | Optional |
| MYSQL_USER | Configuration value read at startup. | Optional |
| MYSQL_PASSWORD | Configuration value read at startup. | Optional |
| MYSQL_DATABASE | Configuration value read at startup. | Optional |
| MYSQL_CONNECTION_LIMIT | Configuration value read at startup. | Optional |
| MYSQL_QUEUE_LIMIT | Configuration value read at startup. | Optional |
| MYSQL_CONNECT_TIMEOUT | Configuration value read at startup. | Optional |
Read-only SQL access to Postgres — let your assistant inspect schemas and answer questions from real data.
Manage your whole Supabase project in conversation — database, auth, storage, Edge Functions and branches.
Query, modify and analyse local SQLite databases in conversation — the fastest way to chat with a data file.
Metabase ships its own MCP endpoint — search your BI content, build and run queries, and save questions and dashboards without leaving the chat.
Official MongoDB server covering data, schemas and Atlas management — from find queries to spinning up clusters.
Serverless Postgres with database branching — point your assistant at Neon and let it work on disposable copies.