# rowstile [Health: Active]

**Category:** 🗄️ Databases  
**Repository:** https://github.com/rowstile/rowstile  
**GitHub Stars:** 1  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/rowstile

## Description
Check, test, prove and review a rowstile policy: access rules for Postgres row-level security

## Claude Desktop Quick Installation
No confirmed install details yet, so no config is published. Follow the setup steps in the repository above.

## Documentation

## What rowstile does

The rowstile MCP server is presented as an interface for working with rowstile authorization policies, while the supplied project documentation describes rowstile itself as a policy compiler and command-line tool for PostgreSQL. Its policy language expresses who can perform actions on database records. Rules can refer to columns, link tables, ownership, editors, parent folders, nested groups, tenants, and sharing relationships.

The compiler turns a policy into ordinary SQL artifacts. These include views, tables maintained by triggers for inherited relationships, PostgreSQL row-level security policies, and functions used by application code. A policy change becomes a migration that can be applied through Alembic, Prisma, Drizzle Kit, or plain SQL. No separate authorization service is required, and the rules read the application’s existing tables.

This fits the 🗄️ Databases category because authorization is enforced inside PostgreSQL. It is intended for applications whose data and access relationships reside in one PostgreSQL database.

## How it works

An application identifies the subject for a transaction, then queries or changes its tables normally. PostgreSQL RLS filters permitted reads and checks writes. The application can establish identity with `authz.act_as`, an API key through `authz.login_key`, or a JWT through `authz.login_jwt`. Direct authorization queries include `authz.can` for one decision and `authz.perms_of` for permissions across a list of records.

A sample policy declares application roles and data types, maps relations to columns or link tables, and combines those relations into capabilities such as `edit` and `view`. Inherited access can pass through a folder or other parent relationship. The resulting checks run as part of database access rather than through a separately synchronized permission store.

## Setup and configuration

The project documents alpha installation through npm, PyPI, or Docker. The npm package includes the Python runtime needed by the command, while the Python package also provides SDK extras for supported frameworks and database libraries. The Docker example mounts the working directory and runs the `migrate` command.

Running `rowstile init` can inspect stacks including Next.js, Prisma, Drizzle, FastAPI, and SQLAlchemy, then create `rowstile.toml` for the migration tool. The documentation says PostgreSQL 16, 17, and 18 are supported, including managed or self-managed deployments. The database owner can run migrations without a superuser.

## Tools and capabilities

The rowstile MCP server listing is supported by the project’s documented policy workflow, which includes:

- Checking and testing authorization policies.
- Proving or reviewing a policy change.
- Compiling policy files into PostgreSQL SQL and migrations.
- Generating row-level security policies and application-facing authorization functions.
- Querying direct decisions and permissions for multiple records.
- Supporting Python and TypeScript SDKs, including integrations for FastAPI, SQLAlchemy, Next.js, Prisma, and Drizzle.

The repository also documents VS Code and Zed extensions, a language server command, review automation for GitHub Actions and GitLab CI, and a browser playground. These are project features; the supplied material does not state that they are MCP client integrations.

## Limitations and notes

The rowstile MCP server documentation provided here does not specify an MCP endpoint, transport, executable entry point, MCP tool schema, authentication flow for MCP clients, or client compatibility. Those details should be confirmed before configuring it as an MCP server.

The project is a 0.x preview. Minor releases may change the policy language, `authz.*` functions, SDKs, and file formats, although the changelog describes database upgrades. It is not designed for authorization decisions spread across multiple databases or outside PostgreSQL. The README also calls out limitations for direct Supabase Data API access, trees with many moves and secondary links, and requirements for an external audit or vendor. The project has not been audited by an outside organization.

_Full upstream README: https://allmcps.com/mcp/rowstile/readme_

