oferty-spike-mcp
Uses Supabase Auth as the OAuth 2.1 authorization server to protect the MCP endpoint, including consent flow and verification of Supabase-issued access tokens.
Click on "Deploy 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., "@oferty-spike-mcpping to verify my OAuth token identity"
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.
oferty-spike-mcp
Spike #1 of the "Online Offers" project: will the built-in OAuth 2.1 server of Supabase Auth (beta) work with the Claude app through Dynamic Client Registration.
The code is throwaway. Zero tests, zero error handling beyond what the spike itself diagnoses, zero real MCP tools. All that remains after completion is a notes file with conclusions.
What's here
File | Role |
| HTTP routing, |
| MCP server v2 + |
| Two paths: static Bearer (Claude Code) and Supabase token (Claude app) |
| Consent page — the only thing we actually write ourselves |
| Fetching AS metadata at startup, fail fast |
We use SDK v2 (@modelcontextprotocol/server + @modelcontextprotocol/node).
@modelcontextprotocol/sdk is legacy v1 — most online tutorials describe exactly that one.
Related MCP server: Remote MCP Server on Cloudflare
Environment variables
See .env.example. All four are required; the process won't start without them.
Local run
npm ci
APP_ORIGIN=http://localhost:3000 SUPABASE_URL=https://twoj.supabase.co \
SUPABASE_ANON_KEY=... SPIKE_STATIC_TOKEN=... npm startEndpoints
POST /mcp— Streamable HTTP, statelessGET /.well-known/oauth-protected-resource/mcp— RFC 9728GET /.well-known/oauth-authorization-server— Supabase metadata, passed through verbatimGET /oauth/consent?authorization_id=…— consent pageGET /healthz— process liveness, deliberately does not ping Supabase
Diagnostics
Without a token, POST /mcp responds with 401 and a WWW-Authenticate header pointing to the Protected Resource Metadata — that's how you know lazy auth is working.
When you suspect a connector reconnection issue (the most suspicious part of the spike), supabase.auth.oauth.listGrants() and revokeGrant({ clientId }) come in handy — they let you view and delete a saved grant without touching the database by hand.
This server cannot be deployed
Maintenance
Related MCP Connectors
Experimental MCP server for current empirical verification of explicit public HTTPS endpoint claims.
- StytchOAuthdev.stytch.mcp
The Stytch MCP server is a reference implementation that demonstrates remote MCP server authentication and authorization using Stytch Connected Apps. It provides OAuth 2.1-compliant authorization (including PKCE), Dynamic Client Registration, and validates Stytch-issued access tokens to enable AI agents to securely interact with external services through permissioned access, supporting scopes like openid, email, profile, and manage:project_data.
Minimal streamable HTTP MCP server used for owned-account registry connectivity tests.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables Claude.ai to connect to a Hermes MCP server via OAuth 2.1 authorization code flow with PKCE, acting as a reverse proxy and single-user authorization gateway.-
- FlicenseNot gradedqualityCmaintenanceEnables remote MCP server deployment on Cloudflare Workers with OAuth login, supporting tool calling via SSE from clients like MCP Inspector or Claude Desktop.-
- FlicenseNot gradedqualityCmaintenanceEnables deploying a remote MCP server on Cloudflare Workers with OAuth login, allowing MCP clients like Claude Desktop to connect and use tools over SSE.-
- FlicenseNot gradedqualityBmaintenanceA proof-of-concept HTTP MCP server requiring OAuth 2.0 authentication before tool use. Demonstrates the full authentication flow with Claude Code, including discovery, client registration, PKCE authorization, and bearer token verification.-