Skip to main content
Glama
rlembo06

mysql-mcp

by rlembo06
README.md
# mysql-mcp

A lightweight MCP server that provides safe, read-only access to MySQL databases.

## Features

- **Multi-database** — connect to multiple MySQL instances, switch between them on the fly
- **Read-only** — write operations (`INSERT`, `UPDATE`, `DELETE`, `DROP`, etc.) are blocked
- **Lazy connections** — pools are created on first use, not at startup
- **MCP native** — built on `@modelcontextprotocol/sdk`, works with any MCP client

## Setup

1. Create a JSON config file with your database connections:

```json
{
  "my-db": {
    "host": "db.example.com",
    "port": 3306,
    "user": "readonly",
    "password": "secret",
    "database": "mydb",
    "environment": "production",
    "ssl": false
  }
}
```

2. Set the `MYSQL_DATABASES_CONFIG` environment variable pointing to that file.

3. Run the server:

```bash
npx tsx index.ts
```

## Tools

| Tool | Description |
|------|-------------|
| `list_connections` | List all configured databases and the active one |
| `use_connection` | Switch the active database connection |
| `query` | Execute a read-only SQL query |

## MCP Client Configuration

```json
{
  "mcpServers": {
    "mysql": {
      "command": "npx",
      "args": ["tsx", "/path/to/mysql-mcp/index.ts"],
      "env": {
        "MYSQL_DATABASES_CONFIG": "/path/to/databases.json"
      }
    }
  }
}
```

## License

MIT