MCP MySQL Server
by enemyrr
The MCP MySQL Server enables AI models to interact with MySQL databases through a standardized interface. It provides tools for connecting to, querying, and managing MySQL databases.
Last updated: N/A
@enemyrr/mcp-mysql-server
A Model Context Protocol server that provides MySQL database operations. This server enables AI models to interact with MySQL databases through a standardized interface.
Installation & Setup for Cursor IDE
Installing via Smithery
To install MySQL Database Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @enemyrr/mcp-mysql-server --client claude
Installing Manually
- Clone and build the project:
 
git clone https://github.com/enemyrr/mcp-mysql-server.git
cd mcp-mysql-server
npm install
npm run build
- Add the server in Cursor IDE settings:
- Open Command Palette (Cmd/Ctrl + Shift + P)
 - Search for "MCP: Add Server"
 - Fill in the fields:
- Name: 
mysql - Type: 
command - Command: 
node /absolute/path/to/mcp-mysql-server/build/index.js 
 - Name: 
 
 
Note: Replace
/absolute/path/to/with the actual path where you cloned and built the project.
Database Configuration
You can configure the database connection in three ways:
- Database URL in .env (Recommended):
 
DATABASE_URL=mysql://user:password@host:3306/database
- Individual Parameters in .env:
 
DB_HOST=localhost
DB_USER=your_user
DB_PASSWORD=your_password
DB_DATABASE=your_database
- Direct Connection via Tool:
 
use_mcp_tool({
  server_name: "mysql",
  tool_name: "connect_db",
  arguments: {
    url: "mysql://user:password@host:3306/database"
    // OR
    workspace: "/path/to/your/project" // Will use project's .env
    // OR
    host: "localhost",
    user: "your_user",
    password: "your_password",
    database: "your_database"
  }
});
Available Tools
1. connect_db
Connect to MySQL database using URL, workspace path, or direct credentials.
2. query
Execute SELECT queries with optional prepared statement parameters.
use_mcp_tool({
  server_name: "mysql",
  tool_name: "query",
  arguments: {
    sql: "SELECT * FROM users WHERE id = ?",
    params: [1]
  }
});
3. execute
Execute INSERT, UPDATE, or DELETE queries with optional prepared statement parameters.
use_mcp_tool({
  server_name: "mysql",
  tool_name: "execute",
  arguments: {
    sql: "INSERT INTO users (name, email) VALUES (?, ?)",
    params: ["John Doe", "[email protected]"]
  }
});
4. list_tables
List all tables in the connected database.
use_mcp_tool({
  server_name: "mysql",
  tool_name: "list_tables"
});
5. describe_table
Get the structure of a specific table.
use_mcp_tool({
  server_name: "mysql",
  tool_name: "describe_table",
  arguments: {
    table: "users"
  }
});
6. create_table
Create a new table with specified fields and indexes.
use_mcp_tool({
  server_name: "mysql",
  tool_name: "create_table",
  arguments: {
    table: "users",
    fields: [
      {
        name: "id",
        type: "int",
        autoIncrement: true,
        primary: true
      },
      {
        name: "email",
        type: "varchar",
        length: 255,
        nullable: false
      }
    ],
    indexes: [
      {
        name: "email_idx",
        columns: ["email"],
        unique: true
      }
    ]
  }
});
7. add_column
Add a new column to an existing table.
use_mcp_tool({
  server_name: "mysql",
  tool_name: "add_column",
  arguments: {
    table: "users",
    field: {
      name: "phone",
      type: "varchar",
      length: 20,
      nullable: true
    }
  }
});
Features
- Multiple connection methods (URL, workspace, direct)
 - Secure connection handling with automatic cleanup
 - Prepared statement support for query parameters
 - Schema management tools
 - Comprehensive error handling and validation
 - TypeScript support
 - Automatic workspace detection
 
Security
- Uses prepared statements to prevent SQL injection
 - Supports secure password handling through environment variables
 - Validates queries before execution
 - Automatically closes connections when done
 
Error Handling
The server provides detailed error messages for:
- Connection failures
 - Invalid queries or parameters
 - Missing configuration
 - Database errors
 - Schema validation errors
 
Contributing
Contributions are welcome! Please feel free to submit a Pull Request to https://github.com/enemyrr/mcp-mysql-server
License
MIT