mcp-proof / effect evidence

@executeautomation/database-server@1.1.0 (case study)

no effect-conformance failures observed
Observation boundary. Effects are read out-of-band via the stock SqliteObserver (generic sqlite_master introspection) over the DB file — the same channel `mcp-proof effects --sqlite` ships; zero target-specific code, never from the tools' own responses. Authority and effectiveness come from a probe that exercises created objects: none — this service mints no credential-like object with a local authorization rule to exercise, so authority/effectiveness stay unknown and EFF-06 SKIPs (probe-backed classification remains validated on the controlled testbed, E2/E3). Dimensions no channel can establish are marked unknown and their checks SKIP — never a silent pass. This is a controlled measurement instrument; findings here are about the audited server, not production prevalence.
Calls observed10
Authority objects0

Effect-conformance checks

CheckLevelResultDetails
EFF-01MUST– SKIP
readOnlyHint is honoured (no observed external write)
no exercised tool declared readOnlyHint=true
EFF-02MUST✓ PASS
observed deletes are consistent with destructiveHint (explicit false contradicted ⇒ fail; unset ⇒ spec default true)
all 1 observed deleted object(s) consistent with declared/default destructive semantics: 1 call(s) from tools leaving destructiveHint unset (spec default: true — hosts must already treat them as destructive)
EFF-03SHOULD– SKIP
idempotentHint is honoured (a repeated identical call is a no-op)
no idempotentHint-annotated (non-readOnly) tool was called twice with identical arguments
EFF-06SHOULD– SKIP
created authority does not outlive its authorizing grant
no created authority-bearing object to assess

Per-call effect ledger

Declared annotations beside the effect an independent observer saw, the response a response-only auditor would have read, the objects that resulted, and the probe's authority / dependency verdict.

CallDeclaredObserved effectResponse seen Objects / persistenceAuthority (probed)Lineage
create_table
{"query": "CREATE TABLE items (id INTEGER PRIMARY KEY, name TEXT, qty INTEGER)"}
—none observed
no external object changed between before/after snapshots
{ "success": true, "message": "Table created successf…—
—
not authority observed
no object created
by: —
needs: —
write_query
{"query": "INSERT INTO items (name, qty) VALUES ('anvil', 3)"}
—create observed
observed 1 change(s): create items/1
{ "affected_rows": 1 }create items/1
persistent
unknown unknown
probe inconclusive
by: —
needs: —
write_query
{"query": "INSERT INTO items (name, qty) VALUES ('rope', 10)"}
—create observed
observed 1 change(s): create items/2
{ "affected_rows": 1 }create items/2
ephemeral
unknown unknown
probe inconclusive
by: —
needs: —
read_query
{"query": "SELECT * FROM items ORDER BY id"}
—none observed
no external object changed between before/after snapshots
[ { "id": 1, "name": "anvil", "qty": 3 },…—
—
not authority observed
no object created
by: —
needs: —
list_tables
{}
—none observed
no external object changed between before/after snapshots
[ "items" ]—
—
not authority observed
no object created
by: —
needs: —
describe_table
{"table_name": "items"}
—none observed
no external object changed between before/after snapshots
[ { "name": "id", "type": "INTEGER", "notnu…—
—
not authority observed
no object created
by: —
needs: —
write_query
{"query": "UPDATE items SET qty = 4 WHERE name = 'anvil'"}
—update observed
observed 1 change(s): update items/1
{ "affected_rows": 1 }update items/1
—
not authority observed
call created no object to bear authority
by: —
needs: —
write_query
{"query": "DELETE FROM items WHERE name = 'rope'"}
—delete observed
observed 1 change(s): delete items/2
{ "affected_rows": 1 }delete items/2
—
not authority observed
call created no object to bear authority
by: —
needs: —
append_insight
{"insight": "rope stock was removed"}
—create observed
observed 1 change(s): create mcp_insights/1
{ "success": true, "message": "Insight added" }create mcp_insights/1
persistent
unknown unknown
probe inconclusive
by: —
needs: —
list_insights
{}
—none observed
no external object changed between before/after snapshots
[ { "id": 1, "insight": "rope stock was removed…—
—
not authority observed
no object created
by: —
needs: —