Skip to main content
Glama

Edit users

users_write
Destructive

Creates and updates users and user groups: profile data, login, password, group membership and group permissions.

Input Schema

NameRequiredDescriptionDefault
idNoGroup id.
gidNoGroup id. On group actions it is a synonym for id.
nameNoFull name of a user, 3-35 characters, or the name of a group.
nickNoUser login (nick), 2-25 characters. Synonym: user.
userNoSynonym for nick.
emailNoUser email.
loginNoNew login.
actionYesOperation to run. Each oneOf entry describes one action and lists its parameters.
fieldsNoExtra profile fields of a user, or permissions of a group. Group permission codes come from groups_rights and group_permissions.
confirmNoPass true only after the user approves this change. Required by: chpass.
user_idNoNumeric user id.
passwordNoUser password: only Latin letters, digits, _ and -; 4-15 characters for add, 2-15 for chpass.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / action / oneOf
      Previous value: -[
      -  {
      -    "const": "add",
      -    "description": "Creates a user (login in nick or user). The full name goes in name (or fields.full_name). Required: password, email, name. Optional: nick, user, fields."
      -  },
      -  {
      -    "const": "register",
      -    "description": "Creates a user (same as add). Required: password, email, name. Optional: nick, user, fields."
      -  },
      -  {
      -    "const": "update",
      -    "description": "Updates a user profile: values that are not passed keep their stored values, an empty string clears a value. The full name goes in name (or fields.full_name). Required: user_id. Optional: name, email, fields."
      -  },
      -  {
      -    "const": "chlogin",
      -    "description": "Changes the login of a user. Required: user_id, login."
      -  },
      -  {
      -    "const": "chgroup",
      -    "description": "Moves a user to another group. Required: user_id, gid."
      -  },
      -  {
      -    "const": "chpass",
      -    "description": "Sets a new password for a user. Required: user_id, password, confirm."
      -  },
      -  {
      -    "const": "group_add",
      -    "description": "Creates a user group. Required: name. Optional: fields."
      -  },
      -  {
      -    "const": "group_update",
      -    "description": "Updates a user group (group id in id or gid). Optional: id, gid, name, fields."
      -  }
      -]New value: +[
      +  {
      +    "const": "add",
      +    "description": "Creates a user (login in nick or user). The full name goes in name (or fields.full_name). Required: password, email, name. Optional: nick, user, fields."
      +  },
      +  {
      +    "const": "register",
      +    "description": "Creates a user (same as add). Required: password, email, name. Optional: nick, user, fields."
      +  },
      +  {
      +    "const": "update",
      +    "description": "Updates a user profile: values that are not passed keep their stored values, an empty string clears a value. The full name goes in name (or fields.full_name). Required: user_id. Optional: name, email, fields."
      +  },
      +  {
      +    "const": "chlogin",
      +    "description": "Changes the login of a user. Required: user_id, login."
      +  },
      +  {
      +    "const": "chgroup",
      +    "description": "Moves a user to another group. Required: user_id, gid."
      +  },
      +  {
      +    "const": "chpass",
      +    "description": "Sets a new password for a user. Required: user_id, password, confirm."
      +  },
      +  {
      +    "const": "group_add",
      +    "description": "Creates a user group. Required: name. Optional: fields."
      +  },
      +  {
      +    "const": "group_update",
      +    "description": "Updates a user group (group id in id or gid). Required: id or gid. Optional: name, fields."
      +  }
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / action / oneOf
      Previous value: -[
      -  {
      -    "const": "add",
      -    "description": "Creates a user (login in nick or user). The full name goes in name (or fields.full_name). Required: password, email, name. Optional: nick, user, fields."
      -  },
      -  {
      -    "const": "register",
      -    "description": "Creates a user (same as add). Required: password, email, name. Optional: nick, user, fields."
      -  },
      -  {
      -    "const": "update",
      -    "description": "Updates a user profile. Required: user_id. Optional: name, email, fields."
      -  },
      -  {
      -    "const": "chlogin",
      -    "description": "Changes the login of a user. Required: user_id, login."
      -  },
      -  {
      -    "const": "chgroup",
      -    "description": "Moves a user to another group. Required: user_id, gid."
      -  },
      -  {
      -    "const": "chpass",
      -    "description": "Sets a new password for a user. Required: user_id, password, confirm."
      -  },
      -  {
      -    "const": "group_add",
      -    "description": "Creates a user group. Required: name. Optional: fields."
      -  },
      -  {
      -    "const": "group_update",
      -    "description": "Updates a user group (group id in id or gid). Optional: id, gid, name, fields."
      -  }
      -]New value: +[
      +  {
      +    "const": "add",
      +    "description": "Creates a user (login in nick or user). The full name goes in name (or fields.full_name). Required: password, email, name. Optional: nick, user, fields."
      +  },
      +  {
      +    "const": "register",
      +    "description": "Creates a user (same as add). Required: password, email, name. Optional: nick, user, fields."
      +  },
      +  {
      +    "const": "update",
      +    "description": "Updates a user profile: values that are not passed keep their stored values, an empty string clears a value. The full name goes in name (or fields.full_name). Required: user_id. Optional: name, email, fields."
      +  },
      +  {
      +    "const": "chlogin",
      +    "description": "Changes the login of a user. Required: user_id, login."
      +  },
      +  {
      +    "const": "chgroup",
      +    "description": "Moves a user to another group. Required: user_id, gid."
      +  },
      +  {
      +    "const": "chpass",
      +    "description": "Sets a new password for a user. Required: user_id, password, confirm."
      +  },
      +  {
      +    "const": "group_add",
      +    "description": "Creates a user group. Required: name. Optional: fields."
      +  },
      +  {
      +    "const": "group_update",
      +    "description": "Updates a user group (group id in id or gid). Optional: id, gid, name, fields."
      +  }
      +]
  3. Added

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=true and openWorldHint=true, so the risk profile is structured. The description adds the breadth of what is mutated (including group permissions) but says nothing about irreversibility, permission requirements, or the approval flow for password changes beyond what the schema states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that enumerates scope without filler. Every clause earns its place by naming a distinct thing that can be written.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter, nested, destructive multi-action mutation tool with no output schema, the description is thin: it doesn't explain that the tool dispatches to eight distinct operations, nor what a caller should expect on failure. The rich action enum description compensates heavily, making this barely adequate rather than clearly insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and each action's required/optional parameters are documented in the enum's oneOf descriptions, so the schema does the work. The description's phrase 'group permissions' hints that permission codes travel via fields, but it adds little beyond that mapping.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb pair ('Creates and updates') and enumerates the resources covered: user profile data, login, password, group membership and group permissions. That scope, plus the name, cleanly separates it from users_read and users_delete without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to reach for it (any create/modify operation on users or groups) but never states exclusions or points to an alternative for reads or deletions. Action-level usage rules live entirely in the schema's oneOf entries, not in the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.