{
  "markdown": "# mcp-mysql-connector\n\nMCP server exposing MySQL database functionalities as tools for LLM agents.\n\nmcp-name: io.github.daedalus/mcp-mysql-connector\n\n\n[![PyPI](https://img.shields.io/pypi/v/mcp-mysql-connector.svg)](https://pypi.org/project/mcp-mysql-connector/)\n[![Python](https://img.shields.io/pypi/pyversions/mcp-mysql-connector.svg)](https://pypi.org/project/mcp-mysql-connector/)\n[![Coverage](https://codecov.io/gh/daedalus/mcp-mysql-connector/branch/master/graph/badge.svg)](https://codecov.io/gh/daedalus/mcp-mysql-connector)\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n\n## Overview\n\nmcp-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:\n\n- Database and table management\n- Query execution\n- User authentication and privilege management\n- Schema introspection\n- Transaction control\n\n## Install\n\n```bash\npip install mcp-mysql-connector\n```\n\n## Quick Start\n\n### Running the Server\n\n```bash\n# Run with stdio transport (default)\nmcp-mysql-connector\n\n# Or run programmatically\npython -c \"from mcp_mysql import mcp; mcp.run()\"\n```\n\n### Configuration\n\nConnect to MySQL using the `connect` tool:\n\n```json\n{\n  \"host\": \"localhost\",\n  \"port\": 3306,\n  \"user\": \"root\",\n  \"password\": \"your_password\",\n  \"database\": \"your_database\"\n}\n```\n\n## MCP Tools\n\n### Connection Management\n\n| Tool | Description |\n|------|-------------|\n| `connect` | Connect to a MySQL database |\n| `disconnect` | Disconnect from MySQL |\n| `is_connected` | Check connection status |\n| `commit` | Commit current transaction |\n| `rollback` | Rollback current transaction |\n\n### Query Execution\n\n| Tool | Description |\n|------|-------------|\n| `execute_query` | Execute raw SQL query and return results |\n\n### Database Operations\n\n| Tool | Description |\n|------|-------------|\n| `list_databases` | List all databases on server |\n| `create_database` | Create a new database |\n| `drop_database` | Drop a database |\n| `database_exists` | Check if database exists |\n\n### Table Operations\n\n| Tool | Description |\n|------|-------------|\n| `list_tables` | List tables in a database |\n| `describe_table` | Get table schema |\n| `create_table` | Create a new table |\n| `drop_table` | Drop a table |\n| `table_exists` | Check if table exists |\n\n### Column & Index Operations\n\n| Tool | Description |\n|------|-------------|\n| `show_columns` | Show column details |\n| `show_indexes` | Show index details |\n| `create_index` | Create an index |\n| `drop_index` | Drop an index |\n\n### User Management\n\n| Tool | Description |\n|------|-------------|\n| `create_user` | Create a MySQL user |\n| `drop_user` | Drop a MySQL user |\n| `grant_privileges` | Grant privileges to user |\n| `revoke_privileges` | Revoke privileges from user |\n| `show_privileges` | Show user privileges |\n\n### Server Information\n\n| Tool | Description |\n|------|-------------|\n| `server_status` | Get MySQL server status |\n\n## MCP Resources\n\nThe server provides dynamic resources for database and table metadata:\n\n- `database://{name}` - Database metadata including table list\n- `table://{db}/{table}` - Table metadata including schema, columns, and indexes\n\n## Usage Examples\n\n### Connect and Query\n\n```\n# First, connect to database\nconnect(host=\"localhost\", user=\"root\", password=\"secret\", database=\"mydb\")\n\n# Execute a query\nexecute_query(sql=\"SELECT * FROM users WHERE active = true\")\n\n# List all tables\nlist_tables(database=\"mydb\")\n```\n\n### Create Database and Table\n\n```\n# Create a database\ncreate_database(name=\"newapp\")\n\n# Create a table\ncreate_table(name=\"users\", schema=\"id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255), email VARCHAR(255) UNIQUE\")\n```\n\n### User Management\n\n```\n# Create a new user with password\ncreate_user(username=\"app_user\", host=\"localhost\", password=\"secure_password\")\n\n# Grant privileges\ngrant_privileges(privileges=\"SELECT,INSERT,UPDATE,DELETE\", on=\"newapp.*\", username=\"app_user\", host=\"localhost\")\n```\n\n### Transaction Control\n\n```\n# Start transaction\nexecute_query(sql=\"BEGIN\")\n\n# Execute operations\nexecute_query(sql=\"INSERT INTO accounts (balance) VALUES (100)\")\n\n# Commit or rollback\ncommit()  # or rollback()\n```\n\n## Environment Variables\n\nThe server supports configuration via environment variables:\n\n```bash\nexport MYSQL_HOST=localhost\nexport MYSQL_PORT=3306\nexport MYSQL_USER=root\nexport MYSQL_PASSWORD=secret\nexport MYSQL_DATABASE=mydb\n```\n\n## Development\n\n```bash\n# Clone repository\ngit clone https://github.com/daedalus/mcp-mysql-connector.git\ncd mcp-mysql-connector\n\n# Create virtual environment\npython -m venv venv\nsource venv/bin/activate\n\n# Install dependencies\npip install -e \".[test]\"\n\n# Run tests\npytest\n\n# Format code\nruff format src/ tests/\n\n# Lint\nruff check src/ tests/\n\n# Type check\nmypy src/\n```\n\n## Architecture\n\n```\nmcp-mysql-connector/\n├── src/mcp_mysql/\n│   ├── core/models.py       # Data models (QueryResult, TableSchema, etc.)\n│   ├── adapters/mysql.py    # MySQL connection & pooling\n│   ├── services/connection.py  # Connection manager\n│   ├── tools/mysql_tools.py   # MCP tool implementations\n│   └── mcp.py              # FastMCP server setup\n└── tests/                   # Test suite\n```\n\n## Requirements\n\n- Python 3.11+\n- fastmcp >= 2.0.0\n- pymysql >= 1.1.0\n- sqlparse >= 0.4.0\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n\n",
  "bytes": 5516,
  "sha": "7bebd6b8505e919a331fdc4d5ea7635f4cab5a55fe81ca72a7027ef67ef923ee",
  "repo_slug": "daedalus/mcp-mysql-connector",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_daedalus_mcp_mysql_connector_fe4ded93/readme"
}