Schema-driven generator for safe, scoped PostgreSQL DML tools in FastMCP agent systems
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"tai42-mcp-dynamic-postgres","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# tai42-mcp-dynamic-postgres [](https://github.com/tai42ai/tai42-mcp-dynamic-postgres/actions/workflows/ci.yml) [](LICENSE) Schema-driven generator for **safe, scoped PostgreSQL DML tools** in [FastMCP](https://github.com/jlowin/fastmcp) agent systems. Point it at a PostgreSQL database and it introspects the schema and generates one typed MCP tool per DML operation per table — `insert`, `select`, `update`, `delete`, plus optional `select_joined`. The agent gets exactly those tools and nothing else: no raw SQL, no schema changes, no access to tables you didn't expose. ## Why Giving an agent database access usually means choosing between read-only access or risking that the agent runs arbitrary SQL and changes data or settings you never intended. This project gives you a controlled middle ground: a fixed set of generated, validated, parameterized tools scoped to the tables and operations you choose. ## What it does - Introspects your schema (tables, columns, types, foreign keys, `pgvector`). - Generates a FastMCP tool per DML operation per table, each with a dedicated Pydantic input model derived from the table. - Supports rich, **injection-safe** filtering (`WhereFilter`) and ordering, including vector KNN search. - Excludes chosen columns from generated tool inputs (e.g. `id`, `created_at`). - Exposes only the generated tools — never raw SQL or DDL. ## Security model > [!IMPORTANT] > The generated tool layer controls *which operations exist*; the PostgreSQL > role you connect as controls *what those operations can physically do*. > **Connect as a dedicated least-privilege role, never a superuser.** > Read [SECURITY.md](SECURITY.md) before deploying. Highlights, in full detail in [SECURITY.md](SECURITY.md): - Filter/order field names are validated against real columns and emitted…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.