whodb_query
Execute SQL queries (SELECT, INSERT, UPDATE, DELETE) against a database. Parameterized queries ensure safe handling of user input.
Instructions
Execute a SQL query against a database connection.
Best for: Running SQL SELECT, INSERT, UPDATE, DELETE statements when you need to query or modify data. Not recommended for: Schema exploration (use whodb_schemas, whodb_tables, whodb_columns instead for faster, structured results). Common mistakes: Running queries without specifying connection when multiple exist; using SELECT * instead of specific columns; forgetting LIMIT on large tables.
Usage Example (simple query):
{
"name": "whodb_query",
"arguments": {
"connection": "mydb",
"query": "SELECT id, name, email FROM users WHERE active = true LIMIT 10"
}
}Usage Example (parameterized query - RECOMMENDED for user input):
{
"name": "whodb_query",
"arguments": {
"connection": "mydb",
"query": "SELECT * FROM users WHERE id = $1 AND status = $2",
"parameters": [123, "active"]
}
}Placeholder syntax by database: PostgreSQL uses $1, $2, $3; MySQL/SQLite/DuckDB/ClickHouse use ?
Best practices:
Use parameterized queries when incorporating user-provided values - this prevents SQL injection
Always use LIMIT for exploratory queries to avoid overwhelming results
Prefer specific column selection over SELECT *
Check schema structure with whodb_columns before writing complex queries
Security Mode: CONFIRM-WRITES (Default) Write operations (INSERT, UPDATE, DELETE, etc.) require user confirmation. When you submit a write query:
The query is validated but NOT executed
You receive a confirmation_token
Explain to the user what the query will do
Call whodb_confirm with the token after user approves
The query executes and returns results
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| connection | Yes | Connection name (optional if only one exists) | |
| query | Yes | SQL query to execute | |
| parameters | No | Parameterized query values ($1/$2 for Postgres or ? for MySQL/SQLite) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| columns | Yes | ||
| column_types | No | ||
| rows | Yes | ||
| error | No | ||
| warning | No | ||
| confirmation_required | No | ||
| confirmation_token | No | ||
| confirmation_query | No | ||
| confirmation_expiry | No | ||
| request_id | No |