@adcp/sdk API Reference - v7.9.0
    Preparing search index...

    Class AuthenticationRequiredError

    Error thrown when authentication is required to access an MCP endpoint

    This error is thrown during MCP endpoint discovery when the server returns a 401 Unauthorized response. The shape of the remediation depends on what the 401 disclosed:

    • OAuth metadata (RFC 9728 PRM walk succeeded) → oauthMetadata set, message points at the authorization endpoint.
    • A WWW-Authenticate challenge with a non-Bearer scheme (e.g. Basic behind an Apigee/Kong/AWS API GW gateway) → challenge set, message names the scheme and the SDK / CLI surface that configures it.
    • Plain 401 with no metadata → fallback "provide auth_token" message.

    Consumers branching on error.challenge?.scheme === 'basic' can route straight to auth: { type: 'basic', username, password } instead of retrying Bearer indefinitely.

    try {
    await client.getProducts({ brief: 'test' });
    } catch (error) {
    if (error instanceof AuthenticationRequiredError) {
    if (error.challenge?.scheme === 'basic') {
    // Gateway-fronted agent — configure HTTP Basic
    reconnect({ auth: { type: 'basic', username, password } });
    } else if (error.oauthMetadata) {
    // Redirect user to OAuth flow
    const authUrl = error.oauthMetadata.authorization_endpoint;
    console.log(`Please authenticate at: ${authUrl}`);
    } else {
    console.log('Authentication required but no scheme metadata available');
    }
    }
    }

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    details?: unknown
    code: "AUTHENTICATION_REQUIRED" = 'AUTHENTICATION_REQUIRED'
    agentUrl: string
    oauthMetadata?: OAuthMetadataInfo
    challenge?: AuthChallengeInfo
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes will affect any stack trace captured after the value has been changed.

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    cause?: unknown
    name: string
    message: string
    stack?: string

    Accessors

    • get authorizationUrl(): string | undefined

      Get the authorization URL if OAuth is available

      Returns string | undefined

    • get suggestedScheme(): string | undefined

      Lowercased scheme from the WWW-Authenticate challenge, when present. 'basic' is the common non-OAuth case — gateway-fronted agents speaking RFC 7617.

      Returns string | undefined

    Methods

    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack`

      The first line of the trace will be prefixed with ${myObject.name}: ${myObject.message}.

      The optional constructorOpt argument accepts a function. If given, all frames above constructorOpt, including constructorOpt, will be omitted from the generated stack trace.

      The constructorOpt argument is useful for hiding implementation details of error generation from the user. For instance:

      function a() {
      b();
      }

      function b() {
      c();
      }

      function c() {
      // Create an error without stack trace to avoid calculating the stack trace twice.
      const { stackTraceLimit } = Error;
      Error.stackTraceLimit = 0;
      const error = new Error();
      Error.stackTraceLimit = stackTraceLimit;

      // Capture the stack trace above function b
      Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
      throw error;
      }

      a();

      Parameters

      • targetObject: object
      • OptionalconstructorOpt: Function

      Returns void