| ▲ | Show HN: Pglens – 27 read-only PostgreSQL tools for AI agents via MCP(github.com) | |||||||
| 12 points by jeeybee 2 days ago | 7 comments | ||||||||
| ▲ | saltpath a day ago | parent | next [-] | |||||||
Read-only by design is a smart constraint for agent tooling — eliminates a whole class of "oops the LLM dropped my table" failure modes. Curious about a couple things: how do you handle schema introspection? Do the tools auto-discover tables/columns or is there a config step? And for the query tools, is there any cost/complexity guardrail (e.g. preventing a full sequential scan on a 500M row table)? | ||||||||
| ||||||||
| ▲ | jeeybee 2 days ago | parent | prev | next [-] | |||||||
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 | ||||||||
| ▲ | petervandijck a day ago | parent | prev | next [-] | |||||||
This is really nicely, read only is the right way to start | ||||||||
| ||||||||
| ▲ | nadav_tal 2 days ago | parent | prev [-] | |||||||
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 | ||||||||
| ||||||||