Scout your PostgreSQL databases with AI - safety features, monitoring, and data quality
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
tools
-
analyzeForeignKeys
foreign key health and performance
-
analyzeLocks
lock contention and blocking queries
-
analyzeTableBloat
bloat analysis for VACUUM planning
-
analyzeTimeSeries
window functions and anomaly detection
-
analyzeTypeConsistency
type inconsistencies in text columns
-
checkConstraintViolations
test constraints before adding them
-
describeTable
columns, constraints, indexes, and more
-
detectAnomalies
anomalies in performance, connections, and data
-
detectSeasonality
seasonal pattern detection
-
executeQuery
run SELECT queries (or writes in read-write mode)
-
explainQuery
EXPLAIN plans for performance analysis
-
exploreRelationships
multi-hop foreign key traversal
-
exportTable
CSV, JSON, JSONL, or SQL
-
findDuplicates
duplicate rows by column combination
-
findMissingValues
NULL analysis across columns
-
findOrphans
orphaned records with invalid foreign keys
-
findRecent
rows within a time window
-
generateInsertStatements
INSERT statements for migration
-
getCurrentActivity
active queries and connections
-
getDatabaseStats
size, cache hit ratio, connection info
-
getHealthScore
overall health score with component breakdown
-
getHottestTables
tables with highest activity
-
getIndexUsage
identify unused or underused indexes
-
getLiveMetrics
real-time metrics over a time window
-
getSlowQueries
slow query analysis (requires pg_stat_statements)
-
getTableMetrics
comprehensive per-table I/O and scan stats
-
listDatabases
databases the user has access to
-
listSchemas
all schemas in the current database
-
listTables
tables with size and row statistics
-
optimizeQuery
optimization recommendations for a specific query
-
previewUpdate
/ previewDelete — see what would change before committing
-
safeDelete
DELETE with dry-run, row limits, empty WHERE protection
-
safeInsert
INSERT with validation, batching, ON CONFLICT support
-
safeUpdate
UPDATE with dry-run, row limits, empty WHERE protection
-
suggestIndexes
missing index recommendations from query patterns
-
suggestPartitioning
partitioning strategies for large tables
-
suggestVacuum
VACUUM recommendations based on dead tuples and bloat
code files: 41
filesystem 3
- fs bluwork-postgres-scout-mcp-3cb6fa3/src/utils/logger.ts :1
import { appendFileSync, existsSync, mkdirSync } from 'fs'; - fs (weak) bluwork-postgres-scout-mcp-3cb6fa3/tests/helpers/mock-connection.ts :5
import { mkdtempSync } from 'fs'; - fs (weak) bluwork-postgres-scout-mcp-3cb6fa3/tests/logger-opt-in.test.ts :2
import { existsSync, mkdirSync, appendFileSync } from 'fs';
shell / exec 1
- shell bluwork-postgres-scout-mcp-3cb6fa3/bin/cli.js :5
import { spawnSync } from 'child_process';
database 3
- db bluwork-postgres-scout-mcp-3cb6fa3/src/types.ts :1
import { Pool, PoolClient, QueryResult, QueryResultRow } from 'pg'; - db bluwork-postgres-scout-mcp-3cb6fa3/src/utils/database.ts :1
import { Pool, PoolClient, QueryResult } from 'pg'; - db bluwork-postgres-scout-mcp-3cb6fa3/src/utils/result-formatter.ts :1
import { QueryResult, QueryResultRow } from 'pg';
install hooks 2
- prepublishOnly bluwork-postgres-scout-mcp-3cb6fa3/package.json :12
pnpm run build - prepare bluwork-postgres-scout-mcp-3cb6fa3/package.json :15
chmod +x bin/cli.js
declared dependencies 7
- @modelcontextprotocol/sdk@^1.27.1
- pg@^8.11.3
- zod@^3.25.76
- @types/node@^22.19.0
- @types/pg@^8.10.9
- typescript@^5.9.3
- vitest@^4.0.18