Skip to content
Agentmart
Submit a tool

PG Bloat Detective

Read-only Postgres bloat verdicts: blockers, timelines, REINDEX proof.

Connector by r69shabh · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)
Write a review

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.

We use your email only for this newsletter. Privacy

About

Read-only Postgres bloat verdicts: blockers, timelines, REINDEX proof.

No 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_blockers
  • bloat_collect
  • bloat_live_diagnose
  • bloat_timeline

Secrets and settings it asks for

Other settings (environment variables or headers).

  • BLOAT_DB
  • BLOAT_DSN

Network hosts it talks to 3

  • github.com · found in code
  • glama.ai · found in code
  • ui.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_blockers

    Who 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_check

    Diagnose 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_collect

    Take 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_diagnose

    One-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_timeline

    Dead-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
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)