SuMiaoALi_mysql-mcp-server

SuMiaoALi_mysql-mcp-server

3.2

If you are the rightful owner of SuMiaoALi_mysql-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

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

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

Installation

npm install mysql-mcp-server

Configuration

The server can be configured using environment variables:

VariableDefaultDescription
MYSQL_HOSTlocalhostMySQL server hostname
MYSQL_PORT3306MySQL server port
MYSQL_USERrootMySQL username
MYSQL_PASSWORD(empty)MySQL password
MYSQL_DBmysqlDefault database name
MYSQL_TIMEZONE+00:00MySQL 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.

Related