GuardLayer

io.github.solvionholdingsPublished by GitHub account solvionholdingsv1.0.1Updated Nov 11, 2026

Security checks for Next.js + Supabase apps: code scan, read-only live DB check, fix confirmation.

VerifiedStreamable HTTPWeb executableDatabasesDeveloper ToolsSecurity & Monitoring

Overview

AI-generated overview

Remote MCP server that security-checks Next.js + Supabase apps: static code scan, read-only live database check, and fix confirmation.

What you can do
  • Scan project source and Supabase migration files for secrets, exposed service role keys, missing RLS, unauthenticated routes and unsafe redirects
  • Get a read-only SQL query that returns Supabase catalog metadata (tables, RLS flags, policies, grants, triggers, functions, buckets), never rows
  • Check that snapshot plus Auth settings for publicly readable tables, open policies, self-editable role or plan columns and exposed functions
  • Re-check with previous issue keys to see what closed, what is new and what is still open
When to use it
Useful before deploying a Next.js + Supabase app, after changing tables or policies, or when an agent is about to loosen access to get past a permission error.
Requirements
Remote Streamable HTTP endpoint; no install or package. The agent sends the source files it chooses to scan and the JSON snapshot from the read-only SQL, which you run yourself in the Supabase SQL editor, via the Supabase MCP server, or through the Supabase Management API with your own access token.
Before you install
Source files and database catalog metadata are sent to the GuardLayer server, which states it checks them in memory and discards them; Auth settings are reduced to flags and numbers. If the Supabase Management API route is used, your Supabase access token is involved and Supabase's own privacy terms apply. The tools only report; applying fixes is up to you, and the server advises fixing issues in a migration rather than disabling RLS or granting to anon.

Installation

In SourceWeft

  1. Open GuardLayer in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.solvionholdings%2Fguardlayer/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "guardlayer": {
      "type": "http",
      "url": "https://www.guardlayer.io/api/mcp"
    }
  }
}

README

GuardLayer for Claude Code

Security check for Next.js + Supabase apps, run by your AI agent. GuardLayer scans the code, checks the live Supabase project read-only, and after a fix confirms what actually closed.

It catches the holes AI-built apps usually ship with: tables anyone can read, RLS off, policies that only check for a signed-in user (public in practice when anyone can sign up), users who can change their own role or plan, service role keys in frontend code or NEXT_PUBLIC_ / VITE_ variables, and API routes, Server Actions and Edge Functions that don't check the caller.

Install (Claude Code)

claude plugin marketplace add solvionholdings/guardlayer-pluginclaude plugin install guardlayer@guardlayer

The plugin adds the GuardLayer MCP server and a skill that tells Claude when to use it: before a deploy, after changing tables or policies, or when it's about to loosen access to get past a permission error. Then ask: "Check this app for security issues with GuardLayer."

Other MCP clients

The server is a remote MCP server over Streamable HTTP, no install needed:

https://www.guardlayer.io/api/mcp

Cursor (.cursor/mcp.json):

json
{ "mcpServers": { "guardlayer": { "url": "https://www.guardlayer.io/api/mcp" } } }

Tools

ToolWhat it does
scan_filesStatic scan of the files your agent sends. Each finding comes with the fix.
get_supabase_snapshot_sqlA read-only query for the project's catalog: table and column names, RLS flags, policies, grants, triggers, functions, bucket settings. Never rows.
check_supabase_snapshotChecks the snapshot together with your Auth settings. With previous_issue_keys it reports what closed, what's new and what's still open.

Privacy

Code and snapshots sent to the server are checked in memory and discarded. Your Supabase access token stays on your machine; Auth settings are reduced to on/off flags and numbers before they are read. See the privacy policy.

Data the plugin sends, and where

DestinationWhat is sentWhen
GuardLayer MCP server (https://www.guardlayer.io/api/mcp, the plugin's declared server)The source files the agent chooses to scan; the read-only catalog snapshot (table and column names, RLS flags, policies, grants, triggers, function and bucket settings, never rows); the project's Auth settings reduced to on/off flags and numbersWhen scan_files or check_supabase_snapshot runs
Supabase Management API (https://api.supabase.com), with the user's own access tokenThe read-only snapshot query, and a read of the project's Auth settingsOnly if the agent uses this route to run the snapshot query. The user can instead run it in the Supabase SQL editor or through the Supabase MCP server

Nothing is retained by GuardLayer. Supabase's handling of API requests is covered by Supabase's privacy policy. Usage is counted by tool name only (which tool ran, which client connected), never by content.

More: guardlayer.io/mcp · Browser version: guardlayer.io/check-supabase

Source: README.md at commit c78dca6

Tools

3

scan_files

Scan code for security issues

Static security scan of a Next.js + Supabase codebase: secrets in code or public env vars (NEXT_PUBLIC_, VITE_), service role keys in client code, RLS off or open policies in supabase/migrations, unauthenticated API routes, Server Actions and Edge Functions, unsafe redirects and more. Send source files (ts, tsx, js, jsx, sql, .env*, config files) with paths relative to the project root; skip node_modules, build output and lockfiles. Up to 300 files and 4 MB per call; split bigger projects. Files are scanned in memory and discarded.

Parametersfilesrequiredignore

get_supabase_snapshot_sql

Get the read-only Supabase snapshot query

Returns the read-only SQL for the live Supabase check and how to run it. It reads only catalog metadata (table and column names, RLS flags, policies, grants, triggers, SECURITY DEFINER functions, bucket settings), never table rows, and returns one JSON value.

Takes no parameters.

check_supabase_snapshot

Check a live Supabase project

Checks the JSON from get_supabase_snapshot_sql: tables anyone can read, RLS off, policies that only check for a signed-in user (public in practice when sign-ups are open), users who can update their own role or plan columns, exposed SECURITY DEFINER functions, public buckets. Pass auth_config (the project's Auth settings) when you can: it decides whether 'any signed-in user' means anyone. Pass previous_issue_keys from an earlier result to see what is closed, still open or new. Returns each issue with its SQL fix and a fix prompt.

Parameterssnapshotrequiredauth_configprevious_issue_keys

Version history

1
  1. v1.0.1LatestNov 11, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts