update_user
Modify user details including email, name, and role permissions to maintain accurate user profiles and access control in the system.
Instructions
Update user information
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| claims | No | User roles/claims (choose from: Administrator, PageCreator, PageEditor, PageDeleter, PageMover, SectionCreator, SectionEditor, SectionDeleter, SectionMover, ContentDesigner, Publisher, BusinessDeleter, BusinessEditor, BusinessCreator, PublishApproval, PublishDeleter, Super, StageCreator, StageDeleter, SiteMerger, CatalogCreator, CatalogEditor, CatalogDeleter, BusinessUserCreator, BusinessUserEditor, BusinessUserDeleter) | |
| No | User email | ||
| firstName | No | First name | |
| id | Yes | User ID | |
| lastName | No | Last name |
Implementation Reference
- src/index.ts:398-430 (handler)Handler function that constructs a payload from input parameters and sends a PUT request to the API endpoint `/tools/membership/users/${id}` to update the user, returning the response or error.try { const payload: any = {}; if (email) payload.email = email; if (firstName) payload.firstName = firstName; if (lastName) payload.lastName = lastName; if (claims !== undefined && claims !== null) { // Normalize to array payload.claims = Array.isArray(claims) ? claims : [claims]; } const response: AxiosResponse<ApiResponse<User>> = await apiClient.put(`/tools/membership/users/${id}`, payload); return { content: [ { type: "text", text: JSON.stringify(response.data, null, 2), }, ], }; } catch (error) { return { content: [ { type: "text", text: handleApiError(error), }, ], isError: true, }; } }
- src/index.ts:384-395 (schema)Input schema using Zod for validating parameters: id (required string), optional email, firstName, lastName, and claims (union of single enum or array from validClaims).id: z.string().describe("User ID"), email: z.string().email().optional().describe("User email"), firstName: z.string().optional().describe("First name"), lastName: z.string().optional().describe("Last name"), claims: z .union([ z.enum(validClaims), // single claim z.array(z.enum(validClaims)), // multiple claims ]) .optional() .describe(`User roles/claims (choose from: ${validClaims.join(", ")})`), },
- src/index.ts:379-431 (registration)Registration of the 'update_user' tool using server.registerTool, including title, description, inputSchema, and handler function."update_user", { title: "Update User", description: "Update user information", inputSchema: { id: z.string().describe("User ID"), email: z.string().email().optional().describe("User email"), firstName: z.string().optional().describe("First name"), lastName: z.string().optional().describe("Last name"), claims: z .union([ z.enum(validClaims), // single claim z.array(z.enum(validClaims)), // multiple claims ]) .optional() .describe(`User roles/claims (choose from: ${validClaims.join(", ")})`), }, }, async ({ id, email, firstName, lastName, claims }) => { try { const payload: any = {}; if (email) payload.email = email; if (firstName) payload.firstName = firstName; if (lastName) payload.lastName = lastName; if (claims !== undefined && claims !== null) { // Normalize to array payload.claims = Array.isArray(claims) ? claims : [claims]; } const response: AxiosResponse<ApiResponse<User>> = await apiClient.put(`/tools/membership/users/${id}`, payload); return { content: [ { type: "text", text: JSON.stringify(response.data, null, 2), }, ], }; } catch (error) { return { content: [ { type: "text", text: handleApiError(error), }, ], isError: true, }; } } );
- src/index.ts:117-145 (helper)Const array of valid user claims/roles used in the schema's z.enum for claims validation.const validClaims = [ "Administrator", "PageCreator", "PageEditor", "PageDeleter", "PageMover", "SectionCreator", "SectionEditor", "SectionDeleter", "SectionMover", "ContentDesigner", "Publisher", "BusinessDeleter", "BusinessEditor", "BusinessCreator", "PublishApproval", "PublishDeleter", "Super", "StageCreator", "StageDeleter", "SiteMerger", "CatalogCreator", "CatalogEditor", "CatalogDeleter", "BusinessUserCreator", "BusinessUserEditor", //wrap "BusinessUserDeleter", ] as const;