Skip to main content
Glama
A1-x-Tech

A1 Google Contacts MCP

Search contacts

search_contacts
Read-onlyIdempotent

Find saved contacts by searching name, email, phone, or organization prefixes. Returns matching contact details with selected fields, up to 30 results.

Instructions

Searches the account's saved contacts by prefix match on names, nicknames, emails, phones and organizations (People API people:searchContacts). Returns results[] of { person } with the requested read_mask fields. Max 30 results, no pagination — this is a quick lookup, not an export; use list_contacts to enumerate everything. The search index lags writes by seconds to minutes: a contact created or updated moments ago may be missing here even though list_contacts and get_contact already see it (the documented cache-warmup request is sent automatically before the session's first search, but the lag is server-side). Searches only the user's own saved contacts.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesThe search text, e.g. a name prefix ("Ann"), email or phone fragment.
page_sizeNoMax results (1..30, API cap; default 10).
read_maskNoPerson fields to return (default names, emailAddresses, phoneNumbers, organizations, memberships). Only masked fields come back — an absent field may be unmasked, not empty.
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds substantial non-obvious behavior beyond the annotations: max 30 results with no pagination, server-side index lag of seconds to minutes, the automatic cache-warmup request, and the scope restriction to own saved contacts. These are exactly the behavioral traits an agent cannot infer from schema or annotations.

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 sentences, each earning its place: purpose and scope, return shape, result limits with sibling routing, and the index-lag caveat. The most decision-relevant facts are front-loaded. The cache-warmup parenthetical is detailed but preempts a predictable agent question about missing fresh contacts, so no sentence is wasted.

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?

For a read-only quick-lookup tool with no output schema, the description is complete: it covers return shape (results[] of { person } with read_mask fields), hard limits (max 30, no pagination), freshness caveats (index lag, warmup), scope (own contacts only), and the alternative for enumeration. No critical information an agent needs to invoke it correctly is missing.

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 description coverage is 100%, so the baseline is 3; the schema already documents query, page_size bounds, defaults, and the read_mask enum with its absent-field caveat. The description adds genuine value by specifying which fields the query prefix-matches (names, nicknames, emails, phones, organizations), which the schema's query description does not enumerate. This helps an agent construct effective queries but is a modest increment over an already-complete schema.

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?

The description states a specific verb ('searches'), a precise resource ('the account's saved contacts'), and the matching semantics ('prefix match on names, nicknames, emails, phones and organizations'). It differentiates from siblings by scope ('Searches only the user's own saved contacts') and explicitly frames itself as a quick lookup rather than an enumeration, so an agent can distinguish it from list_contacts, get_contact, and list_other_contacts without inspecting schemas.

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?

The description explicitly names the alternative and the condition that selects it: 'use list_contacts to enumerate everything.' It also gives when-not-to-use guidance by disclosing the search-index lag, telling the agent that contacts just created/updated may be invisible here even though list_contacts and get_contact already see them. This effectively routes the agent to the correct sibling based on recency of writes.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/A1-x-Tech/mcp-google-contacts'

If you have feedback or need assistance with the MCP directory API, please join our Discord server