Skip to main content
Glama
SuMiaoALi

MySQL MCP Server

by SuMiaoALi

MySQL MCP Server

A Model Context Protocol (MCP) server that provides secure MySQL database operations for AI assistants and other MCP clients.

Features

🛠️ Tools

  • execute_query - Execute safe SQL queries (SELECT, INSERT, SHOW, DESCRIBE)

  • get_table_info - Get detailed table structure information

  • insert_data - Convenient data insertion with automatic parameterization

  • list_tables - List all tables in the database

📊 Resources

  • Database Info (mysql://database/info) - Database metadata and table list

  • Table Structure (mysql://table/{table_name}) - Detailed table schema information

🔒 Security Features

  • Limited Operations: Only allows safe operations (SELECT, INSERT, SHOW, DESCRIBE)

  • SQL Injection Protection: Uses parameterized queries

  • Automatic LIMIT: Adds LIMIT clauses to SELECT queries to prevent large data dumps

  • Connection Pooling: Efficient database connection management

Related MCP server: MySQL MCP Server

Installation

npm install mysql-mcp-server

Configuration

The server can be configured using environment variables:

Variable

Default

Description

MYSQL_HOST

localhost

MySQL server hostname

MYSQL_PORT

3306

MySQL server port

MYSQL_USER

root

MySQL username

MYSQL_PASSWORD

(empty)

MySQL password

MYSQL_DB

mysql

Default database name

MYSQL_TIMEZONE

+00:00

MySQL timezone

Usage with MCP Clients

Claude Desktop

Add to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "mysql": {
      "command": "npx",
      "args": ["mysql-mcp-server"],
      "env": {
        "MYSQL_HOST": "your-mysql-host",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "your-username",
        "MYSQL_PASSWORD": "your-password",
        "MYSQL_DB": "your-database"
      }
    }
  }
}

Other MCP Clients

For other MCP clients, use the server with stdio transport:

npx mysql-mcp-server

Development

Prerequisites

  • Node.js 18+

  • TypeScript

  • Access to a MySQL database

Setup

  1. Clone the repository:

git clone https://github.com/your-username/mysql-mcp-server.git
cd mysql-mcp-server
  1. Install dependencies:

npm install
  1. Set up environment variables:

cp .env.example .env
# Edit .env with your database configuration
  1. Build the server:

npm run build

Development Commands

# Build the server
npm run build

# Watch mode for development
npm run watch

# Debug with MCP Inspector
npm run inspector

Testing

You can test the server using the MCP Inspector:

npm run inspector

This will start the inspector and provide a URL to test the server in your browser.

Example Usage

Once connected through an MCP client, you can:

  1. List all tables:

    Use the list_tables tool
  2. Get table structure:

    Use get_table_info with table_name: "users"
  3. Query data:

    Use execute_query with sql: "SELECT * FROM users LIMIT 10"
  4. Insert data:

    Use insert_data with table_name: "users" and data: {"name": "John", "email": "john@example.com"}

Security Considerations

This server is designed with security in mind:

  • Read-mostly operations: Only SELECT, INSERT, SHOW, and DESCRIBE operations are allowed

  • No destructive operations: UPDATE and DELETE are explicitly forbidden

  • Parameterized queries: All user inputs are properly escaped

  • Connection limits: Uses connection pooling to prevent resource exhaustion

  • Query limits: Automatic LIMIT clauses prevent large data dumps

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT License - see LICENSE file for details.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables secure interaction with MySQL databases, allowing AI assistants to list tables, read data, and execute SQL queries through a controlled interface.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI models to interact with MySQL databases through a standardized interface, supporting queries, data manipulation, table inspection, and query performance analysis with secure prepared statements.
    4
    22
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to safely query MySQL databases with read-only access by default, supporting table listing, structure inspection, and SQL queries with optional write operation control.
    8
    MIT
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI assistants to securely interact with MySQL databases through tools for query execution, schema inspection, and transaction management. It features built-in safety controls like row limits and query validation to ensure safe and standardized database access.
    240
    -