Skip to main content
Glama

Cooper Email

List SMS threads

cooper_list_sms_threads
Read-onlyIdempotent

List SMS threads on an inbox. Requires auth. Input: inbox_id.

Input Schema

NameRequiredDescriptionDefault
inbox_idYesInbox id (inb_…) that owns the phone number. Get it from cooper_list_inboxes.

Output Schema

NameRequiredDescriptionDefault
dataNoItems on this page, in the order the tool description gives.
objectNoObject type name, such as list, message, or thread.
inbox_idNoInbox id (inb_…) this object belongs to. Null when it applies to every inbox.
next_page_tokenNoCursor for the next page, or null when this is the last page. Pass it back as page_token.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / inbox_id / description
      Added value: +"Inbox id (inb_…) that owns the phone number. Get it from cooper_list_inboxes."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "description": "SMS threads on the inbox.",
      +  "properties": {
      +    "data": {
      +      "description": "Items on this page, in the order the tool description gives.",
      +      "items": {
      +        "properties": {
      +          "assignment": {
      +            "description": "Current assignment {assignee, note, claimed_until, claim_active, …}, or null."
      +          },
      +          "attachment_count": {
      +            "description": "Number of attachments across the thread."
      +          },
      +          "created_at": {
      +            "description": "ISO-8601 time the object was created."
      +          },
      +          "folder": {
      +            "description": "inbox, archive, spam, or trash."
      +          },
      +          "id": {
      +            "description": "Thread id (thr_…)."
      +          },
      +          "inbox_id": {
      +            "description": "Inbox id (inb_…) this object belongs to. Null when it applies to every inbox."
      +          },
      +          "labels": {
      +            "description": "Labels on the object."
      +          },
      +          "last_message_id": {
      +            "description": "Id of the newest message."
      +          },
      +          "message_count": {
      +            "description": "Number of messages on the thread."
      +          },
      +          "preview": {
      +            "description": "Preview of the latest message."
      +          },
      +          "purge_after": {
      +            "description": "ISO-8601 time a trashed thread is deleted, or null."
      +          },
      +          "received_at": {
      +            "description": "ISO-8601 time of the latest inbound message, or null."
      +          },
      +          "recipients": {
      +            "description": "Addresses that received mail on this thread."
      +          },
      +          "senders": {
      +            "description": "Addresses that sent mail on this thread."
      +          },
      +          "sent_at": {
      +            "description": "ISO-8601 time of the latest outbound message, or null."
      +          },
      +          "subject": {
      +            "description": "Subject of the first message."
      +          },
      +          "updated_at": {
      +            "description": "ISO-8601 time the object last changed."
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "inbox_id": {
      +      "description": "Inbox id (inb_…) this object belongs to. Null when it applies to every inbox."
      +    },
      +    "next_page_token": {
      +      "description": "Cursor for the next page, or null when this is the last page. Pass it back as page_token."
      +    },
      +    "object": {
      +      "description": "Object type name, such as list, message, or thread."
      +    }
      +  },
      +  "type": "object"
      +}
  2. Added

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds the auth requirement, which is useful context beyond the annotations, but says nothing about pagination, ordering, or result limits for a list operation.

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

Conciseness3/5

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

The description is short and front-loads the purpose, but the trailing 'Input: inbox_id.' sentence is pure duplication of a required schema property and does not earn its place. Trimming it would leave a tighter two-sentence definition.

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?

This is a simple single-parameter read tool with rich annotations and an output schema, so return values need no explanation. The auth prerequisite is noted; the remaining omissions (pagination, ordering) are minor for a list endpoint.

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% and the schema itself explains that inbox_id is an 'inb_…' id obtainable from cooper_list_inboxes. The description only restates 'Input: inbox_id', adding no meaning beyond the schema, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('List SMS threads') plus scope ('on an inbox'), which separates it from the broader cooper_list_threads and from cooper_get_sms_thread. It stops short of naming a sibling explicitly, so it earns a 4 rather than a 5.

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

Usage Guidelines2/5

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

There is no when-to-use guidance and no alternatives are named, even though the sibling set contains obvious candidates (cooper_list_threads, cooper_search_threads, cooper_get_sms_thread). The only guidance offered is the prerequisite that auth is required.

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.