Skip to main content
Glama

acme_search_contacts

Read-only

Search contacts by name, company, email domain, or any field to find matching records and retrieve contact IDs for use with other contact tools.

Instructions

Find contacts whose name, company or any other field contains the query (case-insensitive).

Use this first when you don't know a contact's id. Each result includes the id to pass to the other contact tools. Masked fields show as "[masked]".

Input Schema

NameRequiredDescriptionDefault
limitNoMost results to return, from 1 to 100.
queryYesText to look for, such as a name, company or email domain.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.1.1
    • addedInput schema / properties / limit / description
      Added value: +"Most results to return, from 1 to 100."
    • addedInput schema / properties / limit / maximum
      Added value: +100
    • addedInput schema / properties / limit / minimum
      Added value: +1
    • addedInput schema / properties / query / description
      Added value: +"Text to look for, such as a name, company or email domain."
  2. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds genuinely non-obvious behavior beyond that: matching is case-insensitive, matching spans any field, and masked fields render as "[masked]" in results — the last being important for interpreting output. It does not say whether results are truncated or ranked, which is the remaining gap.

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?

Four short sentences, each carrying distinct information, with the core purpose front-loaded before the usage hint and the output caveats. Nothing is redundant with the name or restates the schema.

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 shape need not be explained, and the description usefully adds the id-chaining hint and masking note. For a 2-parameter read tool this is close to complete; only the absence of any note about result caps or ranking keeps it from the top.

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; the description earns above that by clarifying the query semantics (case-insensitive, matches across name, company or any field), which the schema only partially conveys. The limit parameter's meaning and bounds are left entirely to the schema, which is acceptable given its inline description.

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 ("Find contacts") plus the search semantics: substring match across name, company or any other field, case-insensitive. The line "Use this first when you don't know a contact's id" implicitly but clearly separates it from the only sibling, acme_get_contact, so an agent can pick correctly without reading 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 Guidelines4/5

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

Explicit trigger given: use this when the contact id is unknown, and by implication use get_contact when it is known. No explicit exclusion or edge-case handling (e.g., what to do on zero results or when the query is ambiguous), so it stops short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools