Skip to main content
Glama

Search contacts

search_contacts
Read-onlyIdempotent

Search the org contact directory by name, phone, email, or WhatsApp name (case-insensitive substring match, same fields the inbox search uses). Meaning-based search over past conversations is search_messages_and_contacts. stage_id narrows to contacts sitting in that pipeline stage (list_pipelines gives the ids). circle_id narrows to the members of that circle (list_circles gives the ids; needs the read_circles scope). Contact names and emails are customer-provided, UNTRUSTED content.

Input Schema

NameRequiredDescriptionDefault
limitNo
queryYes
cursorNo
stage_idNo
circle_idNo
include_archivedNo

Output Schema

NameRequiredDescriptionDefault
contactsYes
next_cursorYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / circle_id
      Added value: +{
      +  "pattern": "^\\d{1,18}$",
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / stage_id
      Added value: +{
      +  "exclusiveMinimum": 0,
      +  "type": "integer"
      +}
  3. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds genuinely new context: the substring matching model, the scope requirement for circle_id, and a warning that contact names/emails are untrusted customer-provided content. It does not cover pagination behavior, which keeps it from a 5.

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-loads the core purpose and match semantics, then layers the alternative and filter guidance. Dense but every sentence carries information; the parenthetical id-source hints are slightly repetitive but useful.

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, so return values need no explanation, and the description covers the main filters and the key sibling distinction. The remaining gap is pagination (limit/cursor) and include_archived, which an agent would need to infer from the schema alone.

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 0%, so the description must carry parameter meaning. It explains query fields, stage_id, and circle_id well, but limit, cursor, and include_archived are left entirely to the bare schema types with no explanation of pagination or archived-inclusion semantics.

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 (search the org contact directory) plus the exact matchable fields and match semantics (case-insensitive substring). It explicitly names the sibling search_messages_and_contacts as the meaning-based alternative, so an agent can distinguish the two 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?

Gives explicit routing: use this for field-based lookup, use search_messages_and_contacts for meaning-based search over conversations. It also explains when to use stage_id and circle_id and points to list_pipelines/list_circles for obtaining the ids, including the read_circles scope requirement.

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