GuardLayer for Claude Code and Cursor
Let your AI agent check the app it just built. GuardLayer's MCP server scans the code, checks the live Supabase project, and after a fix confirms what actually closed, so "I fixed it" gets checked against the database instead of taken on trust.
Claude Code
Install the plugin. It adds the MCP server and the skill that tells Claude when and how to use it:
claude plugin marketplace add solvionholdings/guardlayer-plugin claude plugin install guardlayer@guardlayer
Then ask: "Check this app for security issues with GuardLayer." The skill also kicks in before a deploy, or when Claude is about to loosen a policy to get past a permission error. The plugin's source is on GitHub.
Or add the server and skill by hand
MCP server
claude mcp add --transport http guardlayer https://www.guardlayer.io/api/mcp
Skill
mkdir -p ~/.claude/skills/guardlayer && curl -fsSL https://www.guardlayer.io/skills/guardlayer/SKILL.md -o ~/.claude/skills/guardlayer/SKILL.md
Read the skill first if you like: SKILL.md.
Cursor and other MCP clients
Add this to .cursor/mcp.json in the project (or the global Cursor settings). Any client that supports remote MCP servers over HTTP can use the same URL.
{
"mcpServers": {
"guardlayer": { "url": "https://www.guardlayer.io/api/mcp" }
}
}What the agent gets
scan_files
Static scan of the code your agent sends: service role keys in client code or NEXT_PUBLIC_ / VITE_ variables, RLS off or open policies in supabase/migrations, API routes, Server Actions and Edge Functions that don't check the caller, and more. Each finding comes with the fix.
get_supabase_snapshot_sql
A read-only query that reads your project's catalog: table and column names, RLS flags, policies, grants, triggers, functions and bucket settings. No rows. Your agent runs it with the Supabase MCP server, your access token, or asks you to paste it into the SQL editor.
check_supabase_snapshot
Checks that snapshot together with your Auth settings: tables anyone can read, policies that only check for a signed-in user while anyone can sign up, users who can make themselves admin. Pass the previous result's keys and it says what closed, what's new and what's still open.
- Read-only: the tools never change your code or database. Your agent applies the fixes, with your approval.
- Fixes go in a migration that gets applied, never by turning RLS off or opening a table to everyone.
- Nothing you send is stored.
Questions
Does GuardLayer see my database or my keys?+
No. Your agent runs a read-only query that returns catalog metadata, never rows, and sends GuardLayer that one JSON value. Your Supabase access token stays on your machine. The Auth settings are filtered to on/off flags and numbers before anything reads them, so SMTP passwords and provider secrets are dropped.
Is anything stored?+
No. Code and snapshots sent to the MCP server are checked in memory and discarded. Your IP address is used briefly for rate limiting, the same as the rest of the site.
Claude Code already has a security review. Why add this?+
Use both. A general code review reads your code. GuardLayer also checks the live Supabase project, which is where most leaks in AI-built apps actually happen: tables made in the dashboard, RLS switched off by hand, policies that are public because anyone can sign up. And after a fix it confirms the change reached the database.
Does it work with Lovable or Bolt?+
Those builders don't run MCP servers themselves. If your project syncs to GitHub, open it in Claude Code or Cursor and use this, or use the free check at /check-supabase in your browser.
What does it cost?+
It's free, with a rate limit per IP. The daily watch with email alerts is on guardlayer.io: free for one project.
Not using an AI agent?
The same live check runs in your browser: connect Supabase read-only, about a minute, free.
Check my Supabase project