@mcp-z/oauth-google
    Preparing search index...

    Class DcrOAuthProvider

    DCR Provider - Stateless OAuth provider for Dynamic Client Registration

    Unlike LoopbackOAuthProvider which manages token storage, DcrOAuthProvider is stateless:

    • Receives provider tokens from verification context (HTTP bearer auth)
    • Creates auth providers on-demand from tokens
    • Handles token refresh using Google OAuth 2.0
    • No token storage dependency

    Pattern:

    const provider = new DcrOAuthProvider(config);
    const auth = provider.toAuthProvider(providerTokens); // pass to attachTokenProvider
    const accessToken = await getAccessToken(auth);
    Index
    • Auth middleware for HTTP servers with DCR bearer auth Validates bearer tokens and enriches extra with provider tokens

      Pattern:

      const provider = new DcrOAuthProvider({ ..., verifyEndpoint: 'http://localhost:3000/oauth/verify' });
      const authMiddleware = provider.authMiddleware();
      const tools = toolFactories.map(f => f()).map(authMiddleware.withToolAuth);
      const resources = resourceFactories.map(f => f()).map(authMiddleware.withResourceAuth);
      const prompts = promptFactories.map(f => f()).map(authMiddleware.withPromptAuth);

      Returns {
          withPromptAuth: <
              T extends { config: unknown; handler: unknown; name: string },
          >(
              module: T,
          ) => T;
          withResourceAuth: <
              T extends
                  {
                      config?: unknown;
                      handler: unknown;
                      name: string;
                      template?: unknown;
                  },
          >(
              module: T,
          ) => T;
          withToolAuth: <
              T extends { config: unknown; handler: unknown; name: string },
          >(
              module: T,
          ) => T;
      }

    • Get user email from Google userinfo API (with caching)

      Parameters

      • tokens: ProviderTokens

        Provider tokens to use for API call

      Returns Promise<string>

      User's email address

    • Refresh Google access token using refresh token

      Parameters

      • refreshToken: string

        Google refresh token

      Returns Promise<ProviderTokens>

      New provider tokens

    • Token provider built from verification-supplied tokens.

      This is the core stateless pattern - the provider receives tokens from context (token verification, HTTP request) rather than owning a store.

      Parameters

      • tokens: ProviderTokens

        Provider tokens (Google access/refresh tokens)

      Returns GoogleAuthProvider