MCP server exposing MySQL database functionalities as tools
MCP server exposing MySQL database functionalities as tools for LLM agents.
mcp-name: io.github.daedalus/mcp-mysql-connector
mcp-mysql-connector is a Model Context Protocol (MCP) server that provides MySQL database operations as tools for LLM agents. It allows AI assistants to interact with MySQL databases through a standardized protocol, enabling:
pip install mcp-mysql-connector
# Run with stdio transport (default)
mcp-mysql-connector
# Or run programmatically
python -c "from mcp_mysql import mcp; mcp.run()"
Connect to MySQL using the connect tool:
{
"host": "localhost",
"port": 3306,
"user": "root",
"password": "your_password",
"database": "your_database"
}
| Tool | Description |
|---|---|
connect | Connect to a MySQL database |
disconnect | Disconnect from MySQL |
is_connected | Check connection status |
commit | Commit current transaction |
rollback | Rollback current transaction |
| Tool | Description |
|---|---|
execute_query | Execute raw SQL query and return results |
| Tool | Description |
|---|---|
list_databases | List all databases on server |
create_database | Create a new database |
drop_database | Drop a database |
database_exists | Check if database exists |
| Tool | Description |
|---|---|
list_tables | List tables in a database |
describe_table | Get table schema |
create_table | Create a new table |
drop_table | Drop a table |
table_exists | Check if table exists |
| Tool | Description |
|---|---|
show_columns | Show column details |
show_indexes | Show index details |
create_index | Create an index |
drop_index | Drop an index |
| Tool | Description |
|---|---|
create_user | Create a MySQL user |
drop_user | Drop a MySQL user |
grant_privileges | Grant privileges to user |
revoke_privileges | Revoke privileges from user |
show_privileges | Show user privileges |
| Tool | Description |
|---|---|
server_status | Get MySQL server status |
The server provides dynamic resources for database and table metadata:
database://{name} - Database metadata including table listtable://{db}/{table} - Table metadata including schema, columns, and indexes# First, connect to database
connect(host="localhost", user="root", password="secret", database="mydb")
# Execute a query
execute_query(sql="SELECT * FROM users WHERE active = true")
# List all tables
list_tables(database="mydb")
# Create a database
create_database(name="newapp")
# Create a table
create_table(name="users", schema="id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255), email VARCHAR(255) UNIQUE")
# Create a new user with password
create_user(username="app_user", host="localhost", password="secure_password")
# Grant privileges
grant_privileges(privileges="SELECT,INSERT,UPDATE,DELETE", on="newapp.*", username="app_user", host="localhost")
# Start transaction
execute_query(sql="BEGIN")
# Execute operations
execute_query(sql="INSERT INTO accounts (balance) VALUES (100)")
# Commit or rollback
commit() # or rollback()
The server supports configuration via environment variables:
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=root
export MYSQL_PASSWORD=secret
export MYSQL_DATABASE=mydb
# Clone repository
git clone https://github.com/daedalus/mcp-mysql-connector.git
cd mcp-mysql-connector
# Create virtual environment
python -m venv venv
source venv/bin/activate
# Install dependencies
pip install -e ".[test]"
# Run tests
pytest
# Format code
ruff format src/ tests/
# Lint
ruff check src/ tests/
# Type check
mypy src/
mcp-mysql-connector/
├── src/mcp_mysql/
│ ├── core/models.py # Data models (QueryResult, TableSchema, etc.)
│ ├── adapters/mysql.py # MySQL connection & pooling
│ ├── services/connection.py # Connection manager
│ ├── tools/mysql_tools.py # MCP tool implementations
│ └── mcp.py # FastMCP server setup
└── tests/ # Test suite
MIT License - see LICENSE for details.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
uvx mcp-mysql-connectorMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-daedalus-mcp-mysql-connector": {
"command": "uvx",
"args": [
"mcp-mysql-connector"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencemcp-mysql-connectorpypiio.github.daedalus/mcp-mysql-connector works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.