Skip to main content
Glama
gitCarrot

AWS Cognito MCP Server

by gitCarrot

refresh_session

Extend AWS Cognito user session validity by renewing authentication tokens without requiring re-login.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The handler function for the 'refresh_session' tool. It retrieves the current Cognito user, gets the current session to extract the refresh token, and calls cognitoUser.refreshSession to obtain new access and ID tokens.
    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)
    Registration of the 'refresh_session' tool using server.tool(name, inputSchema, handler).
    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()}`,
                                }
                            ]
                        });
                    });
                });
            });
        }
    )
  • Empty input schema indicating the tool requires no parameters.
    {
    },

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gitCarrot/mcp-server-aws-cognito'

If you have feedback or need assistance with the MCP directory API, please join our Discord server