The catalogue/Google Contacts
Google Contacts
app.google.contacts
List, search, create, update, and delete contacts and contact groups in Google Contacts
Version2.0.0
Categoryproductivity
AuthOAuth 2
Tools13
Transportstdio
LicenceMIT
01
What it does
The app, in its own words.
Manage Google Contacts — list, search, create, update, and delete contacts, plus organize them into groups and labels via the Google People API.
02
Tools
13 tools the agent can call.
Every one is declared with typed parameters and returns structured results, so the host can render them instead of narrating them.
- add-contacts-to-groupAdd one or more contacts to a contact group (POST /contactGroups/{resourceName}/members:modify). Returns { success, notFoundResourceNames, canNotAddResourceNames }. Params: resourceName (required — e.g. 'contactGroups/abc123'), contactResourceNames (required — array of contact resource names e.g. ['people/c123', 'people/c456']).
- create-contactCreate a new contact in Google Contacts (POST /people:createContact). Returns { resourceName, name }. Params: givenName (required), familyName?, email?, phone?, organization?, title?, notes?.
- create-contact-groupCreate a new contact group (label) in Google Contacts (POST /contactGroups). Returns { resourceName, name, formattedName, groupType }. Params: name (required — must be unique).
- delete-contactDelete a contact permanently from Google Contacts (DELETE /people/{resourceName}:deleteContact). IRREVERSIBLE — the contact is removed. Returns { resourceName, deleted }. Params: resourceName (required — e.g. 'people/c123456789').
- delete-contact-groupDelete a contact group from Google Contacts (DELETE /contactGroups/{resourceName}). By default this does NOT delete the contacts in the group. Set deleteContacts=true to also delete them. IRREVERSIBLE. Returns { resourceName, deleted, contactsDeleted }. Params: resourceName (required — e.g. 'contactGroups/abc123'), deleteContacts? (default false).
- get-contactGet a specific contact by resource name (GET /people/{resourceName}). Returns detailed info including name, emails, phones, organizations, addresses, biographies, birthdays, urls, and photo. Params: resourceName (required — e.g. 'people/c123456789').
- get-contact-groupGet detailed information about a specific contact group, including its members. Returns group name, type, member count, and member resource names. Params: resourceName (required — e.g. 'contactGroups/abc123'), maxMembers? (default 100, max 1000).
- list-contact-groupsList all contact groups (labels) from Google Contacts. Returns group name, member count, and type. Supports pagination. Params: pageSize? (default 100, max 1000), pageToken?.
- list-contactsList contacts from Google Contacts. Returns name, email, phone numbers. Supports pagination. Params: pageSize? (default 100, max 1000), pageToken? (from previous response).
- remove-contacts-from-groupRemove one or more contacts from a contact group (POST /contactGroups/{resourceName}/members:modify). Returns { success, notFoundResourceNames }. Params: resourceName (required — e.g. 'contactGroups/abc123'), contactResourceNames (required — array of contact resource names e.g. ['people/c123', 'people/c456']).
- search-contactsSearch for contacts by query (name, email, phone, etc.). Returns matching contacts with name, emails, phones, organization, and photo. Params: query (required), pageSize? (default 30, max 30).
- update-contactUpdate an existing contact in Google Contacts. Fetches the current contact first for the etag. Returns { resourceName, name }. Params: resourceName (required — e.g. 'people/c123456789'), givenName?, familyName?, email?, phone?, organization?, title?.
- update-contact-groupUpdate an existing contact group (rename it). Fetches the current group for the etag first. Returns { resourceName, name, formattedName, groupType }. Params: resourceName (required — e.g. 'contactGroups/abc123'), name (required — new name).
03
Auth and permissions
What it asks for.
Declared in the manifest, in advance. The app cannot reach anything it did not ask for here.
Scopes
https://www.googleapis.com/auth/contactshttps://www.googleapis.com/auth/contacts.readonlyhttps://www.googleapis.com/auth/userinfo.email
System secrets
CLIENT_IDCLIENT_SECRET
User secrets
ACCESS_TOKENREFRESH_TOKEN
Reading further
The manifest and the source for Google Contacts live in the monorepo, alongside the other apps.