MySQL
Interact with and manage MySQL databases. Requires connection details configured via environment variables.
MySQL MCP Server
An MCP server for interacting with MySQL databases.
This server supports executing read-only queries (query) and write queries that are ultimately rolled back (test_execute).
Setup
Environment Variables
Add the following environment variables to ~/.mcp/.env:
MYSQL_HOST=host.docker.internal # Hostname to access host services from Docker container
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=your_password
Note:
host.docker.internalis a special DNS name for accessing host machine services from Docker containers. Use this setting when connecting to a MySQL server running on your host machine. If connecting to a different MySQL server, change to the appropriate hostname.
mcp.json Configuration
{
"mcpServers": {
"mysql": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--add-host=host.docker.internal:host-gateway",
"--env-file",
"/Users/username/.mcp/.env",
"ghcr.io/xiangma9712/mcp/mysql"
]
}
}
}
Usage
Starting the Server
docker run -i --rm --add-host=host.docker.internal:host-gateway --env-file ~/.mcp/.env ghcr.io/xiangma9712/mcp/mysql
Note: If you're using OrbStack,
host.docker.internalis automatically supported, so the--add-hostoption can be omitted. While Docker Desktop also typically supports this automatically, adding the--add-hostoption is recommended for better reliability.
Available Commands
1. Execute Read-only Query
{
"type": "query",
"payload": {
"sql": "SELECT * FROM your_table"
}
}
Response:
{
"success": true,
"data": [
{
"id": 1,
"name": "example"
}
]
}
2. Test Query Execution
{
"type": "test_execute",
"payload": {
"sql": "UPDATE your_table SET name = 'updated' WHERE id = 1"
}
}
Response:
{
"success": true,
"data": "The UPDATE SQL query can be executed."
}
3. List Tables
{
"type": "list_tables"
}
Response:
{
"success": true,
"data": ["table1", "table2", "table3"]
}
4. Describe Table
{
"type": "describe_table",
"payload": {
"table": "your_table"
}
}
Response:
{
"success": true,
"data": [
{
"Field": "id",
"Type": "int(11)",
"Null": "NO",
"Key": "PRI",
"Default": null,
"Extra": ""
},
{
"Field": "name",
"Type": "varchar(255)",
"Null": "YES",
"Key": "",
"Default": null,
"Extra": ""
}
]
}
Implementation Details
- Implemented in TypeScript
- Uses mysql2 package
- Runs as a Docker container
- Accepts JSON commands through standard input
- Returns JSON responses through standard output
- Uses
host.docker.internalto connect to host MySQL (compatible with both OrbStack and Docker Desktop)
Security Considerations
- Uses environment variables for sensitive information management
- SQL injection prevention is the implementer's responsibility
- Proper network configuration required for production use
- Appropriate firewall settings needed when connecting to host machine services
相關伺服器
MySQL MCP Server
Provides read-only access to MySQL databases, allowing LLMs to inspect schemas and execute queries.
Mem0 MCP
Integrates with Mem0.ai to provide persistent memory capabilities for LLMs, supporting cloud, Supabase, and local storage.
Microsoft SQL Server MCP
A .NET-powered MCP server for interacting with Microsoft SQL Server databases.
Library MCP
A local server to query and interact with Markdown knowledge bases by tags, text, slug, or date.
Datai MCP Server
Provides real-time wallet portfolio data, including DeFi, token, and NFT holdings, using the Datai API.
MCP Qdrant Codebase Embeddings
Uses Qdrant vector embeddings to understand semantic relationships in codebases.
Gralio SaaS Database
Access a comprehensive database of over 30,000 SaaS products, including reviews, pricing, alternatives, and growth metrics.
Scite
Answers grounded in science
InfluxDB
A server for integrating with InfluxDB, a time-series database.
Momento MCP Server
An MCP server providing a simple interface to Momento's serverless caching service.