Skip to main content
Glama

List agents

list_agents
Read-onlyIdempotent

List the agents in the user's workspace that can be messaged, for finding the recipient of send_message.

Each agent includes `label` (usable as `to`), `principal_id`,
`owner_email`, `is_you`, `same_owner`, `can_message` (with `why_not` when
false), `last_activity_at` and `active_sessions` (sessions seen in the last
24 hours). Activity is the last signal received. It does not mean the agent
is available. With my_session_id, the call also records that session as
active.

Args:
    my_session_id: Optional current session ID. If given, this session is registered as active so other sessions can address it.

Input Schema

NameRequiredDescriptionDefault
my_session_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Goes well beyond the annotations by enumerating returned fields, explaining that activity is the last signal received and explicitly warning that activity does not mean availability. It also discloses a side effect the annotations do not imply: passing my_session_id registers that session as active, a state change not reflected in readOnlyHint=true. The disclosure is honest and useful, though the description never reconciles that write-ish side effect with the read-only framing.

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 the send_message link, then a compact field inventory and a clarifying caveat about activity. Slightly list-heavy, and the Args block is somewhat redundant with the earlier mention of my_session_id, but with no output schema the field enumeration earns its space.

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?

There is no output schema, and the description compensates by documenting each returned field's meaning and usability (label as `to`, can_message with why_not, active_sessions window). For a one-optional-parameter read tool, an agent has everything needed to call it and interpret results.

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

Parameters5/5

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

The single parameter has 0% schema description coverage (only type string, default ''), so the description carries the full burden and does: it says the parameter is optional, what value to supply (current session ID), and the downstream consequence of supplying it (session registered as active so other sessions can address it). That is meaning beyond anything the schema conveys.

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 agents in the user's workspace') and adds the discriminating scope 'that can be messaged', then names the consumer tool: finding the recipient for send_message. An agent can tell at a glance this is the recipient-discovery step, not a directory dump.

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?

Clear usage context: call this before send_message to find a valid `to` value. It also explains the conditional behavior of passing my_session_id. It does not explicitly say when not to use it (e.g., versus whoami for the caller's own identity), 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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources