PG Bloat Detective
Read-only Postgres bloat verdicts: blockers, timelines, REINDEX proof.
Connector by r69shabh · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/r69shabh-pg-bloat-detective
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 26, 2026.
- Tools
- 1 read · 0 write · 0 delete · 4 not yet classified
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Tools by what they do 5
Read from the source code; the running server may list different tools.
Read 1 · Look things up without changing anything.
bloat_check
Not yet classified 4 · We could not tell from the name and description.
bloat_blockersbloat_collectbloat_live_diagnosebloat_timeline
Secrets and settings it asks for
Other settings (environment variables or headers).
BLOAT_DBBLOAT_DSN
Network hosts it talks to 3
github.com· found in codeglama.ai· found in codeui.shadcn.com· found in code
Tools (5)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
bloat_blockersWho is pinning VACUUM: blocker pid + query + xmin age + slot. Read-only on the local timeline file. Priority: prepared-xact > stale-slot > idle-in-transaction. Fix: end the named session, then VACUUM the table. Args: db: Path to the SQLite timeline file (default: BLOAT_DB env). Returns: {blockers: [{ts, kind, pid, age, query, slot}] — newest first, max 20. Use pid with SELECT pg_terminate_backend(pid) after verification.
bloat_checkDiagnose PostgreSQL bloat from a collected timeline. Read-only: only reads the local SQLite timeline file, never touches Postgres. Args: db: Path to the SQLite timeline file (default: BLOAT_DB env, 'timeline.db'). Collect one first with bloat_collect, or pass any timeline.db path. Returns: findings: list of {table, verdict, evidence, action} — verdict is one of normal | vacuum-starved | blocked-by-idle-xact | blocked-by-slot | blocked-by-prepared | blocked-by-active-xact | needs-rewrite | index-bloated | index-unused. Evidence carries dead/live counts, pgstattu…
bloat_collectTake a read-only Postgres snapshot into the timeline, then return fresh verdicts. Safe on prod: read-only transaction, 5s statement timeout, needs only pg_stat_* views + optional pgstattuple extension. No writes, no agents. Args: dsn: Postgres DSN, e.g. 'dbname=app user=readonly host=db.internal'. Default: BLOAT_DSN env. Never logs the password. Returns: {snapshot: 'saved', db: path, findings: [...with action per table/index]}.
bloat_live_diagnoseOne-shot live diagnosis without touching your timeline file. Snapshots into a throwaway temp DB, diagnoses, discards it. Read-only on Postgres (read-only tx, 5s timeout). Safest option for prod DSNs. Args: dsn: Postgres DSN (default: BLOAT_DSN env). Password never logged. Returns: {findings: [...with action], blockers: [...]} — same verdict set as bloat_check, plus the current xmin-holder evidence.
bloat_timelineDead-tuple + approx + index-bloat time series: when the bloat started. Read-only on the local timeline file. Args: table: Table name to filter (e.g. 'churn'). Empty = all tables. db: Path to the SQLite timeline file (default: BLOAT_DB env). Returns: {table: {dead: [{ts, live, dead}], approx_pct: [{ts, dead_pct}]}, index_bloat: {index: [{ts, bloat_pct}]}}. Rising dead = vacuum-starved; spike-then-zero = was blocked, blocker left.
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Weekly downloads
- 103
- Last commit
- Oct 12, 2026 (16 days ago)
- Last release
- Oct 12, 2026 (16 days ago)
- Last package publish
- Oct 12, 2026 (16 days ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.r69shabh/pg-bloat-detective- Version
- 0.1.6
- Auth
- No auth
- Packages
- pypi pg-bloat-detective
- License
- MIT
- Repository
- github.com/r69shabh/pg-bloat-detective
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
PG Bloat Detective MCP server. Agent Mart. https://agentmart.dev/connectors/r69shabh-pg-bloat-detective (last updated 2026-10-24)