# MySQL Ops MCP [Health: Active]

**Category:** 🗄️ Databases  
**Repository:** https://github.com/GT-dinuo/mysql-ops-mcp  
**GitHub Stars:** 0  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/mysql-ops-mcp

## Description
MySQL MCP server: browse schema, query, CRUD. Delete/drop gated by user approval.

## Tools
Capabilities this server exposes over MCP:

- **list_databases** — List all databases
- **list_tables** — List tables in a database
- **describe_table** — Show table columns and types
- **get_table_info** — Full table details: columns, indexes, DDL, stats
- **query** — Run a SELECT query
- **create_table** — Create a table (CREATE TABLE only)
- **insert** — Insert rows (INSERT only)
- **update** — Update rows (UPDATE only)
- **delete_data** — Delete rows — requires user approval
- **drop_table** — Drop a table — requires user approval
- **execute_sql** — Run any custom SQL statement

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "mysql-ops-mcp": {
    "command": "npx",
    "args": ["-y","mysql-ops-mcp"]
  }
}
```

## Documentation & README

# MySQL Ops MCP

**English** | [简体中文](./README.zh-CN.md)

[![npm version](https://img.shields.io/npm/v/mysql-ops-mcp.svg)](https://www.npmjs.com/package/mysql-ops-mcp)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)
[![Node.js](https://img.shields.io/badge/node-%3E%3D18-brightgreen)](https://nodejs.org)
[![MCP](https://img.shields.io/badge/MCP-Server-blue)](https://modelcontextprotocol.io)
[![GitHub stars](https://img.shields.io/github/stars/GT-dinuo/mysql-ops-mcp?style=social)](https://github.com/GT-dinuo/mysql-ops-mcp)

A MySQL database MCP Server. Let AI tools like Claude Code / Cursor / Codex talk to your MySQL databases in natural language — **browse databases and tables, inspect schemas, run queries, and perform CRUD operations**, with destructive operations (DELETE / DROP) gated behind explicit user approval.

## Features

- 🗄️ **Schema browsing**: list databases, list tables, describe table structure, full table info (indexes, DDL, stats)
- 🔍 **Queries**: run `SELECT` queries against any database
- ✏️ **CRUD**: create tables, insert, update — with SQL-statement validation per tool
- 🔐 **Approval-gated destructive ops**: `delete_data` and `drop_table` always require explicit user confirmation in the client
- 🔌 **Zero install**: runs via `npx`, configured entirely through environment variables

## Installation

Requires Node.js 18+. No clone or build needed — `npx` fetches and runs the published npm package on first use (see the config below).

To build from source instead (e.g. for development):

```bash
git clone https://github.com/GT-dinuo/mysql-ops-mcp.git
cd mysql-ops-mcp
npm install
npm run build
```

Build output goes to `dist/`; the entry point is `dist/index.js`.

## Configuration

In each project where you want to use this tool, create (or append to) `.mcp.json`:

```json
{
  "mcpServers": {
    "mysql": {
      "command": "npx",
      "args": ["-y", "mysql-ops-mcp"],
      "env": {
        "DB_HOST": "localhost",
        "DB_PORT": "3306",
        "DB_USER": "root",
        "DB_PASSWORD": "your_password",
        "DB_DATABASE": "your_database"
      }
    }
  }
}
```

If you built from source, point the command at the local build instead: `"command": "node"`, `"args": ["/absolute/path/to/mysql-ops-mcp/dist/index.js"]`.

### Environment Variables

| Variable | Required | Description |
|----------|----------|-------------|
| `DB_HOST` | No | MySQL host, default `localhost` |
| `DB_PORT` | No | MySQL port, default `3306` |
| `DB_USER` | No | MySQL user, default `root` |
| `DB_PASSWORD` | No | MySQL password |
| `DB_DATABASE` | No | Default database; if omitted, pass `database` per tool call |

## Usage

Once configured, just ask in natural language in your AI tool:

```
List all databases
Show the structure of the users table
Query the 10 most recent orders
Get full info for the users table — indexes and DDL included
Insert a test record into the users table
Delete the test record you just inserted   ← the client will ask for your approval first
```

Destructive operations (`delete_data`, `drop_table`) are always confirmed by the MCP client before execution — nothing irreversible happens silently.

## Tool List

| Tool | Description |
|------|-------------|
| `list_databases` | List all databases |
| `list_tables` | List tables in a database |
| `describe_table` | Show table columns and types |
| `get_table_info` | Full table details: columns, indexes, DDL, stats |
| `query` | Run a SELECT query |
| `create_table` | Create a table (CREATE TABLE only) |
| `insert` | Insert rows (INSERT only) |
| `update` | Update rows (UPDATE only) |
| `delete_data` | Delete rows — requires user approval |
| `drop_table` | Drop a table — requires user approval |
| `execute_sql` | Run any custom SQL statement |

## Security

1. **Destructive operations require approval**: `delete_data` and `drop_table` are gated by the MCP client's tool-call confirmation — approve or reject each one.
2. **Statement validation**: each write tool only accepts its own SQL verb (e.g. `query` rejects anything but `SELECT`).
3. **Use a least-privilege account**: don't connect as `root` in production — create a MySQL user scoped to the databases the AI may touch.
4. **Never commit credentials**: `.env` / `.mcp.json` with real passwords must stay out of version control (`.gitignore` already covers `.env`).

## Testing the Connection

After configuring `.env` (copy from `env.example`), you can verify connectivity before wiring up the client:

```bash
cp env.example .env   # fill in real credentials
npm run test-connection
```

## Development

```bash
npm run dev    # watch mode, recompiles on change
npm run build  # build to dist/
npm start      # run the built Server
```

## License

[MIT](./LICENSE) © 2026 mysql-ops-mcp

