Skip to main content
Glama

Vision6 MCP by usefulapi

List contacts

vision6_list_contacts
Read-only

List the contacts of one list: email, mobile, subscribed/blocked status, active flag, double opt-in and the list's custom fields. Filter by email, mobile, active flag, creation/modification time or any custom field (filters, e.g. {"city":"Brisbane"} or {"source:ne":"promo"}). GET /lists/{list_id}/contacts.

Input Schema

NameRequiredDescriptionDefault
emailNoExact email address.
limitNoResults per page, 1-1000 (default 50).
fieldsNoOptional comma separated list of response fields to return, e.g. id,email.
mobileNoExact mobile number (international format without +).
offsetNoSkip this many results (default 0). Pass the previous reply's next_offset.
filtersNoCustom field filters: key = lowercase field key, optionally with :ne or :in (comma separated values), e.g. {"state:in":"qld,nsw"}.
list_idYes
is_activeNo
created_sinceNoOnly contacts created at or after this UTC timestamp.
modified_sinceNoOnly contacts changed at or after this UTC timestamp.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so safety is covered. The description usefully discloses what the response carries (status, double opt-in, custom fields) and the underlying GET endpoint, but says nothing about pagination bounds, rate limits, or result ordering.

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?

Two dense sentences, front-loaded with the resource and the payload. The field enumeration is long but earns its place by telling the agent what comes back; the endpoint suffix is mildly redundant with the operation name.

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?

For a 10-parameter, nested-filter, read-only tool with no output schema, the description covers what is returned and how custom-field filtering works. Pagination (limit/offset/next_offset) is left entirely to the schema, which is a minor but real gap for a paged list operation.

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 coverage is 80%, so most parameters are already documented in the schema. The description's filter examples ({"city":"Brisbane"}, {"source:ne":"promo"}) largely restate the schema's own filters description, adding only the point that custom fields are targetable and that arbitrary fields are filterable; no extra semantics for limit/offset/fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('List the contacts of one list') and enumerates the returned attributes, so it is clearly distinct from vision6_get_contact. It never names a sibling explicitly, so the boundary against vision6_list_sent_contacts or vision6_list_list_fields is left implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the endpoint ('GET /lists/{list_id}/contacts') and the filter examples show how to narrow results, but there is no explicit when-to-use guidance or statement of when a different sibling (e.g. vision6_list_sent_contacts or vision6_get_contact) is the better call.

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.