refresh_session
Refresh AWS Cognito user sessions to maintain authentication without requiring re-login, extending active session duration.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- index.ts:548-621 (handler)Handler function for the 'refresh_session' tool. Gets the current Cognito user, retrieves the current session to get the refresh token, then calls refreshSession to obtain new access and ID tokens, returning success details or error messages.async ({}) => { return new Promise((resolve, reject) => { const cognitoUser = userPool.getCurrentUser(); if (!cognitoUser) { resolve({ content: [ { type: "text" as const, text: "No user currently signed in", } ] }); return; } cognitoUser.getSession((err: Error | null, _session: CognitoUserSession) => { if (err) { reject({ content: [ { type: "text" as const, text: `Error getting session: ${err.message}`, } ] }); return; } const refreshToken = _session.getRefreshToken(); cognitoUser.refreshSession(refreshToken, (err, result) => { if (err) { reject({ content: [ { type: "text" as const, text: `Failed to refresh session: ${err.message}`, }, { type: "text" as const, text: `Error code: ${(err as any).code || 'Unknown'}`, } ] }); return; } resolve({ content: [ { type: "text" as const, text: "Session refreshed successfully", }, { type: "text" as const, text: `New Access Token: ${result.getAccessToken().getJwtToken()}`, }, { type: "text" as const, text: `New ID Token: ${result.getIdToken().getJwtToken()}`, }, { type: "text" as const, text: `Token Expiration: ${new Date(result.getAccessToken().getExpiration() * 1000).toISOString()}`, }, { type: "text" as const, text: `Time: ${new Date().toISOString()}`, } ] }); }); }); }); }
- index.ts:544-622 (registration)Registers the 'refresh_session' tool on the MCP server with no input parameters.server.tool( "refresh_session", { }, async ({}) => { return new Promise((resolve, reject) => { const cognitoUser = userPool.getCurrentUser(); if (!cognitoUser) { resolve({ content: [ { type: "text" as const, text: "No user currently signed in", } ] }); return; } cognitoUser.getSession((err: Error | null, _session: CognitoUserSession) => { if (err) { reject({ content: [ { type: "text" as const, text: `Error getting session: ${err.message}`, } ] }); return; } const refreshToken = _session.getRefreshToken(); cognitoUser.refreshSession(refreshToken, (err, result) => { if (err) { reject({ content: [ { type: "text" as const, text: `Failed to refresh session: ${err.message}`, }, { type: "text" as const, text: `Error code: ${(err as any).code || 'Unknown'}`, } ] }); return; } resolve({ content: [ { type: "text" as const, text: "Session refreshed successfully", }, { type: "text" as const, text: `New Access Token: ${result.getAccessToken().getJwtToken()}`, }, { type: "text" as const, text: `New ID Token: ${result.getIdToken().getJwtToken()}`, }, { type: "text" as const, text: `Token Expiration: ${new Date(result.getAccessToken().getExpiration() * 1000).toISOString()}`, }, { type: "text" as const, text: `Time: ${new Date().toISOString()}`, } ] }); }); }); }); } )
- index.ts:546-547 (schema)Input schema for 'refresh_session' tool: no parameters required.{ },