Skip to main content
skill CX Codex

mysql · sanjay3290 — Claude Code skill: read-only MySQL queries

This skill runs SELECT queries against several MySQL databases and blocks every write. Handy when you want to inspect a schema or pull data without touching production.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add sanjay3290/ai-skills --skill mysql -a claude-code
Open on GitHub

What mysql does

The skill drives a Python script, scripts/query.py, that connects to the databases listed in your config and reads only. Each session starts with SET SESSION TRANSACTION READ ONLY, and the validator accepts just SELECT, SHOW, DESCRIBE, EXPLAIN and WITH. Multiple statements in one query get rejected.

Databases live in connections.json inside the skill folder or at ~/.config/claude/mysql-connections.json. Every entry carries a name, description, host, port, database, user and password. The description powers auto-selection: ask about orders and the skill looks for a database whose description mentions orders or transactions. That file holds credentials, so give it 600 permissions with chmod 600 connections.json.

You need Python 3.8+ and mysql-connector-python from requirements.txt. Queries stop after 30 seconds and return at most 10,000 rows, so on wide tables set --limit up front. For local databases you can turn SSL off with "ssl_disabled": true.

What it helps with

  • inspect table schemas before writing a migration
  • pull a read-only sample from production
  • pick the right database by its description
  • check what a table holds without a MySQL client
  • cap a heavy query by rows and time

Example prompts for the agent

  • list the configured MySQL databases
  • show the table schema in the production database
  • run a SELECT on orders with a limit of 100

How to install mysql

1Skills CLI (Vercel)

npx skills add sanjay3290/ai-skills --skill mysql -a claude-code

2Manually: put the files in place

~/.claude/skills/mysql/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/mysql/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about mysql

How do I install mysql in Claude?

Run npx skills add sanjay3290/ai-skills --skill mysql -a claude-code. The skill lands at ~/.claude/skills/mysql/SKILL.md.

What does the mysql skill do?

It runs read-only SQL against multiple MySQL databases: listing tables, showing schemas and returning data. Write operations are blocked.

What do I need before the first query?

Python 3.8+, the mysql-connector-python package from requirements.txt, and a connections.json file with your connection details. Since it stores passwords, set permissions to 600.

Source text

SKILL.md · Apache-2.0
---
name: mysql
description: "Execute read-only SQL queries against multiple MySQL databases. Use when: (1) querying MySQL databases, (2) exploring database schemas/tables, (3) running SELECT queries for data analysis, (4) checking database contents. Supports multiple database connections with descriptions for intelligent auto-selection. Blocks all write operations (INSERT, UPDATE, DELETE, DROP, etc.) for safety."
license: Apache-2.0
metadata:
  author: sanjay3290
  version: "1.0"
---

# MySQL Read-Only Query Skill

Execute safe, read-only queries against configured MySQL databases.

## Requirements

- Python 3.8+
- mysql-connector-python: `pip install -r requirements.txt`

## Setup

Create `connections.json` in the skill directory or `~/.config/claude/mysql-connections.json`.

**Security**: Set file permissions to `600` since it contains credentials:
```bash
chmod 600 connections.json
```

```json
{
  "databases": [
    {
      "name": "production",
      "description": "Main app database - users, orders, transactions",
      "host": "db.example.com",
      "port": 3306,
      "database": "app_prod",
      "user": "readonly_user",
      "password": "your-password",
      "ssl_disabled": false
    }
  ]
}
```

### Config Fields

| Field | Required | Description |
|-------|----------|-------------|
| name | Yes | Identifier for the database (case-insensitive) |
| description | Yes | What data this database contains (used for auto-selection) |
| host | Yes | Database hostname |
| port | No | Port number (default: 3306) |
| database | Yes | Database name |
| user | Yes | Username |
| password | Yes | Password |
| ssl_disabled | No | Set to `true` to disable SSL (default: false) |
| ssl_ca | No | Path to CA certificate file |
| ssl_cert | No | Path to client certificate file |
| ssl_key | No | Path to client private key file |

## Usage

### List configured databases
```bash
python3 scripts/query.py --list
```

### Query a database
```bash
python3 scripts/query.py --db production --query "SELECT * FROM users LIMIT 10"
```

### List tables
```bash
python3 scripts/query.py --db production --tables
```

### Show schema
```bash
python3 scripts/query.py --db production --schema
```

### Limit results
```bash
python3 scripts/query.py --db production --query "SELECT * FROM orders" --limit 100
```

## Database Selection

Match user intent to database `description`:

| User asks about | Look for description containing |
|-----------------|--------------------------------|
| users, accounts | users, accounts, customers |
| orders, sales | orders, transactions, sales |
| analytics, metrics | analytics, metrics, reports |
| logs, events | logs, events, audit |

If unclear, run `--list` and ask user which database.

## Safety Features

- **Read-only session**: Connection uses MySQL `SET SESSION TRANSACTION READ ONLY` (primary protection)
- **Query validation**: Only SELECT, SHOW, DESCRIBE, EXPLAIN, WITH queries allowed
- **Single statement**: Multiple statements per query rejected
- **SSL support**: Configurable SSL with CA, client cert, and key support
- **Query timeout**: 30-second max_execution_time enforced (MySQL 5.7.8+)
- **Memory protection**: Max 10,000 rows per query to prevent OOM
- **Column width cap**: 100 char max per column for readable output
- **Credential sanitization**: Error messages don't leak passwords

## Troubleshooting

| Error | Solution |
|-------|----------|
| Config not found | Create `connections.json` in skill directory |
| Authentication failed | Check username/password in config |
| Connection timeout | Verify host/port, check firewall/VPN |
| SSL error | Try `"ssl_disabled": true` for local databases |
| Permission warning | Run `chmod 600 connections.json` |
| max_execution_time not supported | Upgrade to MySQL 5.7.8+ or MariaDB 10.1.1+ |

## Exit Codes

- **0**: Success
- **1**: Error (config missing, auth failed, invalid query, database error)

## Workflow

1. Run `--list` to show available databases
2. Match user intent to database description
3. Run `--tables` or `--schema` to explore structure
4. Execute query with appropriate LIMIT

© sanjay3290 · Apache-2.0 · sanjay3290/ai-skills

Similar skills

All skills for Data and databases →

mysql by other authors comes first.

mysql planetscale A skill that guides an agent through MySQL/InnoDB schema, indexing, query tuning and transactions before it touches a production table. CX Codex +1 8,500installs mysql devops-skills A skill that walks your agent through MySQL and MariaDB work: install, InnoDB tuning, backups, source-replica replication. Useful when the agent touches a live database. CX Codex +1 350installs mysql-patterns affaan-m Production patterns for MySQL and MariaDB schema design, indexing, transactions, and slow query diagnostics in AI coding agents. CX Codex +1 4,700installs mysql-best-practices Mindrally A skill that gives the agent rules for MySQL schema design, indexing and query optimization. Useful when it writes migrations or debugs a slow query. CX Codex +1 2,700installs amazon-aurora-mysql aws A skill for Amazon Aurora MySQL clusters: creating and modifying them, sizing ACUs, evaluating storage, and planning version upgrades. CX Codex +1 5,200installs azure-resource-manager-mysql-dotnet Microsoft A skill that gives your agent .NET SDK patterns for MySQL Flexible Server on Azure: servers, databases, firewall rules, parameters and backups. 1installs planetscale-pscale-cli-automation planetscale Teaches coding agents to run the PlanetScale CLI non-interactively with JSON output. Useful when automating database tasks and verifying authentication. CX Codex +1 1,700installs database-design MoizIbnYousaf A skill for schema design, migrations and query optimization on PostgreSQL, MySQL and NoSQL. Useful whenever the agent writes SQL. CX Codex +1 604installs

From the same set15

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor