update_user_attributes
Modify user profile attributes in AWS Cognito by specifying name-value pairs to update user information and maintain accurate account details.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| attributes | Yes |
Implementation Reference
- index.ts:632-708 (handler)Handler function that updates the current Cognito user's attributes by mapping input attributes to CognitoUserAttribute objects and calling updateAttributes.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()}`, } ] }); }); }); }); }
- index.ts:626-630 (schema)Zod schema defining the input as an array of objects with 'name' and 'value' strings for user attributes.{ 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 name, input schema, and handler function.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()}`, } ] }); }); }); }); } )