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

    Function parseConfig

    • Parse Google OAuth configuration from CLI arguments and environment variables.

      CLI Arguments:

      • --auth: Auth mode ('loopback-oauth' | 'service-account' | 'dcr')
        • Default: 'loopback-oauth' (if flag is omitted)
      • --headless: Disable browser opening for OAuth flow (default: false, true in test env)
      • --redirect-uri: Override OAuth redirect URI (default: ephemeral loopback)
      • --service-account-key-file: Service account key file path (required for service-account mode)

      Required environment variables:

      • GOOGLE_CLIENT_ID: OAuth 2.0 client ID from Google Cloud Console

      Optional environment variables:

      • GOOGLE_CLIENT_SECRET: OAuth 2.0 client secret (optional for public clients)
      • AUTH_MODE: Auth mode (same format as --auth flag)
      • HEADLESS: Headless mode flag ('true' to enable)
      • REDIRECT_URI: OAuth redirect URI (overridden by --redirect-uri CLI flag)
      • GOOGLE_SERVICE_ACCOUNT_KEY_FILE: Service account key file (for service-account mode)

      Parameters

      • args: string[]

        CLI arguments array (typically process.argv)

      • env: Record<string, string | undefined>

        Environment variables object (typically process.env)

      • Optionaltransport: TransportType

        Optional transport type. If 'stdio' and auth mode is 'dcr', throws an error. See TransportType for valid values.

      Returns OAuthConfig

      Parsed Google OAuth configuration

      Error if required environment variables are missing, values are invalid, or DCR is used with stdio transport

      const config = parseConfig(process.argv, process.env);
      // { auth: 'loopback-oauth' }
      parseConfig(['--auth=loopback-oauth'], process.env);
      parseConfig(['--auth=service-account'], process.env);
      parseConfig(['--auth=dcr'], process.env);
      parseConfig(['--auth=dcr'], process.env, 'http'); // OK
      parseConfig(['--auth=dcr'], process.env, 'stdio'); // Throws error

      Valid auth modes:

      • loopback-oauth (default)
      • service-account
      • dcr (HTTP transport only)