This is a Hono-based MCP (Model Context Protocol) server that works with any MCP-compliant OAuth2 server for authentication. The server is configured for deployment to:
- Supabase Edge Functions
- Cloudflare Workers
- Deno Deploy
OAuth authorization server URL. Required for Cloudflare Workers and Deno Deploy deployments.
Optional when deployed as a Supabase Edge Function - will be auto-constructed from the automatically available SUPABASE_URL environment variable.
Example: https://jdnlvjebzatlybaysdcp.supabase.co/auth/v1
This server supports MCP authentication from the Supabase OAuth2 server.
Environment: When deployed as a Supabase Edge Function, the SUPABASE_URL environment variable is automatically available. The server will auto-construct the AUTH_SERVER_URL from it (as {origin}/auth/v1), so no additional environment configuration is needed.
Supabase CLI should be installed. If needed, install it as a dependency:
# Install as dev dependency
pnpm add -D supabasesupabase functions serveFirst, link your project (one-time setup):
supabase link --project-ref <your-project-ref>Note: Find your project ref in your Supabase dashboard URL: https://supabase.com/dashboard/project/<your-project-ref> or in Project Settings > General > Reference ID
Then deploy the function:
supabase functions deploy mcp-oauthOr deploy all functions:
supabase functions deployNote on MCP Inspector Compatibility (January 2026): The MCP Inspector is not yet compliant with RFC 9728 and does not properly handle the
resource_metadataparameter in WWW-Authenticate headers. This causes issues when the OAuth metadata endpoint is served at an uncommon path like/functions/v1/mcp-oauth/.well-known/oauth-protected-resource. Claude Desktop and Claude Web handle this correctly and will successfully discover the metadata endpoint. See Inspector issue #576 for details.
pnpm cloudflare:devpnpm cloudflare:deployInstall Deno:
# macOS/Linux
curl -fsSL https://deno.land/install.sh | sh
# Windows
irm https://deno.land/install.ps1 | iexpnpm deno:dev
# or directly with deno
deno task devFirst, create a new app (one-time setup):
deno deploy create --org=<your-org># Deploy to production
pnpm deno:deploy
# or directly with deno
deno task deploy