mysql-mcp-server-all
Provides read-only access to MySQL databases, allowing execution of SELECT/SHOW/DESCRIBE/EXPLAIN/WITH queries, retrieving schema information, and sampling table data.
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., "@mysql-mcp-server-allwhat's the schema 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.
mysql-mcp-server-all
A read-only MySQL MCP server that speaks stdio, SSE, and Streamable HTTP — one binary, three transports.
Why this project exists
We needed to expose a MySQL database as an MCP server to Dify, whose "MCP (HTTP)" integration form only supports the Streamable HTTP protocol.
We evaluated the existing ecosystem:
Project | Transport | Dify "HTTP" form |
stdio; remote HTTP mode is stateless & incomplete | ❌ | |
stdio only | ❌ | |
stdio + SSE | ❌ | |
mysql-mcp-server-all (this project) | stdio + SSE + Streamable HTTP | ✅ |
This project is a derived / enhanced work of designcomputer/mysql_mcp_server (MIT). It keeps the same familiar toolset and adds the missing transport — so the same server can serve Claude Code / opencode over stdio, Cherry Studio over SSE, and Dify over Streamable HTTP.
Related MCP server: mcp-database
Features
Three transports via
MCP_TRANSPORT:stdio(default) /sse/streamable-httpRead-only by design: only
SELECT / SHOW / DESCRIBE / EXPLAIN / WITHSingle & multi database mode: omit
MYSQL_DATABASEto query any schema viadb.tableIdentifier whitelist against SQL injection in schema/sample tools
Optional Bearer-token auth for Streamable HTTP (recommended when binding beyond loopback)
Works from Dify, Cherry Studio, Claude Code, opencode and any MCP client
Install
Requires Python 3.10+.
# via uv (recommended)
uvx --from mysql-mcp-server-all mysql-mcp-server-all
# or pip
pip install mysql-mcp-server-allNote: this repository is GitHub-only for now. The PyPI name
mysql-mcp-server-allis reserved for future publishing.
Quick start
# stdio (Claude Code / opencode / Cherry Studio local)
MYSQL_HOST=127.0.0.1 MYSQL_USER=root MYSQL_PASSWORD=secret \
MYSQL_DATABASE=my_db mysql-mcp-server-all
# Streamable HTTP (Dify) with token auth
MYSQL_HOST=127.0.0.1 MYSQL_USER=root MYSQL_PASSWORD=secret \
MYSQL_DATABASE=my_db MCP_TRANSPORT=streamable-http \
MCP_HTTP_HOST=127.0.0.1 MCP_HTTP_PORT=8000 MCP_HTTP_TOKEN=my-token \
mysql-mcp-server-all
# -> http://127.0.0.1:8000/mcpEnvironment variables
Variable | Default | Description |
| (required) | Database host |
|
| Database port |
| (required) | Database user |
| `` | Database password |
| (none) | Default database. Omit → multi-database mode |
|
| Connection timeout (seconds) |
|
|
|
|
| Listen host for |
|
| Listen port for |
| (none) | Bearer token for |
Transports
Transport | Endpoint | Clients |
| — | Claude Code, opencode, Cursor |
|
| Cherry Studio (SSE), Claude Desktop |
|
| Dify (HTTP), Cherry Studio (HTTP) |
Client configuration
Dify (recommended: Streamable HTTP)
MCP type: HTTP
Endpoint URL: http://127.0.0.1:8000/mcp
Auth header: Authorization: Bearer <MCP_HTTP_TOKEN> (if set)
Dynamic client registration: leave disabledDify self-hosted in Docker: use
http://host.docker.internal:8000/mcp, bindMCP_HTTP_HOST=0.0.0.0, and add the target to Dify's SSRF proxy allowlist (SSRF_PROXY_ALLOW_PRIVATE_IPS/SSRF_PROXY_ALLOW_PRIVATE_DOMAINSin Dify'sdocker/.env) — Dify blocks private networks by default.
Cherry Studio
Type: SSE → URL http://127.0.0.1:8000/sse
or HTTP → URL http://127.0.0.1:8000/mcp (streamable-http)Claude Code / opencode (stdio)
{
"mcpServers": {
"mysql": {
"command": "mysql-mcp-server-all",
"env": {
"MYSQL_HOST": "127.0.0.1",
"MYSQL_USER": "root",
"MYSQL_PASSWORD": "secret",
"MYSQL_DATABASE": "my_db"
}
}
}
}opencode: use
"environment"(not"env") inopencode.json.
Tools
Tool | Arguments | Description |
|
| Run a read-only SQL query (SELECT/SHOW/DESCRIBE/EXPLAIN/WITH). Single statement. Returns JSON rows |
|
| Column metadata (SHOW FULL COLUMNS). Accepts |
|
| Sample rows from a table. Accepts |
Security
Read-only enforced in
execute_sql— write/DDL queries are rejectedIdentifier whitelist — only alphanumeric,
_,$, and one.separatorBind loopback by default (
127.0.0.1)Use a least-privilege MySQL user — never
rootwith full grantsAdd token auth (
MCP_HTTP_TOKEN) whenever you bind0.0.0.0SSE transport has no built-in auth — keep it behind a loopback or a reverse proxy with auth (nginx / Caddy)
Credits & License
Derived from designcomputer/mysql_mcp_server (MIT) — same toolset, extended with unified stdio/SSE/Streamable HTTP transports.
MIT License, see LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityCmaintenanceA production-ready MCP server for MySQL database operations, providing secure HTTP endpoints for read-only queries, performance analysis, and server monitoring.609MIT
- AlicenseAqualityCmaintenanceRead-only MySQL/MariaDB MCP server for running SELECT queries safely, with automatic read-only enforcement and query limits.34MIT
- Alicense-qualityBmaintenanceA MySQL MCP server for local stdio clients, enabling database queries and management with read-only/write modes, audit logging, and configurable security.871MIT
- Alicense-qualityDmaintenanceA secure, read-only MySQL database proxy using MCP protocol, enabling SQL queries and table inspections via HTTP.71MIT
Related MCP Connectors
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
MCP server for managing Prisma Postgres.
Federated commerce search across independent WooCommerce merchants. Keyless, read-only MCP server.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/ByteTora/mysql-mcp-server-all'
If you have feedback or need assistance with the MCP directory API, please join our Discord server