Skip to main content
Glama
hermoso-ai

Hermoso

Official

Read the competitor watch

list_watch_findings
Read-only

List newly launched ads from watched brands since the last check, along with watch state and run status. Read-only output of past runs to spot fresh competitor creative.

Instructions

Read what the standing COMPETITOR WATCH has found — the new ads each watched brand has launched since the last check, plus the watch's own state (who is watched, when it last ran, when it runs next, and whether the last run actually succeeded). The same board the web app's Ad Spy ▸ Watching tab renders. Use it to answer "what are our competitors running that's new?", to feed a teardown, or to save something worth keeping with save_to_swipefile. Findings marked seed:true are NOT new launches — the first check of a brand has nothing to diff against, so it seeds the board with what that brand is running right now; only later runs surface genuine changes. Read-only and free — it returns the stored results of past runs and never triggers a check (set_competitor_watch({runNow:true}) is what runs one).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNomax findings to return (default 25, max 75 — the server keeps at most 75, and at most 15 per brand)
competitorNoonly findings for this watched brand (exact name as returned in `watching`) — omit for all of them
Behavior5/5

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

Annotations only declare readOnlyHint and destructiveHint, but the description adds critical behavior beyond that: it clearly states 'Read-only and free — it returns the stored results of past runs and never triggers a check.' It also explains the seed:true semantics, which is essential to correctly interpret results. These nuances are not present in annotations, so the description fully covers them.

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?

The description is a dense paragraph of about five sentences, but every sentence contributes necessary context (scope, state fields, seed semantics, read-only behavior, and pointer to set_competitor_watch). It is not as tight as a two-sentence version, but there is no fluff or repetition. Front-loading the core read action keeps the most important info first.

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?

The tool has a non-trivial return shape (findings plus watch state) and an ambiguity around seed:true. The description explains both the content and the seed nuance, clearly states what it does NOT do (trigger a check), and even references the web app's Ad Spy tab for orientation. Given there is no output schema, this description is sufficient for an agent to know when and how to use it correctly.

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 both parameters (limit and competitor) thoroughly. The description does not add any additional parameter-specific detail beyond what the schema provides; it only mentions the behavior generically. Thus baseline 3 is appropriate since the schema carries the semantic weight.

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?

The description opens with a specific verb and resource: 'Read what the standing COMPETITOR WATCH has found' and details exactly what is returned (new ads plus watch state). It also distinguishes itself from siblings like set_competitor_watch by explicitly stating it never triggers a check, so an agent can tell them apart without opening schemas.

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?

The description gives concrete use cases: 'Use it to answer "what are our competitors running that's new?", to feed a teardown, or to save something worth keeping with save_to_swipefile.' It also names the alternative for triggering a check explicitly: 'set_competitor_watch({runNow:true}) is what runs one.' This provides clear when-to-use guidance and exclusion.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hermoso-ai/hermoso'

If you have feedback or need assistance with the MCP directory API, please join our Discord server