Supabase
MCP server for interacting with the Supabase platform
Descripción del creador (original en inglés)
Check, test, prove and review a rowstile policy: access rules for Postgres row-level security
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"rowstile": {
"command": "npx",
"args": [
"-y",
"rowstile",
"mcp"
]
}
}
}Ejecuta esto en tu terminal
claude mcp add rowstile -- npx -y rowstile mcpPégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"rowstile": {
"command": "npx",
"args": [
"-y",
"rowstile",
"mcp"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"rowstile": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"rowstile",
"mcp"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 6 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub rowstile, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (0.1.0-beta.3) llegó al registro ayer.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.
En la misma categoría: Supabase, MongoDB MCP Server, Elasticsearch MCP Server
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
MCP server for interacting with the Supabase platform
MongoDB Model Context Protocol Server
MCP server for interacting with Elasticsearch
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
Authorization inside your Postgres. Sharing, groups, nested folders and tenants, written in one policy file and compiled to row-level security. There is no authorization service to run beside the database, and no permission data to copy into one and keep in step: the rules read the tables your app already has.
Write who-can-do-what in one small file, next to the data it depends on. The rowstile command compiles it into plain SQL: views, trigger-maintained tables for inheritance, row-level security policies, and functions for app code: checks, sharing, "who has access", "why", access requests, reviews, audit. Each change to the policy ships as a migration for the tool your app already uses (Alembic, Prisma, Drizzle Kit, plain SQL). Nothing is installed in the database first, and nothing has to run next to it: any Postgres 16, 17 or 18 works, managed or not, and the owner of your tables runs the migrations, no superuser needed.
app role app_user -- the Postgres role the app connects as
type user = app.users type folder = app.folders owner : user = owner_id -- a relation read from a column parent : folder = parent_id editor : user = app.folder_editors(folder_id -> user_id) -- ... or from a link table can edit = owner or editor or parent.edit -- inherited down the tree can view = edit rules app.folders select : view update : edit update owner_id : owner -- only the owner gives it away update parent_id after : parent.edit -- moved only under a folder they may edit
The app says who is asking in each transaction and queries its tables as usual; RLS filters every read and checks every write:
BEGIN;
SELECT authz.act_as('user', '42'); -- a trusted backend, or: -- SELECT authz.login_key('ak_...'); -- an API key (optionally limited by scopes) -- SELECT authz.login_jwt('eyJ...'); -- a JWT from your identity provider SELECT * FROM app.folders; -- only the folders 42 may view SELECT authz.can('folder', 7, 'edit'); -- ask directly SELECT * FROM authz.perms_of('folder', ARRAY['7', '8']); -- a list's buttons, in one call COMMIT;
It fits when:
It doesn't when:
rowstile 0.1.0 is in beta: complete enough to use before it is released, and it may still change where using it shows a need. Until 1.0, a minor release may change the language, the authz.* functions, the SDKs and the file formats; from the beta on, each release upgrades a database from the one before it, and the changelog says what to do. What a 0.x release promises.
rowstile was called rowfence until 0.1.0-alpha.1; another product had the name first. The changelog says what the alphas were: Before the beta.
Only pre-releases are published so far: ask for the newest.
npm i -D rowstile@next # the command with its own Python: a TypeScript app needs none pip install --pre rowstile # the command and the Python SDK: rowstile[fastapi], [sqlalchemy], ... docker run --rm -u "$(id -u):$(id -g)" -v "$PWD:/work" ghcr.io/rowstile/rowstile:0.1.0-beta.3 migrate
npm brings the Python for Linux (glibc and musl, x64 and arm64), macOS (x64 and arm64) and Windows x64. The image is for Linux on x64 and arm64, and runs as root unless told otherwise: -u makes the files it writes yours. Installing has the rest: pre-releases, the extras, the repository.
From this repository, put core/cli on PATH. rowstile init then finds the stack (Next.js, Prisma, Drizzle, FastAPI, SQLAlchemy, Alembic, goose, dbmate, Flyway), writes rowstile.toml for its migration tool, adds the SDK's packages to package.json (for Python, names the one to add) and says which line to change.
.md (https://rowstile.dev/getting-started.md).| folder | what |
|---|---|
core/ | the compiler and the rowstile command, their tests and the benchmarks |
sdk/ | the SDKs: Python (FastAPI, Django, SQLAlchemy, psycopg, asyncpg) and TypeScript (Next.js, Prisma, Drizzle, pg, postgres.js, React); previews for Go, .NET, Ruby, Java and Kotlin, Rust, Elixir and PHP |
integrations/ | each SDK's conformance suite: a small app and the checks it must pass |
examples/ | complete apps built on rowstile: a file manager, a messenger and a helpdesk |
editor/ | the VS Code and Zed extensions, a Tree-sitter grammar (Helix, Neovim); other editors start rowstile lsp |
review-ci/ | the policy review for pull requests: a GitHub action and a GitLab CI template |
docs/ | the guides and the reference, as Markdown |
site/ | the docs site, rowstile.dev (VitePress): it builds the pages from docs/ |
playground/ | rowstile in the browser (Pyodide and PGlite) |
packaging/ | how rowstile is installed: npm, PyPI and a Docker image |
demo/ | the recording at the top of this page: record.sh runs demo.tape on the guide's own app |
A question, or something you built with rowstile: Discussions. Issues and pull requests are welcome: CONTRIBUTING.md says how a change gets in, and the code of conduct how we work together. What changed in each release: CHANGELOG.md. How releases are numbered and made: RELEASING.md.
rowstile has not been audited by anyone outside the project. The threat model says what it protects and from whom. Report a vulnerability privately: SECURITY.md.
How the project itself is run, as the OpenSSF Scorecard measures it (pinned actions, what each workflow's token may do, known vulnerabilities in dependencies, review, releases):
The project's own answers to the OpenSSF Best Practices criteria, at the passing level: how it is documented, changed, tested and secured, each answer with where to check it:
Apache License 2.0; see LICENSE. Copyright 2026 Salaheddine EL HSSANI.