
Postgres Scout Mcp
io.github.bluworkPublished by GitHub account bluworkv1.0.3Updated Oct 24, 2026
Scout your PostgreSQL databases with AI - safety features, monitoring, and data quality
Overview
Lets an assistant inspect, diagnose, and optionally modify a PostgreSQL database through 38 tools for health, performance, and data quality.
- What you can do
- Postgres Scout connects an assistant to a PostgreSQL database and exposes 38 tools grouped into exploration, querying, diagnostics, optimization, monitoring, data quality, relationships, time series, export, and write operations. It can list databases, schemas, and tables, describe structures, run and explain queries, score overall database health, detect anomalies and bloat, suggest indexes and partitioning, inspect locks and live activity, find duplicates, missing values, and orphaned records, and export tables as CSV, JSON, JSONL, or SQL. Write tools such as safeUpdate, safeDelete, and safeInsert include dry-run previews and row limits.
- When to use it
- Useful when an assistant needs to answer operational questions about a PostgreSQL database, such as which tables are bloated, which queries are slow, or whether data has duplicates or orphaned rows. It suits developers and DBAs who want read-only exploration by default and a separate instance for controlled writes.
- Requirements
- Runs locally over stdio, typically via npx postgres-scout-mcp with a PostgreSQL connection string as an argument. Needs Node.js and network access to the database. Optional environment variables configure query timeout, result row limits, rate limiting, connection pool sizes, and logging. Some diagnostics, such as getSlowQueries, require the pg_stat_statements extension.
Installation
In SourceWeft
- Open Postgres Scout Mcp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Postgres Scout MCP
Scout your PostgreSQL databases with AI - A production-ready Model Context Protocol server with built-in safety features, monitoring, and data quality tools.
What You Get
You ask:
"How healthy is my production database? Any urgent issues?"
Postgres Scout returns:
Overall Health Score: 78/100
Component Breakdown
Issues Found
- HIGH — Table
ordershas 34% bloat (2.1 GB wasted). VACUUM FULL recommended. - MEDIUM — 3 unused indexes on
sessionsconsuming 890 MB. - LOW — Cache hit ratio for
analytics_eventsis 71% (target: >90%).
Recommendations
- Run
VACUUM FULL ordersduring maintenance window - Drop unused indexes:
idx_sessions_legacy,idx_sessions_old_token,idx_sessions_temp - Consider adding
analytics_eventsto shared_buffers or partitioning by date
That's getHealthScore — one of 38 tools covering exploration, diagnostics, optimization, monitoring, data quality, and safe writes.
Quick Start
Claude Code
Then ask: "Show me the largest tables and whether they have any bloat issues."
Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
Cursor / VS Code
Add to your MCP settings:
Read-Only vs Read-Write
The server runs in read-only mode by default. For write operations, run a separate instance:
- postgres-scout-readonly: Safe exploration, no risk of data modification
- postgres-scout-readwrite: Write operations when explicitly needed
Tools
Explore — understand your database
listDatabases— databases the user has access togetDatabaseStats— size, cache hit ratio, connection infolistSchemas— all schemas in the current databaselistTables— tables with size and row statisticsdescribeTable— columns, constraints, indexes, and more
Query — run and analyze
executeQuery— run SELECT queries (or writes in read-write mode)explainQuery— EXPLAIN plans for performance analysisoptimizeQuery— optimization recommendations for a specific query
Diagnose — find problems before they find you
getHealthScore— overall health score with component breakdowndetectAnomalies— anomalies in performance, connections, and dataanalyzeTableBloat— bloat analysis for VACUUM planninggetSlowQueries— slow query analysis (requires pg_stat_statements)suggestVacuum— VACUUM recommendations based on dead tuples and bloat
Optimize — make it faster
suggestIndexes— missing index recommendations from query patternssuggestPartitioning— partitioning strategies for large tablesgetIndexUsage— identify unused or underused indexes
Monitor — watch it live
getCurrentActivity— active queries and connectionsanalyzeLocks— lock contention and blocking queriesgetLiveMetrics— real-time metrics over a time windowgetHottestTables— tables with highest activitygetTableMetrics— comprehensive per-table I/O and scan stats
Data Quality — trust your data
findDuplicates— duplicate rows by column combinationfindMissingValues— NULL analysis across columnsfindOrphans— orphaned records with invalid foreign keyscheckConstraintViolations— test constraints before adding themanalyzeTypeConsistency— type inconsistencies in text columns
Relationships — follow the connections
exploreRelationships— multi-hop foreign key traversalanalyzeForeignKeys— foreign key health and performance
Time Series — temporal analysis
findRecent— rows within a time windowanalyzeTimeSeries— window functions and anomaly detectiondetectSeasonality— seasonal pattern detection
Export — get data out
exportTable— CSV, JSON, JSONL, or SQLgenerateInsertStatements— INSERT statements for migration
Write (read-write only) — safe modifications
previewUpdate/previewDelete— see what would change before committingsafeUpdate— UPDATE with dry-run, row limits, empty WHERE protectionsafeDelete— DELETE with dry-run, row limits, empty WHERE protectionsafeInsert— INSERT with validation, batching, ON CONFLICT support
Security
- Read-only by default — write operations must be explicitly enabled
- All queries use parameterized values
- SQL injection prevention with input validation and pattern detection
- Identifier sanitization for table/column names
- Rate limiting on all operations
- Query timeouts to prevent long-running queries
- Response size limits to prevent memory exhaustion
Examples
"What are the largest tables and do they have bloat?"
"Find duplicate emails in the users table."
"Which queries are slowest and how can I speed them up?"
"Show me what's happening on the database right now."
"Find orphaned orders that reference deleted customers."
Configuration
CLI flags: --read-only (default), --read-write, --mode <mode>
Logging
File logging is disabled by default. Set ENABLE_LOGGING=true to enable. Two log files are created in LOG_DIR:
- tool-usage.log — every tool call with timestamp, name, and arguments
- error.log — errors with stack traces
Connection strings are automatically redacted in all output.
Development
License
Apache-2.0
Source: README.md at commit 3cb6fa3
Tools
0Version history
1- v1.0.3LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts