Skip to main content
Glama
boyzoid

MySQL MCP Server

by boyzoid
README.md
# 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