Description
Problem Description
When connecting the hosted remote GitHub MCP endpoint to MCP clients that rely on the standard MCP Authorization specification—specifically Google Gemini Web & Mobile Custom Apps and Gemini CLI—connections either fail during initial setup or silently drop after ~24 hours:
- Missing Dynamic Client Registration (RFC 7591): Clients attempting automated registration against
/.well-known/oauth-authorization-server//registerfail, forcing users to manually create and manage a custom GitHub OAuth App with a static Client ID and Client Secret. - Discovery Path & Token Refresh Quirks: Standard GitHub OAuth Apps do not issue non-expiring OIDC refresh tokens by default, and token endpoint exchanges without explicit
Accept: application/jsonreturnapplication/x-www-form-urlencodedpayloads. When mobile/web MCP clients attempt background validation or token refresh across sessions, the connector is silently disabled.
Workaround / Community Reference Implementation
Until native RFC 7591 DCR (or CIMD) and seamless refresh token support are available on the hosted remote MCP endpoint, I built an open-source, stateless Cloud Run OAuth 2.1 + DCR proxy that sits in front of the hosted GitHub MCP server:
👉 https://github.com/wihl/gemini-github-connector
- Full RFC 9728, RFC 8414, and RFC 7591 (
/register) support: Gemini Web & iOS Mobile connect immediately without manual OAuth Client ID/Secret entry. - Stateless HMAC-SHA256 signed JWTs (Zero Database): Backed by GCP Secret Manager so Cloud Run scale-to-zero events and background refreshes never invalidate the session.
- Strict
application/jsontoken responses: Proxies Streamable HTTP/mcptraffic upstream using your Secret Manager GitHub PAT.
Deploys to Cloud Run free tier in ~2 minutes via ./scripts/deploy.sh. Sharing this here both as a feature request for seamless Gemini Web/Mobile compatibility and as a drop-in workaround for anyone trying to use github-mcp-server from Gemini Mobile/Web today.
Activity