This is a straightforward MySQL adapter that gives Claude direct access to your database through stdio transport. It covers the full range of operations you'd expect: executing raw SQL queries, creating and dropping databases and tables, managing indexes, and handling user privileges. You get transaction control with commit and rollback, schema introspection through describe_table and show_columns, and dynamic resources for browsing database and table metadata. Connection management is handled through a dedicated connect tool that takes standard MySQL credentials. Reach for this when you want Claude to query your data, generate reports, or help manage database schemas without building custom tooling. Requires Python 3.11+ and uses pymysql under the hood.
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.
hovecapital/read-only-local-postgres-mcp-server
cocaxcode/database-mcp
io.github.infoinlet-marketplace/mcp-mysql
io.github.cybeleri/database-admin
io.github.yash-0620/postgres-mcp-secured