Skip to main content
Glama

Onsa

Get campaign leads

get_campaign_leads
Read-onlyIdempotent

Returns the leads of any campaign by campaignId, with the same fields as fetch_leads, including score and scoreExplanation. It covers campaigns not started in this session, which fetch_leads cannot reach because fetch_leads requires a jobId from a find_leads call in the same session. Passing leadIds resolves the reply buckets from get_campaign_stats back into named people. A lead carries signal only when the search asked for a need signal.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoHow many leads to return (default 50)
leadIdsNoOptional; when set, only these leads are returned, e.g. positiveLeadIds from get_campaign_stats
campaignIdYesCampaign id, as returned by list_campaigns or fetch_leads

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
leadsYes
totalYes
returnedYes
campaignIdYes
campaignUrlYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / leads / items / properties / signal
      Added value: +{
      +  "additionalProperties": {},
      +  "properties": {
      +    "sourceUrl": {
      +      "type": "string"
      +    },
      +    "status": {
      +      "enum": [
      +        "verified",
      +        "inferred",
      +        "none"
      +      ],
      +      "type": "string"
      +    },
      +    "summary": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "status",
      +    "summary"
      +  ],
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / leadIds / description
      Previous value: -"Optional: return only these leads, e.g. positiveLeadIds from get_campaign_stats"New value: +"Optional; when set, only these leads are returned, e.g. positiveLeadIds from get_campaign_stats"
  3. Changed1 schema field changed
    • changedInput schema / properties / campaignId / description
      Previous value: -"Campaign id from list_campaigns or fetch_leads — never invent one"New value: +"Campaign id, as returned by list_campaigns or fetch_leads"
  4. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive behavior, so safety is covered. The description adds real context beyond that: it mirrors fetch_leads' field set (score, scoreExplanation) and notes that `signal` is only present when the search asked for a need signal — a conditional output behavior the agent cannot learn from annotations or schema.

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?

Four tight sentences, front-loaded with the core purpose and differentiation before parameter and output caveats. Every sentence carries information; it is slightly dense but has 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?

An output schema exists as do comprehensive annotations, so return-value and safety disclosure are not needed here. The description supplies the sibling routing, field parity, and conditional-signal context, leaving only minor operational details (like the limit default) to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema: it explains that leadIds resolves get_campaign_stats reply buckets (e.g. positiveLeadIds) back into named people, which the schema only describes as 'only these leads are returned'.

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 (Returns) and resource (leads of any campaign) keyed by campaignId, then immediately names the sibling it competes with (fetch_leads) and what differentiates them. An agent can distinguish it without opening either schema.

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?

Explicitly says when to use it vs fetch_leads: this tool reaches campaigns not started in the current session, whereas fetch_leads requires a jobId from a find_leads call in the same session. It also routes the leadIds parameter to its source (reply buckets from get_campaign_stats).

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