# MySQL MCP Server A Model Context Protocol (MCP) server that provides read-only access to MySQL databases. This server allows MCP clients (like Claude Desktop or other AI assistants) to explore database schemas, inspect table structures, and execute SELECT queries safely. ## Features ### Tools - **describe_table** - Shows table structure including columns, types, and keys - **query** - Executes validated read-only SQL queries (SELECT statements only) ### Resources - **mysql://schemas** - Lists all available database schemas - **mysql://schemas/{schema}/tables** - Lists tables in a specific schema ### Prompts - **explore-schema** - Guided exploration of a database schema's structure and relationships - **query-builder** - Interactive help for constructing SELECT queries ## Prerequisites - Node.js (v18 or higher recommended) - Access to a MySQL database ## Installation 1. Clone the repository and install dependencies: ```bash npm install ``` 2. Build the TypeScript source: ```bash npm run build ``` ## Configuration Create a `.env` file based on the example: ```bash cp .env.example .env ``` Edit `.env` with your MySQL connection details: ``` MYSQL_HOST=localhost MYSQL_PORT=3306 MYSQL_USER=your_username MYSQL_PASSWORD=your_password ``` ## Usage ### Running Directly ```bash npm start ``` ### Configuring with an MCP Client Add the server to your MCP client configuration. For example, in Claude Desktop's config file: ```json { "mcpServers": { "mysql": { "command": "node", "args": ["/path/to/mysql_mcp/dist/index.js"], "env": { "MYSQL_HOST": "127.0.0.1", "MYSQL_PORT": "3306", "MYSQL_USER": "your_username", "MYSQL_PASSWORD": "your_password" } } } } ``` ## Security This server enforces read-only access by parsing and validating all queries before execution. Only SELECT statements are permitted. Any attempt to run INSERT, UPDATE, DELETE, or other modifying statements will be rejected. ## License ISC