@aashari/mcp-server-aws-sso
Version:
Node.js/TypeScript MCP server for AWS Single Sign-On (SSO). Enables AI systems (LLMs) with tools to initiate SSO login (device auth flow), list accounts/roles, and securely execute AWS CLI commands using temporary credentials. Streamlines AI interaction w
99 lines (98 loc) • 2.82 kB
TypeScript
import { AwsSsoConfig, AwsSsoAuthResult } from './vendor.aws.sso.types.js';
/**
* Device authorization information
*/
interface DeviceAuthorizationInfo {
/**
* The client ID for SSO
*/
clientId: string;
/**
* The client secret for SSO
*/
clientSecret: string;
/**
* The device code for SSO
*/
deviceCode: string;
/**
* The expiration time in seconds
*/
expiresIn: number;
/**
* The AWS region for SSO
*/
region: string;
}
/**
* Auth check result
*/
export interface AuthCheckResult {
/**
* Whether the user is authenticated
*/
isAuthenticated: boolean;
/**
* Error message if authentication failed
*/
errorMessage?: string;
}
/**
* Device authorization response
*/
interface DeviceAuthorizationResponse {
deviceCode: string;
userCode: string;
verificationUri: string;
verificationUriComplete: string;
expiresIn: number;
interval: number;
}
/**
* Get AWS SSO configuration from the environment
*
* Retrieves the AWS SSO start URL and region from the environment variables.
* These are required for SSO authentication.
*
* @returns {AwsSsoConfig} AWS SSO configuration
* @throws {Error} If AWS SSO configuration is missing
*/
export declare function getAwsSsoConfig(): Promise<AwsSsoConfig>;
/**
* Start the AWS SSO login process
*
* Initiates the SSO login flow by registering a client and starting device authorization.
* Returns a verification URI and user code that the user must visit to complete authentication.
*
* @returns {Promise<DeviceAuthorizationResponse>} Login information including verification URI and user code
* @throws {Error} If login initialization fails
*/
export declare function startSsoLogin(): Promise<DeviceAuthorizationResponse>;
/**
* Poll for SSO token completion
*
* Polls the AWS SSO token endpoint to check if the user has completed authentication.
* Returns the SSO token if successful.
*
* @returns {Promise<AwsSsoAuthResult>} SSO token data
* @throws {Error} If polling fails or user hasn't completed authentication yet
*/
export declare function pollForSsoToken(): Promise<AwsSsoAuthResult>;
/**
* Check if the user is authenticated with AWS SSO
*
* Verifies if a valid SSO token exists in the cache.
*
* @returns {Promise<AuthCheckResult>} Authentication status result
*/
export declare function checkSsoAuthStatus(): Promise<AuthCheckResult>;
/**
* Get cached SSO token
*/
export declare function getCachedSsoToken(): Promise<AwsSsoAuthResult | undefined>;
/**
* Get cached device authorization info
* @returns Device authorization info from cache or undefined if not found
*/
export declare function getCachedDeviceAuthorizationInfo(): Promise<DeviceAuthorizationInfo | undefined>;
export {};