Skip to main content
Glama

Search contacts

search_contacts
Read-onlyIdempotent

Finds contacts, newest first. Filter by exact phone number (E.164, for example +14165550134), exact email, or part of the name. With no filter it lists every contact. Use it to find a caller before booking or updating their details.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "search_contacts"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNoPart of the contact's name. Case does not matter.
emailNoExact email address. Case does not matter.
limitNoHow many items to return, 1 to 100. Defaults to 25.
phoneNoExact phone number in E.164 format, for example +14165550134.
cursorNoThe next_cursor value from the previous page. Omit it for the first page.

Output Schema

NameRequiredDescriptionDefault
dataYes
has_moreYes
next_cursorYesPass as cursor to get the next page. Null on the last page.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

The annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds two behaviors those hints cannot convey: default sort order is newest first, and an unfiltered call returns every contact. It says nothing about pagination behavior or result-size implications of that 'lists every contact' case, which the cursor and limit fields imply but the text never addresses.

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?

Three short sentences with no filler; the sort order and filter semantics are front-loaded, and the workflow hint comes last where it reads as a natural conclusion. Every clause carries usable information.

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, return values need not be described, and all five parameters are fully annotated in the schema. The description covers scope, matching rules, ordering and the no-filter case, which is everything an agent needs before invoking a collection read.

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%, and the schema already documents E.164 format, case-insensitivity, exact-vs-partial matching, and limit bounds. The description restates that summary compactly but adds no syntax or edge-case meaning the schema doesn't already supply, so the baseline 3 applies.

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?

The description states a specific verb and resource ('Finds contacts') plus the ordering ('newest first') and the three filter modes, so an agent knows exactly what the tool retrieves. It never names the obvious counterpart (get_contact) for ID-based lookup, so sibling differentiation is only implicit in the 'find a caller' phrasing.

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

Usage Guidelines4/5

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

'Use it to find a caller before booking or updating their details' gives a concrete workflow context that tells the agent when this tool belongs in a sequence. It stops short of explicit exclusions such as 'use get_contact when you already have the contact ID', so an agent must infer the boundary itself.

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