Skip to main content
Glama
A1-x-Tech

A1 Google Contacts MCP

Update many contacts at once

batch_update_contacts
DestructiveIdempotent

Update up to 200 Google Contacts in one batch request, replacing specified fields for each contact. Provide the same field groups for all entries to prevent omitted fields from being cleared.

Instructions

Updates up to 200 contacts in one call (People API people:batchUpdateContacts). Each entry names a contact (resource_name, optional etag — missing etags are auto-fetched in ONE extra batchGet read) plus the same normalized fields as update_contact. CAUTION — the API applies ONE shared update mask to the whole batch, computed here as the union of every entry's provided field groups: a group that one entry provides and another omits is CLEARED on the omitting entry. Safest is to give every entry the same set of fields; each provided group replaces its stored group as a whole, exactly like update_contact. Atomic per request; a stale etag fails the whole batch with 400 — re-read and retry deliberately, never blindly.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
updatesYesThe updates (1..200) — give every entry the same set of contact fields (shared mask).
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?

Beyond the annotations, the description discloses critical behavior: the shared update-mask union, the clearing of omitted field groups, auto-fetching missing etags with an extra batchGet, atomicity per request, and whole-batch failure on stale etags. This is exactly the kind of non-obvious behavior an agent needs to avoid dangerous mistakes. No contradiction with 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?

The description is dense but every sentence carries load-bearing information. It front-loads the core capability, then uses a CAUTION marker to highlight the dangerous shared-mask behavior, and closes with a concrete failure/recovery rule. There is no filler or repetition.

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?

The description covers the limit, the etag semantics, the destructive clearing behavior, atomicity, the 400 failure mode, and a deliberate retry strategy. Given the annotations and rich schema, nothing essential for correct invocation is missing. The lack of an output schema is not a significant gap because the primary risks are all disclosed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although the schema documents each field, the description adds essential batch-level semantics: the update mask is shared across entries, a field group omitted by one entry but provided by another is cleared, and each provided group replaces its stored group as a whole. It also clarifies the optional etag behavior and the safe pattern of giving every entry the same fields. This significantly exceeds schema-only information.

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 exactly what the tool does: "Updates up to 200 contacts in one call" and identifies the underlying API. It clearly distinguishes itself from the singular update_contact by emphasizing batch scope and by referencing "the same normalized fields as update_contact." The verb, resource, and scale are all explicit.

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?

The description gives clear context: use this when updating many contacts at once, up to 200. It references update_contact for field semantics, which helps an agent understand the relationship, but it does not explicitly state "for a single contact, use update_contact" or list exclusions. The usage is strongly implied but not fully spelled out.

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