01
MCP server for a multi-tenant CMS
Context
AI agents needed to operate a CMS on behalf of real users, without becoming a security hole.
- Laravel MCP
- Sanctum
- OpenAPI
- Pest
What I built
- Two MCP servers (tenant CMS and admin) with typed read and write tools
- Access tokens with a dedicated MCP scope, inheriting the user’s permissions and tenant
- Confirmation on writes, throttling, TOTP step-up, idle timeout and an audit log
- An auto-generated OpenAPI wrapper exposing the same tools to ChatGPT and Gemini
Outcome
An agent can never do more than the user it acts for. Covered by feature tests.
