Skip to main content
Glama

update_group

DestructiveIdempotent

Modify an existing Signal group's name, description, avatar, members, admins, invite link, permissions, or disappearing-message timer; only supplied fields change. Requires admin rights.

Instructions

Change an existing group's details, membership, admins, invite link, permissions or timer; only the fields you pass change. group_id (required, from list_groups). name, description: new text. avatar: local image path inside the allowed send folders. add_members / remove_members / add_admins / remove_admins / ban_members / unban_members: lists of E.164 numbers. expiration_seconds: disappearing-message timer, 0 disables. link_mode: 'enabled' (anyone with the link joins), 'enabled-with-approval', 'disabled', or 'reset' (same as reset_link=true, which issues a new link and invalidates the old one). permission_add_member, permission_edit_details, permission_send_messages: 'every-member' or 'only-admins' (only-admins sending = announcement group). member_label / member_label_emoji set ONLY YOUR OWN label in this group (the tag next to your name); you cannot set another member's label. Changes apply immediately and every member gets a group update; removals and bans are not undone automatically. Admin rights are needed for most changes, depending on the group's permissions. Returns status and group_id. Use send_group_message to post, leave_group to exit.

Input Schema

NameRequiredDescriptionDefault
nameNoNew group name
avatarNoLocal image file path for the new group avatar (must be inside the allowed send folders)
group_idYesGroup ID to update (get from list_groups)
link_modeNoInvite link mode: 'disabled', 'enabled', 'enabled-with-approval', or 'reset' to generate a new link
add_adminsNoPhone numbers (E.164) to promote to admin
reset_linkNoGenerate a new invite link, invalidating the old one
add_membersNoPhone numbers (E.164) to add
ban_membersNoPhone numbers (E.164) to ban from (re)joining the group
descriptionNoNew group description
member_labelNoYOUR OWN member label in this group (not other members')
remove_adminsNoPhone numbers (E.164) to demote from admin
unban_membersNoPhone numbers (E.164) to remove from the ban list
remove_membersNoPhone numbers (E.164) to remove
expiration_secondsNoDisappearing message timer in seconds (0 to disable)
member_label_emojiNoEmoji for YOUR OWN member label
permission_add_memberNoWho may add new members
permission_edit_detailsNoWho may edit group name, description, avatar, timer
permission_send_messagesNoWho may send messages ('only-admins' = announcement group)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changedv1.43.0
    • changedInput schema / properties / add_admins / description
      Previous value: -"Phone numbers to promote to admin"New value: +"Phone numbers (E.164) to promote to admin"
    • changedInput schema / properties / add_members / description
      Previous value: -"Phone numbers to add"New value: +"Phone numbers (E.164) to add"
    • changedInput schema / properties / avatar / description
      Previous value: -"Local image file path for the new group avatar"New value: +"Local image file path for the new group avatar (must be inside the allowed send folders)"
    • changedInput schema / properties / ban_members / description
      Previous value: -"Members to ban from (re)joining the group"New value: +"Phone numbers (E.164) to ban from (re)joining the group"
    • changedInput schema / properties / group_id / description
      Previous value: -"Group ID to update"New value: +"Group ID to update (get from list_groups)"
    • changedInput schema / properties / remove_admins / description
      Previous value: -"Phone numbers to demote from admin"New value: +"Phone numbers (E.164) to demote from admin"
    • changedInput schema / properties / remove_members / description
      Previous value: -"Phone numbers to remove"New value: +"Phone numbers (E.164) to remove"
    • changedInput schema / properties / unban_members / description
      Previous value: -"Members to remove from the ban list"New value: +"Phone numbers (E.164) to remove from the ban list"
  2. Changed9 schema fields changedv1.40.1
    • addedInput schema / properties / avatar
      Added value: +{
      +  "description": "Local image file path for the new group avatar",
      +  "type": "string"
      +}
    • addedInput schema / properties / ban_members
      Added value: +{
      +  "description": "Members to ban from (re)joining the group",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / member_label
      Added value: +{
      +  "description": "YOUR OWN member label in this group (not other members')",
      +  "type": "string"
      +}
    • addedInput schema / properties / member_label_emoji
      Added value: +{
      +  "description": "Emoji for YOUR OWN member label",
      +  "type": "string"
      +}
    • addedInput schema / properties / permission_add_member
      Added value: +{
      +  "description": "Who may add new members",
      +  "enum": [
      +    "every-member",
      +    "only-admins"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / permission_edit_details
      Added value: +{
      +  "description": "Who may edit group name, description, avatar, timer",
      +  "enum": [
      +    "every-member",
      +    "only-admins"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / permission_send_messages
      Added value: +{
      +  "description": "Who may send messages ('only-admins' = announcement group)",
      +  "enum": [
      +    "every-member",
      +    "only-admins"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / reset_link
      Added value: +{
      +  "description": "Generate a new invite link, invalidating the old one",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / unban_members
      Added value: +{
      +  "description": "Members to remove from the ban list",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  3. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already mark this as a destructive, non-read-only, open-world mutation, but the description adds substantial context beyond them: changes apply immediately, all members receive a group update, removals and bans are not automatically undone, admin rights are typically required, and 'reset' invalidates the old link. This is exactly the extra behavioral detail the annotations cannot convey.

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

Conciseness4/5

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

Purpose and required-parameter reminder are front-loaded, and for 18 parameters nearly every clause carries needed meaning. It is delivered as one dense run-on paragraph, which slightly hurts scannability, but there is very little filler to cut.

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

Completeness5/5

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

Despite 18 parameters and no output schema, the description covers semantics for every notable field, side effects, permission requirements, and even the return shape ('Returns status and group_id'). An agent has everything needed to call it correctly.

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

Parameters4/5

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

With 100% schema coverage, the baseline is 3, but the description genuinely elaborates on the schema: it explains each link_mode value, translates permission_send_messages 'only-admins' into 'announcement group,' clarifies that expiration_seconds 0 disables the timer, and stresses that member_label applies ONLY to the caller's own label. These interpretations go beyond the bare property descriptions.

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 and resource ('Change an existing group's details, membership, admins, invite link, permissions or timer') and immediately scopes it with 'only the fields you pass change.' This clearly separates it from create_group, leave_group, and terminate_group without needing to open any schema.

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

Usage Guidelines4/5

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

Explicitly routes to siblings: 'Use send_group_message to post, leave_group to exit,' and notes group_id comes from list_groups. It also prescribes prerequisites ('Admin rights are needed for most changes'). It does not, however, distinguish itself from terminate_group or compare against create_group, so it stops short of full when/when-not guidance.

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