Skip to main content
Glama
664393425

MySQL MCP Server

by 664393425

MySQL MCP Server

A feature-rich MySQL MCP (Model Context Protocol) server for AI coding assistants. Supports read/write operations, dynamic database/server switching, auto-config from Spring Boot projects, and more.

一个功能丰富的 MySQL MCP 服务,支持读写操作、动态切换数据库/服务器、自动读取 Spring Boot 项目配置等。

✨ Features

Feature

Description

📖 Read Queries

SELECT, SHOW, DESCRIBE, EXPLAIN with auto LIMIT

✏️ Write Operations

INSERT, UPDATE, DELETE, REPLACE

🏗️ DDL Support

CREATE, ALTER, DROP, TRUNCATE

🔄 Dynamic Switch Database

Switch database without restarting

🌐 Dynamic Switch Server

Switch to a different MySQL server on the fly

📋 Show Tables

List all tables with metadata, supports LIKE filter

🔍 Describe Table

View column details and CREATE TABLE SQL

🔗 Connection Info

View current connection details

📚 Show Databases

List all available databases

⚙️ Auto Config

Read DB config from Spring Boot application.yml

🔁 Auto Retry

Automatic reconnection on connection loss

🛡️ Process Guard

Prevents duplicate processes on startup

📝 Logging

Daily rotating log files

Related MCP server: MySQL MCP Server

📦 Installation

git clone https://github.com/YOUR_USERNAME/mysql-mcp-server.git
cd mysql-mcp-server
npm install

Requirements: Node.js >= 18.0.0

🚀 Usage

Option 1: Direct Connection Parameters

node index.js --host 127.0.0.1 --port 3306 --database mydb --user root --password yourpass
node index.js --project-dir /path/to/your/spring-boot-module

The server will automatically:

  1. Read application.yml and detect spring.profiles.active

  2. Load the corresponding application-{profile}.yml

  3. Parse spring.datasource for connection info

Option 3: Auto-read from .gemini/settings.json

If no arguments are provided, the server will search for .gemini/settings.json in the current directory and up to 5 parent directories to load the MySQL configuration.

🔧 MCP Tools

query — Read-only queries

Execute SELECT / SHOW / DESCRIBE / EXPLAIN statements.

  • sql (string, required): The SQL query

  • limit (number, optional): Max rows to return (default: 200)

execute — Write operations & DDL

Execute INSERT / UPDATE / DELETE / REPLACE / CREATE / ALTER / DROP / TRUNCATE.

  • sql (string, required): The SQL statement

show_tables — List tables

List all tables in the current database.

  • pattern (string, optional): LIKE filter (e.g., edu_%)

describe_table — Table structure

View column details and CREATE TABLE SQL.

  • table (string, required): Table name

switch_database — Switch database

Dynamically switch to a different database on the same server.

  • database (string, required): Target database name

switch_connection — Switch server

Dynamically switch to a different MySQL server without restarting.

  • host (string, optional): MySQL host

  • port (number, optional): MySQL port

  • user (string, optional): Username

  • password (string, optional): Password

  • database (string, optional): Database name

Only pass the parameters you want to change; the rest will remain unchanged.

connection_info — Current connection

View the current connection details (host, port, database, user, MySQL version).

show_databases — List databases

List all available databases on the current MySQL server.

⚙️ IDE Configuration

Antigravity / Gemini

Edit ~/.gemini/settings.json or ~/.gemini/antigravity/mcp_config.json:

{
  "mcpServers": {
    "mysql": {
      "command": "node",
      "args": [
        "/path/to/mysql-mcp-server/index.js",
        "--host", "127.0.0.1",
        "--port", "3306",
        "--database", "mydb",
        "--user", "root",
        "--password", "yourpass"
      ]
    }
  }
}

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "mysql": {
      "command": "node",
      "args": [
        "/path/to/mysql-mcp-server/index.js",
        "--host", "127.0.0.1",
        "--port", "3306",
        "--database", "mydb",
        "--user", "root",
        "--password", "yourpass"
      ]
    }
  }
}

Cursor

Edit .cursor/mcp.json in your project root:

{
  "mcpServers": {
    "mysql": {
      "command": "node",
      "args": [
        "/path/to/mysql-mcp-server/index.js",
        "--project-dir",
        "/path/to/your/spring-boot-module"
      ]
    }
  }
}

📝 Logging

Logs are written to the logs/ directory with daily rotation:

logs/
├── 2026-03-15.log
├── 2026-03-16.log
└── ...

Each log entry includes timestamp, level (INFO/WARN/ERROR), message, and optional structured data.

🔒 Safety

  • Read queries are restricted to SELECT, SHOW, DESCRIBE, and EXPLAIN

  • Write operations require explicit use of the execute tool

  • DROP/TRUNCATE operations include a danger warning

  • Failed switches automatically rollback to the previous connection

  • SQL injection prevention via parameterized table name sanitization

📄 License

MIT License - see LICENSE for details.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects AI assistants like Claude Desktop directly to MySQL databases, enabling natural language interaction for schema inspection, data querying, CRUD operations, and database administration tasks.
    6 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to securely connect to and manage MySQL databases with support for multiple database connections, complete CRUD operations, schema inspection, and dynamic connection management through natural language.
    7 npm
    81
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with a MySQL database using natural language, automating SQL tasks like querying, inserting, updating, and deleting data.
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to directly query MySQL databases, list tables, and view table structures through natural language.
    7 npm
    MIT