Skills · MCP · CLI · Supabase
Stop explaining the same thing twice. Encode it once. Let the agent run.
Every time you start a new session with an AI coding agent, you re-explain everything from scratch:
You are the context. And that doesn’t scale.
Skills fix this. MCP extends it. CLI automates it.
I know kung fu. — Neo, The Matrix
Skills are loaded only when relevant. The agent reads the description and pulls in what it needs — no wasted tokens on context that doesn’t apply.
Each skill gives the agent a new superpower: a new framework, a deploy recipe, a testing strategy. Plug-and-play expertise.
Skills are Markdown files you version-control alongside your code. They evolve with your project and stay in sync with reality.
| Dimension | System Prompt | Skill |
|---|---|---|
| Loaded | Always — every request | On-demand — when relevant |
| Token cost | Constant overhead | Pay only when used |
| Scope | Global, one-size-fits-all | Targeted, single-purpose |
| Versioning | Manual, easy to lose track | Git-tracked with your code |
| Team sharing | Copy-paste across setups | Clone the repo, get the skills |
| Updates | Edit a long text blob | Edit a focused .md file |
| Scales to | Hits context limits fast | Hundreds of skills, no cost |
System prompts are always-on overhead. Skills are just-in-time specialisation.
Live in your repo. Shared with the team via git. Project-specific knowledge that travels with the codebase.
Live on your machine. Personal preferences and cross-project conventions that follow you everywhere.
Workspace skills are team knowledge. Global skills are personal muscle memory. Use both.
Skills teach HOW. MCP gives LIVE DATA.
| Category | MCP Server | What It Gives the Agent |
|---|---|---|
| Databases | Supabase, Postgres, Neon | Read/write tables, run queries, inspect schemas |
| Dev Tools | GitHub, GitLab, Linear | Issues, PRs, branch status, CI results |
| Design | Figma | Component specs, tokens, layout data |
| Productivity | Notion, Google Docs | Project docs, meeting notes, specs |
| Payments | Stripe | Product catalogue, subscription logic |
| Automation | n8n, Zapier | Workflow definitions, trigger configs |
| Custom | Your own API | Anything you expose via the MCP spec |
You don’t need to know what a database is to build something that uses one. You just need the right analogy.
Think of a web app like a restaurant:
Supabase gives you the kitchen and the filing cabinet in one service:
| Feature | Plain English |
|---|---|
| Database | Organised tables to store your data — users, products, orders |
| Auth | Sign up, log in, password reset — handled for you |
| Storage | Upload and serve images, PDFs, any file |
| Realtime | Instant updates — when data changes, your app knows immediately |
| Edge Functions | Small pieces of server code that run close to your users |
| Auto API | Every table instantly gets a REST + GraphQL API — no code needed |
A database is just a very organised spreadsheet.
| id | name | role | |
|---|---|---|---|
| 1 | Sarah | sarah@mail.com | admin |
| 2 | James | james@mail.com | agent |
| 3 | Priya | priya@mail.com | buyer |
| id | address | price | agent_id |
|---|---|---|---|
| 101 | 12 Oak Lane | $450k | 2 |
| 102 | 8 River Rd | $620k | 2 |
| 103 | 3 Hill St | $380k | 2 |
Each row is one item — one user, one property, one order. Like one line in a spreadsheet.
Each column is one attribute — name, email, price. The shape of your data.
The agent_id in properties points to a user. That’s how tables connect.
Think of it like key cards in a hotel. Your card only opens your room. RLS means each user can only see and edit their own data — the database enforces it automatically, no extra code needed.
Like WhatsApp for your data. When someone adds a row or changes a value, every connected client sees it instantly. No refresh, no polling — just live updates pushed to the browser.
A file locker in the cloud. Upload profile pictures, PDFs, property photos. Organise them in buckets. Control who can access what with the same RLS policies as your database.
Tiny workers that run server-side code close to your users. Send an email when someone signs up, process a payment, call an external API — without managing a server.
Without MCP you describe and hope. With MCP the agent reads your actual database.
| Action | What the Agent Can Do |
|---|---|
| Inspect schema | Read every table, column, type, and relationship — no guessing |
| Query data | Run SELECT queries to understand real content and edge cases |
| Generate migrations | Write SQL migrations that match your actual schema, not an imagined one |
| Create RLS policies | Build security rules based on your real auth setup |
| Scaffold CRUD | Generate type-safe API calls that match your columns exactly |
| Debug issues | Check live data to find why a query returns empty or wrong results |
Four steps to give your AI agent direct access to your Supabase project.
Open your Supabase dashboard. Copy two values: Project URL and Service Role Key from Settings → API.
In Antigravity IDE, go to Settings → MCP Servers. Click Add Server to open the configuration panel.
Paste this JSON into your MCP config file:
Restart Antigravity. Ask the agent: "List all tables in my Supabase project." If it returns your schema, MCP is connected.
.env files and add them to .gitignore.
Slide 13 / 24
Three real scenarios showing the difference MCP makes.
Without MCP
You manually describe your schema, column names, relationships, and RLS policies. The agent guesses at types and foreign keys. Multiple rounds of correction follow.
With MCP
The agent reads your properties and profiles tables directly,
sees exact types and constraints, and generates a correct saved_properties junction table
with proper foreign keys on the first attempt.
Without MCP
You copy-paste your RLS policies into chat. The agent suggests fixes based on incomplete context. You go back and forth, unsure which policy is actually active.
With MCP
The agent queries pg_policies directly, finds the permissive SELECT policy
missing a user_id = auth.uid() check, and writes the corrected policy immediately.
Without MCP
You describe table relationships in prose. The agent writes SQL with wrong column names and missing joins. Debugging requires multiple iterations.
With MCP
The agent inspects foreign keys and indexes, writes an optimized query with correct column names, proper JOIN order, and even suggests adding a missing index for performance.
Slide 14 / 24
Slide 15 / 24
They solve different problems. Here is the definitive comparison.
| Skills | MCP | |
|---|---|---|
| What it is | A markdown file of rules and patterns | A live server connection to external tools |
| Lives where | In your project repo (.antigravity/skills/) |
Runs as a local or remote process |
| Purpose | Encode how to write code correctly | Give the agent access to live data and actions |
| Example | "Always use RLS on every table" | "Read my actual table schema from Supabase" |
| Token cost | Loaded into context once (predictable) | Each tool call adds tokens (variable) |
| Best for | Consistency, standards, team conventions | Dynamic data, database ops, deployments |
| Versioned | Yes — lives in Git with your code | No — reflects live state of the service |
Slide 16 / 24
The same AI power, right in your terminal. No IDE required.
| Gemini CLI | Antigravity IDE |
|---|---|
| Quick file edits | Full project scaffolding |
| Git commit messages | Multi-file refactors |
| CI/CD pipelines | Visual debugging |
| Server-side scripting | Browser preview |
| Headless / automated runs | Interactive pair programming |
Slide 17 / 24
Everything you need to be productive from the terminal.
Slide 18 / 24
Eight production-ready Skills to install today.
| Skill | Scope | What It Encodes |
|---|---|---|
| nextjs-app-router | Framework | Server components, layouts, route handlers, metadata API |
| supabase-patterns | Backend | RLS, client init, query patterns, realtime, storage |
| shadcn-components | UI Library | Component usage, theming, dark mode, composition patterns |
| digitalocean-deploy | DevOps | App Platform config, environment variables, build commands |
| n8n-workflows | Automation | Node patterns, webhook setup, error handling, expressions |
| legaltrack-templates | Domain | Case schema, document types, timeline patterns, compliance |
| superhomes-schema | Domain | Property models, BER ratings, grant calculations, retrofit logic |
| supercfo-reporting | Domain | Financial models, report templates, chart patterns, KPI logic |
Slide 19 / 24
From prompt to production in one continuous flow.
Slide 20 / 24
One table to rule them all. Pin this to your wall.
| Skills | MCP | CLI | |
|---|---|---|---|
| Format | Markdown files (SKILL.md) | JSON-RPC server process | Terminal application |
| Loaded when | Session starts (auto-injected) | Agent calls a tool | You type a command |
| Gives agent | Rules, patterns, constraints | Live data, actions, APIs | Full filesystem + shell access |
| Supabase use | "Always enable RLS" | "Read my tables now" | "Migrate my database" |
| Open standard | Emerging (per-IDE format) | Yes — Anthropic MCP spec | Yes — open-source on GitHub |
Slide 21 / 24
Go from zero to full setup in one week. One task per day.
Get both tools running. Verify gemini --version works in your terminal.
Write a SKILL.md for your most-used framework. Start small: 10 rules max.
Follow the 4-step setup. Test by asking the agent to describe your schema.
Pick a real feature from your backlog. Build it using both together. Note the difference.
Add 3-4 community Skills relevant to your stack. Customize rules that don't fit.
Use headless mode in a script. Generate commit messages. Run one-shot refactors.
Export your best Skill. Share it with your team or the community. Collect feedback and refine.
Slide 22 / 24
Skills · MCP · CLI
Build something that defies the weight.
Slide 23 / 24