Skip to main content
Glama

listAnnouncements

Read-only

List the announcements already sent in this beta project, with their text, sender, audience tags, and reach. recipientsCount includes managers who received a courtesy copy; view tracking exists only for testers, so compute open rates as viewedCount out of testerRecipientsCount, never out of recipientsCount. Every announcement is always listed with these counts. Recipient lists are opt-in because they grow with testers times announcements: pass recipientsSince (for example 7 days ago) and each announcement sent at or after it also carries testerRecipients, the testers it reached who are still in this beta project (userId, name, username, and viewed: whether they opened it). Managers who received a courtesy copy are not in it, and a tester removed from the beta project drops out of it and of testerRecipientsCount and viewedCount. audienceTags lists the tag names the announcement targeted; an EMPTY list means no tag targeting, which covers both a send to all testers and a send to a hand-picked list of testers. Which of the two it was is not stored anywhere and cannot be worked out afterwards: the beta's membership moves and a hand-picked list can contain every tester, so do not present a guess about how recipients were chosen as fact. date is when the announcement was created/sent. attachmentUrl is a time-limited download link for the human user and differs on every call; hasAttachment is the stable fact.

Input Schema

NameRequiredDescriptionDefault
productIdYesID of the beta project to query. Get valid IDs from the listProducts tool.
recipientsSinceNoOptional: ISO 8601 date-time. Announcements sent at or after it also carry testerRecipients; omit it for counts only.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Goes well past readOnlyHint=true by disclosing non-obvious data quirks: recipientsCount includes courtesy-copy managers, view tracking exists only for testers so open rates must use testerRecipientsCount, recipients drop out when removed from the beta, and attachmentUrl changes every call while hasAttachment is stable. It also flags that the hand-picked-vs-all-tester distinction is unrecoverable and must not be guessed.

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 the core purpose and generally dense with earning content, but it runs long and repeats the courtesy-copy exclusion twice ('recipientsCount includes managers...' and 'Managers who received a courtesy copy are not in it'). A tighter ordering around recipient-list caveats would read better.

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?

With no output schema, the description carries the full burden of return-value explanation and does so thoroughly: counts, testerRecipients shape, audienceTags semantics, date, and attachmentUrl versus hasAttachment. Given only two simple parameters and a read-only annotation, nothing an agent needs to call or interpret this correctly is missing.

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?

Schema coverage is 100%, but the description still adds real meaning: recipientsSince not only enables testerRecipients but qualifies which announcements carry the list ('sent at or after it'), what fields appear in each entry (userId, name, username, viewed), and who is excluded from it. That is substantive semantics beyond the schema's one-line note.

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 announcements already sent in this beta project') plus the fields returned (text, sender, audience tags, reach). The 'already sent' framing cleanly separates a read of past announcements from the sibling sendAnnouncement write tool, so an agent can pick between them without opening a 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?

Gives explicit conditional guidance for the optional parameter ('pass recipientsSince ... omit it for counts only') and warns against presenting an inferred sending method as fact. It never names an alternative sibling tool or states a when-not-to-call condition for the tool as a whole, which keeps it below 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.

Resources