Enables CRUD operations for a notes application using Supabase as the database backend, leveraging its authentication and Row Level Security (RLS) features to manage user-specific data.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Supabase MCP ServerCreate a new note titled 'Project Ideas'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Supabase MCP Server - Notes Application
Description
A full-featured notes management application built with Model Context Protocol (MCP) integration and Supabase as the database backend. The application ensures secure user access with role-based isolation through combined protection at the application level (JWT) and database level (RLS policies).
Features
π Security
OAuth 2.0 Authentication - supports Email/Password and GitHub login
JWT Token Validation - protects MCP endpoints
Row Level Security (RLS) - database policies for user data isolation
XSS Protection - HTML escape functions in client code
π Functionality
CRUD Operations - Create, read, update, and delete notes
User Association - each note is linked to its creator
Responsive Interface - optimized for all devices
User Management - login, registration, and logout
ποΈ Architecture
Backend: Node.js Express server with MCP integration
Frontend: HTML/CSS/JavaScript without external dependencies
Database: Supabase PostgreSQL
API: RESTful MCP endpoints with JWT authentication
Getting Started
Prerequisites
Node.js (v14+)
Supabase project (https://supabase.com)
Postman for API testing (optional)
Installation
Navigate to project directory:
cd supabase-mcp-serverInstall dependencies:
npm installConfigure .env file:
cp .env.example .envFill in the following values from your Supabase project:
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_ANON_KEY=your-anon-key
PORT=3000Start the server:
npm startThe server will start at http://localhost:3000
Usage
Frontend Application
Open
http://localhost:3000in your browserChoose a login option:
Email/Password: Enter your email and password
GitHub: Click the GitHub button
After login, you can:
Create notes - fill in title and content, click "Add"
Edit notes - click "Edit", make changes, click "Save"
Delete notes - click "Delete" and confirm
MCP Endpoints (Postman)
The application provides MCP endpoints for CRUD operations:
Postman Collection: Open postman_collection.json in Postman
Testing Steps:
Log in to the frontend
Copy the JWT token (displayed in the application)
In Postman, go to Collection Variables
Paste the token in the
{{token}}variableExecute the requests
Technical Details
notes Table:
CREATE TABLE notes (
id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
user_id UUID REFERENCES auth.users(id) ON DELETE CASCADE,
title TEXT NOT NULL,
content TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);RLS Policies
Four RLS policies protect data access:
Policy | Operation | Condition |
| SELECT |
|
| INSERT |
|
| UPDATE |
|
| DELETE |
|
Local Testing
Open two browser windows - one for each user
Log in with different accounts
Create notes in each account
Verify that each user sees only their own notes
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.