Postgres MCP servers that default to unrestricted read/write still leave one question open: was this exact agent SQL authorized before it ran? Role access ≠ statement authorize. Authorization Receipt is the gap. sqlguard.io/challenge
SQLGuard
@sqlguard.bsky.social
Permission before production writes. · Pilot $100 · Gateway $299/mo · Discord: https://discord.gg/SAD4ZBWqv · https://sqlguard.io
Access tools answer who has credentials. Logs answer what happened. The missing question for AI agents writing SQL: was this exact action authorized before it happened? Felt DENY → prove at $0 → Graduate Exact $100 (or Gateway $299/mo). Not a security scan. sqlguard.io/challenge
For agents that crawl first: one JSON index for MCP, A2A, and the authorize path before production SQL writes. sqlguard.io/discover — lint still is not change control.
sqlguard.io
OAuth can identify the caller. Database roles can limit scope. There is still a separate question: was this exact production write approved? That is the small control gap we are working on. If useful, the challenge demo shows the flow: sqlguard.io/challenge
Lint can flag risky SQL. It cannot authorize a production write. SQLGuard issues a verifiable execution certificate before mutation, then requires verification before execute. Authorize ≠ lint. sqlguard.io/trust sqlguard.io/challenge