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: MCP Server MySQL

📦 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.

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/664393425/mysql-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server