Skip to main content
Glama

Datamagnet

List signal leads

list_signal_leads
Read-onlyIdempotent

Fetch the leads this account's engagement signals (keyword_engagement, industry_engagement, company_engagement, person_engagement) have found. Free. The leads are always this account's own, from the caller's key; there is no way to fetch another account's leads.

Every argument is optional and narrows the result. With none, this returns the 50 most recent leads across every signal, newest first.

signal_id scopes to one signal — get it from list_signals; omitting it searches all of them. min_score / max_score filter the 1-3 lead score. keyword matches signal_keyword exactly, case-insensitive: the keyword, industry, company, or person label that surfaced the lead. engagement_type is comment, like, or another reaction. search matches the lead's name or headline, case-insensitive, substring. created_from / created_to are ISO 8601 timestamps or dates (a date alone means midnight UTC); created_from is inclusive, created_to is exclusive.

sort is created_at_desc (default), created_at_asc, lead_score_desc, or icp_score_desc. limit (max 200) and offset page through the result; the response's has_more says whether another page follows, and total is the count across every page, not just this one.

To fetch only what is new since a previous call, sort by created_at_asc and set created_from to the newest detected_at already held, then skip any id already seen — one run's leads share a single detected_at.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sortNocreated_at_desc
limitNo
offsetNo
searchNo
keywordNo
max_scoreNo
min_scoreNo
signal_idNo
created_toNo
created_fromNo
engagement_typeNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/openWorld, but the description adds cost ('Free'), a hard tenancy constraint (leads are always the caller's own account; no cross-account fetch), default result size, and pagination semantics (has_more, total spans all pages). These are behavioral facts not present in the structured fields.

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 purpose, cost, and tenancy, then organized parameter-by-parameter. It is long, but with 11 undocumented parameters nearly every sentence carries unique information; only the incremental-polling paragraph is arguably extra.

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?

An output schema exists, so the description correctly avoids enumerating return fields while still explaining the two response fields that affect control flow (has_more, total). For an 11-parameter paginated list tool, nothing an agent needs to call it 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 description coverage is 0%, yet the description documents essentially every parameter: score range 1-3, keyword exact match case-insensitive against signal_keyword, engagement_type values, search substring semantics, ISO 8601 date handling with inclusive/exclusive boundaries, all four sort values, limit max 200, and offset paging. It fully compensates for the schema gap.

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 — 'Fetch the leads this account's engagement signals have found' — and immediately names the signal types that feed it. It is clearly distinguishable from list_signals, which it references as the source of signal_id.

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?

Explains the no-argument default (50 most recent across all signals), when to scope with signal_id versus omit it, and gives an explicit recipe for incremental polling (sort created_at_asc + created_from from newest detected_at + dedupe by id). This is unusually complete routing guidance.

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.