Skip to main content
Glama

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.

Related

-
security - not tested
A
license - permissive license
-
quality - not tested

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/SuMiaoALi/mysql-mcp-server'

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