Skip to main content
Glama

MySQL MCP Server

by SuMiaoALi
README.md4.25 kB
# MySQL MCP Server A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) 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 ```bash 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` ```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: ```bash npx mysql-mcp-server ``` ## Development ### Prerequisites - Node.js 18+ - TypeScript - Access to a MySQL database ### Setup 1. Clone the repository: ```bash git clone https://github.com/your-username/mysql-mcp-server.git cd mysql-mcp-server ``` 2. Install dependencies: ```bash npm install ``` 3. Set up environment variables: ```bash cp .env.example .env # Edit .env with your database configuration ``` 4. Build the server: ```bash npm run build ``` ### Development Commands ```bash # 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: ```bash 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 - [Model Context Protocol](https://modelcontextprotocol.io) - [MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk) - [Other MCP Servers](https://github.com/modelcontextprotocol/servers)

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