Remote MCP: Support RFC 7591 DCR & OIDC refresh tokens for Google Gemini Web/Mobile Custom Apps (with stateless Cloud Run workaround)

Open
#3,519 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 2 days

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
8/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
go

Research direction

The payload names the endpoints /.well-known/oauth-authorization-server, /register and the /mcp Streamable HTTP route, plus the token exchange that needs Accept: application/json. Start by finding where the server's OAuth discovery and token handling live, then decide whether RFC 7591 registration and refresh tokens belong in this server or upstream. Done would mean a maintainer-agreed design, since the issue asks for a feature and links an external workaround rather than a specific change.

Written by the indexing model from the issue text.

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:

  1. Missing Dynamic Client Registration (RFC 7591): Clients attempting automated registration against /.well-known/oauth-authorization-server / /register fail, forcing users to manually create and manage a custom GitHub OAuth App with a static Client ID and Client Secret.
  2. 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/json return application/x-www-form-urlencoded payloads. 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/json token responses: Proxies Streamable HTTP /mcp traffic 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.

Dominant language
Go
Stars
34.2k
Forks
5.3k
Avg merge
5d 18h
Merged PRs (30d)
13

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from github/github-mcp-server

All issues in github/github-mcp-server

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.