Query proof

What the read-only door refuses: DROP TABLE

The verbatim refusal Scry returns for a non-SELECT statement: nothing runs, nothing is read, nothing is metered.

Answer shape

Sent 2026-09-09 through the public door, DROP TABLE hackernews.items returned HTTP 400 with the body: query denied (non_select_statement): only SELECT is served on this read-only surface; rewrite the query as a SELECT. The statement never reached the engine.

Sources

  • Hacker News

Methods

  • statement validation
  • read-only surface

SQL

Run this through POST /v1/scry/query after inspecting GET /v1/scry/schema for current live fields.

DROP TABLE hackernews.items;

Verification notes

  • NoteThe refusal is typed (code invalid_request, reason non_select_statement), so an agent can branch on it instead of parsing prose.
  • NoteMeasured the same day: a statement without a literal LIMIT is refused before it runs (missing_limit: every query needs an explicit literal LIMIT, max 10000), and an unregistered relation such as system.users is refused with the nearest registered names listed.
  • NoteThe same wall stands on the MCP server and the HTTPS API: they share the validator.

Related sources