Review a Read-Only PostgreSQL MCP Tool Before You Ship It
Review database permissions, tenant identity, query time and response size in a Rust MCP tool. Use a real restricted PostgreSQL role to check the boundaries.
Carry identity, permissions, approval, and resource limits to the place effects happen. Each guide gives a concrete reproduction, the resulting decision, and the limits of the evidence.
Review database permissions, tenant identity, query time and response size in a Rust MCP tool. Use a real restricted PostgreSQL role to check the boundaries.
Your tenant has enough documents, but an HNSW query returns too few. Compare real plans, iterative scans, and an exact fallback without weakening access checks.
Roll out one narrow internal assistant before adding write actions. Read-only still requires authorization, output limits, and checks against private-data exposure.
Resolve tool credentials from trusted server context. A model-selected account must be checked against the acting user's current permissions before any secret is used.
Design a small tool-audit event around identity, policy, decision, and outcome. Test secret leakage in errors as well as normal logs.
Build tool manifests for the current task instead of exposing an entire backend. Keep independent server authorization because hiding a tool does not prevent a fabricated call.
An error response does not prove that a tool did nothing. Validate and authorize before effects, then assert unchanged storage and zero external calls after rejection.
An automatic model fallback should preserve actor scope, tools, approvals, and budgets. Never turn a provider failure into a switch to an administrative execution context.
Capture agent mail effects in a test adapter and keep production credentials out of the environment. A prompt telling the agent to stay in test mode is not an enforcement boundary.
Bound tool results before they become model context or logs. Use explicit pagination or overflow errors so partial data cannot look like a complete answer.
Keep reproducible failures in a versioned evaluation set. Retire obsolete cases with a recorded reason, and separate requirement changes from attempts to improve a release score.
Compare important workflows as well as the overall evaluation result. Report case counts and uncertainty so an aggregate gain cannot hide a smaller critical regression.