Skip to main content
Glama
noqtar

Universal MCP OAuth Gateway

by noqtar

Universal MCP OAuth Gateway (with Excalidraw & Proxy Support)

A deployable, serverless Universal Model Context Protocol (MCP) OAuth Gateway & Proxy built on Next.js 14.

This project allows you to attach OAuth 2.0 authentication to Excalidraw OR ANY external MCP server so enterprise clients like Google Spark & Gemini Agents can connect seamlessly without OAuth rejection errors.


How It Works

[Google Spark Client] ──(OAuth 2.0 Auth + Discovery)──> [Universal MCP OAuth Gateway on Vercel]
                                                                  │
                                       ┌──────────────────────────┴──────────────────────────┐
                                       ▼                                                     ▼
                     [Built-in Tools: Excalidraw, SVG, Mindmaps]      [Proxy Mode: Any External Remote MCP Server]

Related MCP server: Remote MCP Server on Cloudflare

Features

  • 🔐 Universal OAuth 2.0 Auth Server: Implements /.well-known/oauth-authorization-server and /.well-known/openid-configuration with RFC 7591 dynamic client registration.

  • 🌐 MCP Server & Proxy Gateway:

    • Mode 1 (Built-in): Excalidraw tools (create_diagram, generate_flowchart, generate_mindmap, export_svg, view_diagram) & web utilities.

    • Mode 2 (Universal Proxy): Proxies JSON-RPC 2.0 requests to any unauthenticated remote MCP server specified via UPSTREAM_MCP_URL or X-MCP-Target-URL.

  • 🖼️ Interactive Web Viewer: Embedded viewer at /view/[id] allowing users & AI agents to inspect, copy, and download rendered Excalidraw diagrams as SVG.

  • 100% Vercel Native: Uses stateless JWT tokens—no database setup required.


Google Spark Connection & Deployment Instructions

Step 1: Deploy to Vercel

  1. Push this repository to GitHub.

  2. Import the project into Vercel.

  3. (Optional for Proxy Mode): If you want to proxy another unauthenticated MCP server, add an Environment Variable in Vercel:

    UPSTREAM_MCP_URL = https://your-other-mcp-server.com/api/mcp
  4. Click Deploy. Vercel will assign a public domain, e.g.: https://your-mcp-gateway.vercel.app

Step 2: Connect to Google Spark / Gemini

  1. In Google Spark, select Add Remote MCP Server.

  2. Enter your deployed MCP Endpoint URL:

    https://your-mcp-gateway.vercel.app/api/mcp
  3. Google Spark automatically discovers the OAuth endpoints at:

    https://your-mcp-gateway.vercel.app/.well-known/oauth-authorization-server
  4. Complete the one-click authorization prompt. Google Spark can now invoke tools from Excalidraw or your proxied MCP server!


API Endpoints

Endpoint

Description

GET /.well-known/oauth-authorization-server

OAuth 2.0 Server Discovery Metadata (RFC 8414)

GET /.well-known/openid-configuration

OpenID Connect Discovery Metadata

POST /api/auth/register

RFC 7591 Dynamic Client Registration

GET /api/auth/authorize

OAuth Authorization endpoint

POST /api/auth/token

OAuth Token Exchange endpoint

POST /api/mcp

MCP HTTP JSON-RPC 2.0 Tool Execution / Proxy Endpoint

GET /api/mcp/sse

MCP Server-Sent Events Transport

GET /view/[id]

Interactive Excalidraw Canvas Viewer

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables deploying a Model Context Protocol (MCP) server on Cloudflare Workers with built-in OAuth authentication. It allows local clients like Claude Desktop to securely connect to and use remote tools through an HTTP/SSE transport.
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables deploying and running a Model Context Protocol (MCP) server on Cloudflare Workers with built-in OAuth authentication. It allows users to host and access tools remotely via Server-Sent Events (SSE) transport from clients like Claude Desktop.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/noqtar/excalidraw-mcp-oauth'

If you have feedback or need assistance with the MCP directory API, please join our Discord server