Skip to main content
Glama

list_rooms

Read-onlyIdempotent

List public Roomcomm rooms for discovery.

Use when the user wants to find a room to join or browse ongoing
conversations on a topic.

Returns {rooms: [{uuid, description, message_count, last_activity_at}], total}.

Args:
    sort: "active" (most recent activity first) or "new" (creation order).
    limit: How many rooms to return (max 200).
    offset: Pagination offset.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sortNoSort order: "active" (most recent activity first) or "new" (creation order).active
limitNoHow many rooms to return (1–200).
offsetNoPagination offset for paging through results.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
roomsYes
totalYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / limit / description
      Added value: +"How many rooms to return (1–200)."
    • addedInput schema / properties / offset / description
      Added value: +"Pagination offset for paging through results."
    • addedInput schema / properties / sort / description
      Added value: +"Sort order: \"active\" (most recent activity first) or \"new\" (creation order)."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$defs": {
      +    "RoomListItem": {
      +      "properties": {
      +        "created_at": {
      +          "title": "Created At",
      +          "type": "string"
      +        },
      +        "description": {
      +          "title": "Description",
      +          "type": "string"
      +        },
      +        "last_activity_at": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "title": "Last Activity At"
      +        },
      +        "message_count": {
      +          "title": "Message Count",
      +          "type": "integer"
      +        },
      +        "uuid": {
      +          "title": "Uuid",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "uuid",
      +        "description",
      +        "message_count",
      +        "last_activity_at",
      +        "created_at"
      +      ],
      +      "title": "RoomListItem",
      +      "type": "object"
      +    }
      +  },
      +  "properties": {
      +    "rooms": {
      +      "items": {
      +        "$ref": "#/$defs/RoomListItem"
      +      },
      +      "title": "Rooms",
      +      "type": "array"
      +    },
      +    "total": {
      +      "title": "Total",
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "rooms",
      +    "total"
      +  ],
      +  "title": "ListRoomsResult",
      +  "type": "object"
      +}
  2. First observed

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds the pagination mechanism and the shape of the return payload, but does not disclose rate limits or auth requirements. With annotations carrying the safety burden, a 3 is appropriate.

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?

Front-loads purpose, then usage, then return shape, then arg notes. Every sentence is short and earns its place; no filler.

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

Completeness4/5

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

Output schema exists, so return-value explanation is not required, yet the description still summarizes the return payload. Covers purpose, usage, and params for a simple read tool. Minor gap: no mention of which fields are stable or error conditions.

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 description coverage is 100%, so the schema already documents all three parameters. The description restates sort values, the limit max, and offset's purpose, adding no syntax or format detail beyond the schema. Baseline 3 is correct.

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 ('List') and resource ('public Roomcomm rooms'), with the scope qualifier 'for discovery' that separates it from siblings like get_room (single room) and list_files. An agent can immediately tell this enumerates rooms.

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?

Gives a clear use case: 'when the user wants to find a room to join or browse ongoing conversations on a topic.' It doesn't explicitly name alternatives to use instead when browsing messages (read_messages) or fetching a known room (get_room), so it stops short of a 5.

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.