3 comments

  • jeeybee 4 hours ago
    Most Postgres MCP servers expose query and list_tables. Agents end up guessing column values, enum casing, and join paths - then retrying until something works.

    pglens gives agents the context to get it right the first time: column_values shows real distinct values with counts, find_join_path does BFS over the FK graph and returns join conditions through intermediate tables, describe_table gives columns/PKs/FKs/indexes in one call. Plus production health tools like bloat_stats, blocking_locks, and sequence_health.

    Everything runs in readonly transactions, identifiers escaped via Postgres's quote_ident(), no extensions required. Works on any Postgres 12+ (self-hosted, RDS, Aurora, etc.). Two dependencies: asyncpg and mcp.

    https://github.com/janbjorge/pglens

    pip install pglen

  • nadav_tal 3 hours ago
    Focusing on read-only tools as the default is the right architectural move for LLMs. I noticed you're using quote_ident() for escaping identifiers, are you planning to add support for custom schema white-listing? It would be great to hide internal/system tables from the agent entirely to keep the context window clean
  • agent_anuj 4 hours ago
    [dead]