One caller, one identity
Every tool call authenticates as the calling user’s own Supabase JWT. There is no service-role client anywhere in this server — Postgres Row-Level Security enforces org isolation exactly like the staff UI does.
A Model Context Protocol server for
Marques Boxing (AMB), a DevFellowship client boxing gym. It exposes the
same operations the staff app (app.marquesboxing.devfellowship.com) has —
students, modalities, plans, teachers, classes, roster enrollment, staff
management, and reports — as MCP tools an AI agent can call directly.
One caller, one identity
Every tool call authenticates as the calling user’s own Supabase JWT. There is no service-role client anywhere in this server — Postgres Row-Level Security enforces org isolation exactly like the staff UI does.
Same rules as the UI
Validation mirrors the staff app’s own forms field-for-field. This server does not invent new business rules — it calls the same tables under the same constraints.
33 tools, 8 entity groups
Students, modalities, plans, teachers, classes, class roster, staff users, and two read-only reports. See the tools reference for the full list.
Streamable HTTP
POST https://mcp-server.marquesboxing.devfellowship.com/mcp —
works with any MCP client that speaks Streamable HTTP with a bearer
token.
https://mcp-server.marquesboxing.devfellowship.com/mcpEvery request needs Authorization: Bearer <supabase-user-jwt> — including
the initialize handshake. See Getting started to
connect a client, and Auth & security for how the JWT is verified
and how RLS keeps this single-tenant-shaped server safe to run
multi-identity.