Skip to main content
Glama

Onsa

Read prospect replies

list_replies
Read-onlyIdempotent

Returns the text of what prospects replied, for every lead in the campaign that answered, paired with the outbound message it answers. get_campaign_stats counts replies and labels them; this returns the words. sentiment is Onsa's own label, written once per lead on their first reply - later replies never change it, and a reply Onsa has not scored yet comes back as sentiment: null, which means unscored rather than neutral. Those unscored replies are absent from get_campaign_stats entirely, so this tool can return more replies than the funnel counts.

Three derived fields come with the reply. awaitingOurReply: the prospect spoke last and no sent message followed. It is structural only - a flat 'no thanks' satisfies it too - and Onsa sees only what Onsa sent, so a reply made by hand inside LinkedIn is invisible to it; what the data supports is 'no reply recorded here'. daysSinceLastReply is elapsed whole days rather than time-unanswered: it is populated even where we did answer, so it describes time-unanswered only when awaitingOurReply is also true. looksLikeBroadcast: the prospect's most recent message reached another profile in this campaign word for word, which indicates a mass DM rather than an answer. All three are floors rather than verdicts - a blast only one lead received is indistinguishable from a real reply, and two people who send the same long template are both flagged. Top-level awaitingOurReplyCount spans the whole campaign rather than this page, and leaves out broadcasts and replies scored negative; it can exceed returned when limit is small.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum replies to return, newest first (default 50)
campaignIdYesCampaign to read replies from

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
totalYes
returnedYes
campaignIdYes
campaignUrlYes
campaignTitleYes
conversationsYes
awaitingOurReplyCountYes

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?

Annotations already declare readOnlyHint and idempotentHint, but the description adds substantial behavioral context: the semantics of sentiment null (unscored vs neutral), the structural nature of awaitingOurReply (only sees Onsa-sent messages, hand-made replies invisible), daysSinceLastReply as elapsed days even if answered, looksLikeBroadcast as a floor not verdict, and top-level count spanning the whole campaign with exclusions. This far exceeds the minimal annotation coverage and clarifies subtle data interpretation.

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?

The description is long but every sentence earns its place, explaining nuanced semantics that an agent must understand to interpret results correctly. It is front-loaded with the core purpose, then systematically explains the three derived fields and the top-level count, using clear structure. No fluff or redundancy.

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 an output schema present, the description needn't restate return structure. It covers edge cases (unscored replies, hand-made replies, broadcast detection limits, daysSinceLastReply semantics) and clarifies the meaning of derived fields and the top-level counter. For a read-only tool with rich output semantics, this is complete for correct invocation and interpretation.

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% with both parameters fully documented (limit with default and ordering, campaignId with format). The description adds no new parameter-level semantics beyond what the schema already provides, so the baseline of 3 is appropriate. It does mention the interaction between limit and the top-level count, but that pertains to output behavior rather than parameter usage.

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 clearly states what the tool does: returns reply text paired with the outbound message, and explicitly contrasts with get_campaign_stats which counts replies. The verb 'returns' and resource 'reply text' are specific, and the sibling differentiation is explicit, leaving no ambiguity about purpose.

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 provides direct guidance on when to use this tool versus get_campaign_stats, noting that this returns the words while the sibling counts and labels. It also explains when this tool may return more replies than the funnel counts, clarifying its scope and limitations relative to the alternative.

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