← The evidence ledger
Evidence row 265091
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 21966bf7-635e-427a-9bc0-af25858c8736
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 1f936183b23a6151e87a2b66a6249d6f03c725f96f99a2ff3047c86f18a81a2f
- Leaf
- 0x532c3dc6f864e9ea06f04cf5a3c44528d0d2ced4425ede62926723265c91c60c
What was observed
{
"count": 4,
"tools": [
{
"description": "Use this when the user wants their Supabase migrations checked for RLS gaps before launch, asks whether the Supabase October 30, 2026 Data API grants change will break their tables, or asks whether a security definer function is callable by anon or by signed-in users. Pass the SQL text: sql for one migration, or files with path and content for several, in the repo's file names. It runs the SQL rules of the VibeRaven 1.6.12 CLI and returns each finding with id, severity, file and line in the text passed, a one-line fix and a guide link. Finding ids: rls_disabled (table without RLS), rls_no_policies (RLS on, no policies), rls_policy_allows_all_read and rls_policy_allows_all_write (using (true) or with check (true) for anon, authenticated or public), security_definer_function_executable (EXECUTE not revoked from anon or authenticated), data_api_grant_without_rls (table granted to anon or authenticated with RLS off), data_api_grant_missing (the browser queries a table that has no grant once default grants are off). data_api_grant_missing needs the migration that revokes default privileges or supabase/config.toml, plus the browser files that call supabase.from(...) (a \"use client\" file, or src files with package.json for a Vite app). It is a static read of the text passed: it does not connect to the database, does not run the SQL and does not see the rest of the repository. Up to 200 KB in 50 files. The text is processed in memory, not stored and not logged.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"files": {
"description": "Several files: .sql migrations, and optionally supabase/config.toml, package.json and browser code files.",
"items": {
"additionalProperties": false,
"properties": {
"content": {
"description": "The full text of the file.",
"type": "string"
},
"path": {
"description": "The file path in the repo, for example supabase/migrations/20260101000000_init.sql. Migrations run in file name order.",
"maxLength": 300,
"minLength": 1,
"type": "string"
}
},
"required": [
"path",
"content"
],
"type": "object"
},
"maxItems": 50,
"minItems": 1,
"type": "array"
},
"sql": {
"description": "The SQL text of one migration file.",
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "check_supabase_migrations"
},
{
"description": "Use this when the user asks what a VibeRaven finding id means, for example rls_disabled or env_var_drift, or pastes a finding from a VibeRaven 1.6.12 report. Returns what the rule detects in repository files, why it matters, how to fix it and what it does not check, quoted from viberaven.dev with a source link for each part. It does not read the user's repository, database or Vercel project. Known ids: rls_disabled, rls_no_policies, rls_policy_allows_all_read, rls_policy_allows_all_write, security_definer_function_executable, pooler_port_mismatch, service_role_key_in_client_code, env_var_drift. An unknown id returns found: false and the list of known ids.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"gap_id": {
"description": "The finding id as printed by VibeRaven, for example rls_disabled.",
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"gap_id"
],
"type": "object"
},
"name": "explain_finding"
},
{
"description": "Use this when the user wants a manual pre-launch checklist for a Lovable + Supabase app or a Next.js + Supabase app on Vercel. Returns the checklist published on viberaven.dev for that stack with its sources, and the one optional local VibeRaven step (`npx -y viberaven@1.6.12 check`), which is advice, not a gate. The items are manual checks the user does in their dashboards and code; this tool does not run any of them.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"stack": {
"description": "lovable-supabase for a Lovable app with Supabase, nextjs-supabase-vercel for a Next.js app with Supabase deployed on Vercel.",
"enum": [
"lovable-supabase",
"nextjs-supabase-vercel"
],
"type": "string"
}
},
"required": [
"stack"
],
"type": "object"
},
"name": "launch_checklist"
},
{
"description": "Use this when the user has a launch question about an AI-built app on Vercel + Supabase, such as Supabase RLS, env vars on Vercel, a Stripe webhook after deploy or a client handoff. Searches the launch guides published on viberaven.dev by keyword and returns up to 5 matches, each with its title, URL and the short answer from the page. It only searches those published pages: it does not browse the web or read the user's project. No match returns an empty list.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"query": {
"description": "A few keywords from the question, for example \"supabase tables missing rls\".",
"maxLength": 200,
"minLength": 1,
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_guides"
}
]
}What the leaf hashes
{"body":"1f936183b23a6151e87a2b66a6249d6f03c725f96f99a2ff3047c86f18a81a2f","id":265091,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793034613087080,"prev":null,"subject":"21966bf7-635e-427a-9bc0-af25858c8736","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).
- 0x532c5ec973a204366d77fb57d2514e810e1a113cb73177ce8aba4625742cbf02
- 0x8dcc5e0db9999b8f70d5f152c39d4b8d5dc8692639ef2d5b6e8256a10e2ad6c3
- 0xe4fa0fa125eeae0899f5e55f704c12a6942e7f4a9c63b89e88e71eab916c22ce
- 0x07fc4fa4529059facc09189c25cd1619202712639b0a36e48726a2f5f58dfaf6
- 0xa75b1a003149745114e82faa394c99d8e43ecefff2447550d3106078372d3dc6
- 0xf303d76a7532063c396795aa9247bf1227b832a2279877f047c332ca3519fdcc
- 0xad52d2a7c19d01f87b0bffc787ddf5a285c1bacc21cfb9f9bda2bc703743aea3
- 0x8833831b6f9ca176d83016c6e063f42128258b707d64f9f1e126d8380d2e0efd
- 0x707cd63ec08491d361ce9df43c10a73cfe23cf386ca2533a2d986ce81e0b98af
- 0x72bd13c090ca80e7870affede013ba3445a9ce90177c8d0abe389b26f526682c
- 0x11ae5fc5d08fb7b25beace35e67656980e21edfc94e809110b5b9ecae306b6c8
- 0x94dd4ed7cf198df741ccda83eacc422aadb31119fc6e84c4a6d2f023453b7960
- 0xd830c52e1e8095e014510110592485afcb02b9c9a36f85653e4891a8de941246
- 0x0733993143f0230e79482cef2c38e95d98f9eafbe64a43cdc74a4545938a4167
- 0x2be1e80e065dd6b2cc75a7142be22225acd144ac975d70bf24b4f01fd76dc497
- 0x2e6a32eb32761c210560e852405e2f865f958ddbe01027894f8b9c1b3433b9f0
- 0x9a83be955a206deb65b995adfd92c58fa31c95fbbf926bd199d300e70b08b26d
- 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae