Skip to main content
Glama

list_groups

Read-onlyIdempotent

List Signal groups from local storage to get group IDs and member details, enabling message sending or admin status checks. Optionally filter by group ID.

Instructions

List the Signal groups this account knows, from signal-cli's local store (no network call). Call it first to get the group_id that send_group_message, send_group_attachment, update_group, leave_group, terminate_group and set_expiration_timer require, or to check your admin status. group_id (optional) returns only that group. Each group has id, name, description, member_count, members (uuid, number, is_admin, and label/label_emoji — the tag shown next to the name — when set), is_blocked, is_member and invite_link; when non-empty also pending_members (invited), requesting_members (awaiting approval), banned, permission_add_member/permission_edit_details/permission_send_message (EVERY_MEMBER or ONLY_ADMINS), message_expiration_time (seconds) and is_terminated.

Input Schema

NameRequiredDescriptionDefault
group_idNoOptional: return only this group

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.40.1
    • addedInput schema / properties / group_id
      Added value: +{
      +  "description": "Optional: return only this group",
      +  "type": "string"
      +}
  2. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent and no-network semantics, but the description reinforces the no-network behavior and, importantly, enumerates the full return shape since no output schema exists. It doesn't mention pagination or large-store performance, which keeps it short of a 5.

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?

Front-loaded with purpose and usage before the return-field enumeration, and every clause is dense and useful. The long field list is justified by the absence of an output schema, though it is still fairly heavy.

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?

For a list tool with no output schema, the description fully documents the return fields (including pending/requesting/banned members and permission enums) and the local-store behavior. An agent has everything needed to call and interpret it.

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%, so the schema already documents group_id. The description restates that group_id returns only that group but adds no syntax or format detail beyond the schema; baseline 3 is appropriate.

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 ('List the Signal groups this account knows') plus scope ('from signal-cli's local store'). Clearly distinguishes itself from mutation siblings like update_group and leave_group.

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

Usage Guidelines5/5

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

Explicitly says to call it first to obtain the group_id that send_group_message, update_group, leave_group, terminate_group and set_expiration_timer require, and to check admin status. This names both the purpose and the downstream dependents, leaving nothing to inference.

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