Google Contacts MCP Server

People API contact and group management, including batch operations.

Built on Google’s People API, the Contacts service handles both individual records and bulk work. search_contacts matches on name, email, or phone; manage_contact covers single-record create, update, and delete; and manage_contacts_batch applies the same operations across many records in one call.

Group support is first-class rather than bolted on — list, inspect, create, and modify contact groups, and manage membership, which is what most real organizing tasks actually need.

What you can ask

  • “Find everyone with an acme.com address in my contacts and add them to the Partners group”
  • “Create contacts for these five new hires from the onboarding sheet”
  • “Update Priya’s phone number and move her to the Leadership group”

All 8 Google Contacts MCP tools

Expand any tool for its full parameter list. Tiers control how many tools the server registers: start lean with --tool-tier core and step up to extended or complete when a workflow needs more.

search_contacts Core Search by name, email, and phone. 2
ParameterDescription
query requiredSearch query string (searches names, emails, phone numbers).
page_size Maximum number of results to return (default: 30, max: 30).
get_contact Core Retrieve detailed contact profiles. 1
ParameterDescription
contact_id requiredThe contact ID (e.g., "c1234567890" or full resource name "people/c1234567890").
list_contacts Core List contacts with pagination. 3
ParameterDescription
page_size Maximum number of contacts to return (default: 100, max: 1000).
page_token Token for pagination.
sort_order Sort order: "LAST_MODIFIED_ASCENDING", "LAST_MODIFIED_DESCENDING", "FIRST_NAME_ASCENDING", or "LAST_NAME_ASCENDING".
manage_contact Core Create, update, or delete contacts. 9
ParameterDescription
action requiredThe action to perform: "create", "update", or "delete".
contact_id The contact ID (required for "update" and "delete").
given_name First name (for create/update).
family_name Last name (for create/update).
email Email address (for create/update).
phone Phone number (for create/update).
organization Company/organization name (for create/update).
job_title Job title (for create/update).
notes Additional notes (for create/update).
list_contact_groups Extended List contact groups. 2
ParameterDescription
page_size Maximum number of groups to return (default: 100, max: 1000).
page_token Token for pagination.
get_contact_group Extended Retrieve group details and members. 2
ParameterDescription
group_id requiredThe contact group ID.
max_members Maximum number of members to return (default: 100, max: 1000).
manage_contacts_batch Complete Batch create, update, or delete contacts. 4
ParameterDescription
action requiredThe action to perform: "create", "update", or "delete".
contacts List of contact dicts for "create" action.
updates List of update dicts for "update" action.
contact_ids List of contact IDs for "delete" action.
manage_contact_group Complete Create, update, delete groups, and manage membership. 6
ParameterDescription
action requiredThe action to perform: "create", "update", "delete", or "modify_members".
group_id The contact group ID (required for "update", "delete", and "modify_members").
name Group name (required for "create", optional for "update").
delete_contacts Whether to delete contacts when deleting group.
add_contact_ids Contact IDs to add to group.
remove_contact_ids Contact IDs to remove from group.

Every service in one reference: full API documentation →

OAuth scopes

The server requests only the scopes for the services you enable. In read-only mode it requests just the readonly variants and skips registering write tools entirely.

  • contacts.readonly search and read contacts and groups
  • contacts create, update, and delete contacts and groups

Google Contacts MCP questions

Is this the old Contacts API or the People API?
The People API — Google’s current interface for contact data. The legacy Contacts API was shut down; this service was built on People from the start.
Can it import a batch of contacts at once?
manage_contacts_batch creates, updates, or deletes many contacts in a single call, so importing a hiring class from a spreadsheet does not mean one round trip per person.
How does group membership work?
manage_contact_group handles the full group lifecycle including adding and removing members, and get_contact_group returns a group’s current membership so the assistant can diff before changing anything.