Skip to main content
Glama
gitCarrot

AWS Cognito MCP Server

by gitCarrot

update_user_attributes

Modify user profile attributes in AWS Cognito to update information like email, phone number, or custom fields for authentication and user management.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
attributesYes

Implementation Reference

  • Handler function that gets the current Cognito user, maps input attributes to CognitoUserAttribute objects, and calls updateAttributes on the user.
    async ({ attributes }) => { 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 attributeList = attributes.map(attr => new CognitoUserAttribute({ Name: attr.name, Value: attr.value }) ); cognitoUser.updateAttributes(attributeList, (err, result) => { if (err) { reject({ content: [ { type: "text" as const, text: `Failed to update attributes: ${err.message}`, }, { type: "text" as const, text: `Error code: ${(err as any).code || 'Unknown'}`, } ] }); return; } resolve({ content: [ { type: "text" as const, text: "User attributes updated successfully", }, { type: "text" as const, text: `Username: ${cognitoUser.getUsername()}`, }, { type: "text" as const, text: `Result: ${result}`, }, { type: "text" as const, text: `Updated attributes: ${attributes.map(a => a.name).join(', ')}`, }, { type: "text" as const, text: `Time: ${new Date().toISOString()}`, } ] }); }); }); }); }
  • Zod schema defining the input as an array of objects, each with 'name' and 'value' as strings.
    { attributes: z.array(z.object({ name: z.string(), value: z.string() })) },
  • index.ts:624-709 (registration)
    Registration of the 'update_user_attributes' tool using server.tool, including inline schema and handler.
    server.tool( "update_user_attributes", { attributes: z.array(z.object({ name: z.string(), value: z.string() })) }, async ({ attributes }) => { 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 attributeList = attributes.map(attr => new CognitoUserAttribute({ Name: attr.name, Value: attr.value }) ); cognitoUser.updateAttributes(attributeList, (err, result) => { if (err) { reject({ content: [ { type: "text" as const, text: `Failed to update attributes: ${err.message}`, }, { type: "text" as const, text: `Error code: ${(err as any).code || 'Unknown'}`, } ] }); return; } resolve({ content: [ { type: "text" as const, text: "User attributes updated successfully", }, { type: "text" as const, text: `Username: ${cognitoUser.getUsername()}`, }, { type: "text" as const, text: `Result: ${result}`, }, { type: "text" as const, text: `Updated attributes: ${attributes.map(a => a.name).join(', ')}`, }, { type: "text" as const, text: `Time: ${new Date().toISOString()}`, } ] }); }); }); }); } )

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