supabase

Guides Supabase database, auth, RLS, and migration tasks with verified documentation and security checklists.

2|1|Updated Jun 9, 2026
One-click install
npx skills add https://github.com/zester4/zilmate --skill supabase-zester4
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: supabase
Source: https://github.com/zester4/zilmate/tree/main/.agents/skills/supabase
Command: npx skills add https://github.com/zester4/zilmate --skill supabase-zester4

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) and assets (resource) components.

What problem does it solve? Supabase APIs, CLI commands, and security conventions change frequently, so relying on stale training data leads to broken implementations and silent vulnerabilities like RLS bypasses. This Skill grounds every Supabase task in current documentation, changelogs, and a security checklist. ## Core Features & Use Cases - Verified Implementation Guidance: Fetches the Supabase changelog and docs (via MCP search_docs or .md URLs) before writing any code, avoiding outdated function signatures and config settings. - Security Checklist: Covers Supabase-specific traps including user_metadata in JWT claims, views bypassing RLS, SECURITY DEFINER functions, BOLA/IDOR policies, and service_role key exposure. - Schema Change Workflow: Directs safe iteration with execute_sql or supabase db query, then commits via advisors, db pull, and migration verification. - Use Case: When a user reports that a newly created table is unreachable via the REST API, the Skill checks Data API exposure settings and role grants, then applies RLS policies correctly. ## Quick Start Ask the agent to help with any Supabase task, such as "set up RLS policies for my tables" or "debug why my Next.js auth session is not persisting".

Frequently Asked Questions about supabase

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write a secure RLS policy in Supabase?

Combine TO authenticated with an ownership predicate like (select auth.uid()) = user_id in the USING clause, and add WITH CHECK for UPDATE policies. Avoid the deprecated auth.role() function and never rely on user_metadata claims for authorization.

Why is my new Supabase table not accessible via the REST API?

Newly created tables may not be automatically exposed through the Data API depending on project settings. Check the Data API settings and explicitly GRANT access to the anon and authenticated roles, then enable RLS on the table.

How do I create and commit a Supabase migration?

Iterate with execute_sql (MCP) or supabase db query, then run supabase db advisors, generate the migration with supabase db pull <name> --local --yes, and verify with supabase migration list --local. Avoid apply_migration for iterative changes.

Why does my Supabase view bypass RLS policies?

Views bypass RLS by default in Postgres. On Postgres 15+, create the view WITH (security_invoker = true); on older versions, revoke access from anon and authenticated roles or move the view to an unexposed schema.

What should I do when the Supabase MCP server is not connecting?

First curl https://mcp.supabase.com/mcp and expect a 401, which confirms the server is up. Then verify .mcp.json points to the correct URL, and complete the OAuth 2.1 authentication flow in the browser before reloading the session.