К основному содержанию
скилл CX Codex

database-scout — скилл для Claude Code: разбор SQLite и PostgreSQL

Скилл для чтения схем SQLite и PostgreSQL: показывает таблицы, колонки, связи и рисует Mermaid ER-диаграммы. Запросы только на чтение.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add zebbern/claude-code-guide --skill database-scout -a claude-code
Открыть на GitHub

Что делает database-scout

Скилл даёт агенту доступ к базе в режиме чтения. Он перечисляет таблицы и вьюхи с числом строк, разбирает схему таблицы — имена колонок, типы, ограничения PK/FK/NOT NULL, индексы и значения по умолчанию, показывает первые N строк и собирает Mermaid erDiagram, готовую к рендеру.

Внутри один скрипт scripts/db_explorer.py с подкомандами list-tables, describe, preview, er-diagram и query. Для SQLite хватает встроенного модуля sqlite3, для PostgreSQL нужен psycopg2-binary. Нужен Python 3.8+.

Защита от записи сделана на двух уровнях: SQLite открывается через URI с ?mode=ro, PostgreSQL получает SET SESSION READ ONLY, а сам SQL проходит белый список — разрешены только SELECT, WITH, EXPLAIN, PRAGMA и SHOW. Операторы INSERT, UPDATE, DELETE, DROP и ещё три десятка ключевых слов блокируются, несколько запросов через точку с запятой отклоняются. Если вам нужен скилл, который умеет менять данные, этот не подойдёт — здесь запись закрыта на уровне соединения.

Какие задачи решает

  • посмотреть, какие таблицы и вьюхи есть в базе, с числом строк
  • разобрать схему таблицы: колонки, типы, PK/FK, индексы
  • глянуть первые строки таблицы, чтобы понять формат данных
  • собрать Mermaid ER-диаграмму по связям между таблицами
  • выполнить SELECT, не рискуя задеть рабочие данные

Примеры запросов агенту

  • покажи все таблицы в data.db
  • опиши схему таблицы orders
  • сгенерируй ER-диаграмму для этой базы

Как установить database-scout

1Через Skills CLI (Vercel)

npx skills add zebbern/claude-code-guide --skill database-scout -a claude-code

2Вручную: положить файлы

~/.claude/skills/database-scout/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/database-scout/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о database-scout

Как установить database-scout в Claude?

Выполните npx skills add zebbern/claude-code-guide --skill database-scout -a claude-code. Скилл встанет в ~/.claude/skills/database-scout/SKILL.md.

Что делает database-scout?

Перечисляет таблицы и вьюхи, показывает схему таблицы с типами и ограничениями, делает превью данных, строит Mermaid ER-диаграммы и выполняет read-only SQL-запросы к SQLite и PostgreSQL.

Какие запросы разрешены?

Только SELECT, WITH, EXPLAIN, PRAGMA и SHOW. Операторы записи и несколько запросов через точку с запятой отклоняются.

Исходный текст

SKILL.md · MIT
---
name: database-scout
description: "Explore SQLite and PostgreSQL databases: list tables, inspect schemas (columns/types/constraints), preview data, generate Mermaid ER diagrams, and run safe read-only queries. Triggered by requests to explore a database, view table structures, describe tables, generate diagrams, or query data, and by keywords like database exploration, schema, ER diagram, or SQL query."
license: MIT
---

# database-scout

Read-only exploration tool for SQLite / PostgreSQL databases — inspect table schemas, preview data, generate ER diagrams, and run safe queries.

## Feature Overview

| Feature | Description |
|---------|-------------|
| List all tables | Show tables and views in the database, with row counts |
| Inspect table schema | Column names, types, constraints (PK/FK/NOT NULL), indexes, defaults |
| Data preview | View the first N rows of a table |
| ER diagram generation | Output Mermaid erDiagram syntax, ready to render |
| Safe read-only queries | Only SELECT/WITH/EXPLAIN allowed; write operations are blocked |

## Security Mechanisms

- **Connection-level read-only**: SQLite opens with `?mode=ro` URI; PostgreSQL uses `SET SESSION READ ONLY`
- **SQL whitelist**: Only statements starting with SELECT / WITH / EXPLAIN / PRAGMA / SHOW are allowed
- **Dangerous keyword blocking**: INSERT, UPDATE, DELETE, DROP, ALTER, CREATE, and 30+ other keywords are blocked
- **Multi-statement blocking**: Semicolon-separated multiple SQL statements are rejected (prevents injection)
- **Identifier escaping**: Table names are double-quote escaped to prevent SQL injection

## Quick Start

```bash
# List all tables in a SQLite database
python3 scripts/db_explorer.py --db-path data.db list-tables

# Inspect table schema
python3 scripts/db_explorer.py --db-path data.db describe users

# Preview data (default 20 rows)
python3 scripts/db_explorer.py --db-path data.db preview orders --limit 10

# Generate Mermaid ER diagram
python3 scripts/db_explorer.py --db-path data.db er-diagram

# Run a read-only query
python3 scripts/db_explorer.py --db-path data.db query "SELECT name, age FROM users WHERE age > 18 LIMIT 10"
```

### PostgreSQL

```bash
# Connect to PostgreSQL
python3 scripts/db_explorer.py --db-type postgres --dsn "host=localhost dbname=mydb user=reader" list-tables

# Inspect table schema
python3 scripts/db_explorer.py --db-type postgres --dsn "host=localhost dbname=mydb user=reader" describe orders
```

## Detailed Usage

### Parameters

| Parameter | Required | Default | Description |
|-----------|----------|---------|-------------|
| `--db-type` | No | sqlite | Database type: sqlite or postgres |
| `--db-path` | Yes (for SQLite) | — | Path to the SQLite database file |
| `--dsn` | Yes (for PostgreSQL) | — | PostgreSQL connection string |

### Subcommands

| Command | Description | Example |
|---------|-------------|---------|
| `list-tables` | List all tables/views | `list-tables` |
| `describe <table>` | Show detailed table schema | `describe users` |
| `preview <table> [--limit N / -n N]` | Preview the first N rows | `preview orders --limit 5` |
| `er-diagram` | Generate Mermaid ER diagram | `er-diagram` |
| `query "<sql>"` | Run a read-only SQL query | `query "SELECT count(*) FROM users"` |

## Output Examples

### list-tables

```json
[
  {"name": "users", "type": "table", "row_count": 1500},
  {"name": "orders", "type": "table", "row_count": 8200},
  {"name": "user_stats", "type": "view", "row_count": 1500}
]
```

### describe

```json
{
  "table": "orders",
  "row_count": 8200,
  "columns": [
    {"cid": 0, "name": "id", "type": "INTEGER", "notnull": true, "default": null, "primary_key": true},
    {"cid": 1, "name": "user_id", "type": "INTEGER", "notnull": true, "default": null, "primary_key": false},
    {"cid": 2, "name": "amount", "type": "REAL", "notnull": false, "default": "0.0", "primary_key": false}
  ],
  "foreign_keys": [
    {"from": "user_id", "to_table": "users", "to_column": "id"}
  ],
  "indexes": [
    {"name": "idx_orders_user_id", "unique": false, "columns": ["user_id"]}
  ]
}
```

### er-diagram (Mermaid)

```mermaid
erDiagram
    users {
        INTEGER id PK
        TEXT name
        TEXT email
        INTEGER age
    }
    orders {
        INTEGER id PK
        INTEGER user_id FK
        REAL amount
        TEXT created_at
    }
    users ||--o{ orders : "user_id"
```

## Dependencies

- Python 3.8+ (`sqlite3` is a built-in module)
- PostgreSQL support requires: `pip install psycopg2-binary`

© zebbern · MIT · zebbern/claude-code-guide

Похожие скиллы

Все скиллы по теме «Данные и базы» →
sql-database-assistant Alireza Rezvani Пишет SQL-запросы, помогает разбирать схемы, оптимизировать запросы и готовить миграции. Подойдёт для повседневной работы с базой и ORM. 727установок database-design MoizIbnYousaf Скилл по проектированию схем, миграциям и оптимизации запросов для PostgreSQL, MySQL и NoSQL. Пригодится, когда агент пишет SQL. CX Codex +1 604установок database-optimization davila7 Субагент для разбора медленных запросов: смотрит планы выполнения, предлагает индексы и настройки пула соединений. 3 924установок postgresql-database-engineering manutej Помогает проектировать схемы, выбирать индексы и оптимизировать медленные запросы в PostgreSQL. Пригодится при партиционировании больших таблиц и настройке репликации. CX Codex +1 1 800установок database-performance-debugging aj-geddes Скилл помогает найти медленные SQL-запросы и разобрать их планы выполнения. Пригодится, когда приложение тормозит или база упирается в CPU. CX Codex +1 493установок database-indexing-strategy aj-geddes Скилл помогает проектировать индексы: выбирает тип, собирает составные и частичные, подсказывает по обслуживанию. Пригодится, когда запросы тормозят. CX Codex +1 486установок

Из того же набора12

pipeline-blueprint Скилл собирает пайплайны для GitHub Actions и GitLab CI под тип проекта: фронтенд, бэкенд, библиотека, монорепозиторий. Пригодится, когда CI ещё нет или он разросся. CX Codex +1 ★ 4 676звёзд репо network-101 Скилл помогает агенту поднять и протестировать HTTP, HTTPS, SNMP и SMB в учебной лаборатории: от настройки сервисов до разбора логов. CX Codex +1 ★ 4 676звёзд репо linux-shell-scripting Скилл с готовыми шаблонами bash-скриптов: бэкапы, мониторинг ресурсов, управление пользователями, разбор логов. Пригодится, когда агенту нужно написать рабочий скрипт, а не набросок. CX Codex +1 ★ 4 676звёзд репо dev-guide-generator Превращает техническую тему в готовый туториал: предварительные требования, настройка окружения, основные шаги, разбор ошибок и шпаргалка в конце. CX Codex +1 ★ 4 676звёзд репо cv-tailor Скилл разбирает резюме и текст вакансии, считает совпадение ключевых слов и переписывает опыт по STAR с цифрами. CX Codex +1 ★ 4 676звёзд репо code-documenter Скилл для написания докстрингов, спецификаций OpenAPI и сайтов документации. Пригодится, когда код есть, а описаний к нему нет. CX Codex +1 ★ 4 676звёзд репо aws-penetration-testing Скилл ведёт агента по пентесту AWS: перечисление IAM, повышение привилегий, SSRF к metadata, разбор S3 и Lambda. CX Codex +1 ★ 4 676звёзд репо api-shape-explorer Скилл запускает несколько субагентов сразу, чтобы получить радикально разные варианты интерфейса модуля и сравнить их до написания кода. CX Codex +1 ★ 4 676звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой