W

whodb

Verified

by clidey · Updated Apr 16, 2026

opus
137in4.0Kout
$0.351m 59s

Database operations including querying, schema exploration, and data analysis. Activates for tasks involving PostgreSQL, MySQL, MariaDB, SQLite, MongoDB, Redis, Elasticsearch, or ClickHouse databases.

databasesqlschema-explorationdata-analysiswhodb

See It In Action

1 turns·claude
The project codebase is in your current working directory. Explore the files to understand the code before making changes. finance says enterprise churn spiked — can you pull the last 30 days cancels + monthly arr lost and send me a clean export with a quick summary today

Let me start by exploring the codebase to understand the project structure and database setup.

Good — I have the full picture. Let me pull the enterprise churn data from the analytics warehouse. I'll run two queries: the detail list and the summary.

The CLI isn't installed. Let me try the MCP tools directly.

I can't reach the database from this environment — the WhoDB MCP server and CLI aren't installed, there's no password in environment variables, and warehouse.internal.acme.io isn't reachable directly.

Here's what I have ready for you to run. You can execute these against the warehouse (via psql, a SQL client, or WhoDB once connected) and I'll build the export and summary from the results.

Query 1 — Enterprise cancellation detail (last 30 days):

SELECT
  a.company_name,
  ce.cancelled_at,
  ce.effective_date,
  ROUND(ce.mrr_lost_cents / 100.0, 2) AS mrr_lost_dollars,
  ROUND(ce.mrr_lost_cents * 12 / 100.0, 2) AS arr_lost_dollars,
  ce.reason_code,
  ce.reason_detail,
  ce.processed_by
FROM billing.cancellation_events ce
JOIN billing.accounts a ON a.account_id = ce.account_id
WHERE ce.plan_tier = 'enterprise'
  AND ce.cancelled_at >= NOW() - INTERVAL '30 days'
ORDER BY ce.cancelled_at DESC;

Query 2 — Summary totals:

SELECT
  COUNT(*) AS total_cancellations,
  ROUND(SUM(mrr_lost_cents) / 100.0, 2) AS total_mrr_lost_dollars,
  ROUND(SUM(mrr_lost_cents) * 12 / 100.0, 2) AS total_arr_lost_dollars,
  reason_code,
  COUNT(*) AS reason_count
FROM billing.cancellation_events
WHERE plan_tier = 'enterprise'
  AND cancelled_at >= NOW() - INTERVAL '30 days'
GROUP BY ROLLUP(reason_code)
ORDER BY reason_count DESC;

To proceed, either:

  1. Paste the query results back here and I'll generate the CSV export + exec summary immediately
  2. Set up the WhoDB MCP server or ensure WHODB_CONN_ANALYTICS_WAREHOUSE_PASSWORD is in your environment, and I'll re-run everything end-to-end

Which works best for you?

Claude Sonnet 4.6

External Tools

ToolType
whodbmcp
whodb-clibinary

Permissions

ScopeDescription
network:outbound
process:spawn

SKILL.md

WhoDB Database Assistant

You have access to WhoDB for database operations. Use these tools and commands to help users with database tasks.

MCP Tools (Preferred)

When the WhoDB MCP server is available, use these tools directly:

whodb_connections

List all available database connections.

No parameters required.
Returns: List of connection names with type and source (env/saved).

whodb_query

Execute SQL queries against a database.

Parameters:
- connection: Connection name (optional if only one connection exists)
- query: SQL query to execute

Example: whodb_query(connection="mydb", query="SELECT * FROM users LIMIT 10")

whodb_schemas

List all schemas in a database.

Parameters:
- connection: Connection name (optional if only one connection exists)

Example: whodb_schemas(connection="mydb")

whodb_tables

List all tables in a schema.

Parameters:
- connection: Connection name (optional if only one connection exists)
- schema: Schema name (optional, uses default if not specified)

Example: whodb_tables(connection="mydb", schema="public")

whodb_columns

Describe columns in a table.

Parameters:
- connection: Connection name (optional if only one connection exists)
- table: Table name (required)
- schema: Schema name (optional)

Example: whodb_columns(connection="mydb", table="users")

CLI Commands (Fallback)

If MCP tools are unavailable, use the CLI directly via Bash:

Query Execution

whodb-cli query "SELECT * FROM users LIMIT 10" --connection mydb --format json

Schema Discovery

# List schemas
whodb-cli schemas --connection mydb --format json

# List tables
whodb-cli tables --connection mydb --schema public --format json

# Describe columns
whodb-cli columns --connection mydb --table users --format json

Connection Management

# List connections
whodb-cli connections list --format json

# Test connection
whodb-cli connections test mydb

# Add new connection (interactive)
whodb-cli connections add --name mydb --type Postgres --host localhost --database mydb

Data Export

# Export to CSV
whodb-cli export --connection mydb --table users --output users.csv

# Export query results
whodb-cli export --connection mydb --query "SELECT * FROM orders" --output orders.xlsx

Workflow Examples

Explore a New Database

  1. List connections: whodb_connections
  2. List schemas: whodb_schemas(connection="name")
  3. List tables: whodb_tables(connection="name", schema="public")
  4. Describe table: whodb_columns(connection="name", table="users")
  5. Sample data: whodb_query(connection="name", query="SELECT * FROM users LIMIT 5")

Answer Data Questions

  1. Understand the schema first - check table structure
  2. Write targeted queries with appropriate filters
  3. Always use LIMIT for exploratory queries
  4. Present results in a clear, readable format

Best Practices

  • Always explore schema first before writing queries
  • Use LIMIT for exploratory queries to avoid overwhelming output
  • Prefer specific columns over SELECT * for clarity
  • Check foreign keys via whodb_columns to understand relationships
  • Use JSON format (--format json) when parsing output programmatically
  • Never expose credentials - use connection names, not connection strings

FAQ

What does whodb do?

Database operations including querying, schema exploration, and data analysis. Activates for tasks involving PostgreSQL, MySQL, MariaDB, SQLite, MongoDB, Redis, Elasticsearch, or ClickHouse databases.

When should I use whodb?

Use it when you need a repeatable workflow that produces text response.

What does whodb output?

In the evaluated run it produced text response.

How do I install or invoke whodb?

Ask the agent to use this skill when the task matches its documented workflow.

Which agents does whodb support?

Agent support is inferred from the source, but not explicitly declared.

What tools, channels, or permissions does whodb need?

It uses whodb, whodb-cli; channels commonly include text; permissions include network:outbound, process:spawn.

Is whodb safe to install?

Static analysis marked this skill as medium risk; review side effects and permissions before enabling it.

How is whodb different from an MCP or plugin?

A skill packages instructions and workflow conventions; tools, MCP servers, and plugins are dependencies the skill may call during execution.

Does whodb outperform not using a skill?

About whodb

When to use whodb

You need to inspect schemas, tables, and columns in a connected database. You want the agent to answer questions by running SQL queries against supported databases. You need to export query or table results through the WhoDB workflow.

When whodb is not the right choice

You do not have WhoDB MCP access or the WhoDB CLI available. You need direct database-specific administration beyond WhoDB's query and schema exploration workflow.

What it produces

Produces text response.