Google People API · Capability
Google People API (Contacts)
Google People API (Contacts). 11 operations. Lead operation: List contact groups. Self-contained Naftiko capability covering one Google Contacts business surface.
What You Can Do
GET
Listcontactgroups
— List contact groups
/v1/contactgroups
POST
Createcontactgroup
— Create a contact group
/v1/contactgroups
GET
Getcontactgroup
— Get a contact group
/v1/contactgroups/{resourcename}
PUT
Updatecontactgroup
— Update a contact group
/v1/contactgroups/{resourcename}
DELETE
Deletecontactgroup
— Delete a contact group
/v1/contactgroups/{resourcename}
GET
Getperson
— Get a person
/v1/people/{resourcename}
GET
Listconnections
— List contacts
/v1/people/{resourcename}/connections
DELETE
Deletecontact
— Delete a contact
/v1/people/resourcename-deletecontact
PATCH
Updatecontact
— Update a contact
/v1/people/resourcename-updatecontact
POST
Createcontact
— Create a contact
/v1/people-createcontact
GET
Searchcontacts
— Search contacts
/v1/people-searchcontacts
MCP Tools
list-contact-groups
List contact groups
read-only
idempotent
create-contact-group
Create a contact group
get-contact-group
Get a contact group
read-only
idempotent
update-contact-group
Update a contact group
idempotent
delete-contact-group
Delete a contact group
idempotent
get-person
Get a person
read-only
idempotent
list-contacts
List contacts
read-only
idempotent
delete-contact
Delete a contact
idempotent
update-contact
Update a contact
idempotent
create-contact
Create a contact
search-contacts
Search contacts
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Google People API (Contacts)
description: 'Google People API (Contacts). 11 operations. Lead operation: List contact groups. Self-contained Naftiko capability
covering one Google Contacts business surface.'
tags:
- Google Contacts
- Google People API (Contacts)
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
GOOGLE_CONTACTS_API_KEY: GOOGLE_CONTACTS_API_KEY
capability:
consumes:
- type: http
namespace: contacts
baseUri: https://people.googleapis.com/v1
description: Google People API (Contacts) business capability. Self-contained, no shared references.
resources:
- name: contactGroups
path: /contactGroups
operations:
- name: listcontactgroups
method: GET
description: List contact groups
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: pageSize
in: query
type: integer
- name: pageToken
in: query
type: string
- name: createcontactgroup
method: POST
description: Create a contact group
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: contactGroups-resourceName
path: /contactGroups/{resourceName}
operations:
- name: getcontactgroup
method: GET
description: Get a contact group
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: resourceName
in: path
type: string
required: true
- name: maxMembers
in: query
type: integer
- name: updatecontactgroup
method: PUT
description: Update a contact group
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: resourceName
in: path
type: string
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: deletecontactgroup
method: DELETE
description: Delete a contact group
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: resourceName
in: path
type: string
required: true
- name: deleteContacts
in: query
type: boolean
- name: people-resourceName
path: /people/{resourceName}
operations:
- name: getperson
method: GET
description: Get a person
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: resourceName
in: path
type: string
description: The resource name of the person to provide information about.
required: true
- name: personFields
in: query
type: string
description: A field mask to restrict which fields on the person are returned.
- name: people-resourceName-connections
path: /people/{resourceName}/connections
operations:
- name: listconnections
method: GET
description: List contacts
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: resourceName
in: path
type: string
required: true
- name: personFields
in: query
type: string
- name: pageSize
in: query
type: integer
- name: pageToken
in: query
type: string
- name: sortOrder
in: query
type: string
- name: people-resourceName}:deleteContact
path: /people/{resourceName}:deleteContact
operations:
- name: deletecontact
method: DELETE
description: Delete a contact
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: resourceName
in: path
type: string
required: true
- name: people-resourceName}:updateContact
path: /people/{resourceName}:updateContact
operations:
- name: updatecontact
method: PATCH
description: Update a contact
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: resourceName
in: path
type: string
required: true
- name: updatePersonFields
in: query
type: string
- name: personFields
in: query
type: string
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: people:createContact
path: /people:createContact
operations:
- name: createcontact
method: POST
description: Create a contact
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: personFields
in: query
type: string
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: people:searchContacts
path: /people:searchContacts
operations:
- name: searchcontacts
method: GET
description: Search contacts
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: query
in: query
type: string
- name: readMask
in: query
type: string
- name: pageSize
in: query
type: integer
authentication:
type: bearer
token: '{{env.GOOGLE_CONTACTS_API_KEY}}'
exposes:
- type: rest
namespace: contacts-rest
port: 8080
description: REST adapter for Google People API (Contacts). One Spectral-compliant resource per consumed operation, prefixed
with /v1.
resources:
- path: /v1/contactgroups
name: contactgroups
description: REST surface for contactGroups.
operations:
- method: GET
name: listcontactgroups
description: List contact groups
call: contacts.listcontactgroups
with:
pageSize: rest.pageSize
pageToken: rest.pageToken
outputParameters:
- type: object
mapping: $.
- method: POST
name: createcontactgroup
description: Create a contact group
call: contacts.createcontactgroup
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/contactgroups/{resourcename}
name: contactgroups-resourcename
description: REST surface for contactGroups-resourceName.
operations:
- method: GET
name: getcontactgroup
description: Get a contact group
call: contacts.getcontactgroup
with:
resourceName: rest.resourceName
maxMembers: rest.maxMembers
outputParameters:
- type: object
mapping: $.
- method: PUT
name: updatecontactgroup
description: Update a contact group
call: contacts.updatecontactgroup
with:
resourceName: rest.resourceName
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: deletecontactgroup
description: Delete a contact group
call: contacts.deletecontactgroup
with:
resourceName: rest.resourceName
deleteContacts: rest.deleteContacts
outputParameters:
- type: object
mapping: $.
- path: /v1/people/{resourcename}
name: people-resourcename
description: REST surface for people-resourceName.
operations:
- method: GET
name: getperson
description: Get a person
call: contacts.getperson
with:
resourceName: rest.resourceName
personFields: rest.personFields
outputParameters:
- type: object
mapping: $.
- path: /v1/people/{resourcename}/connections
name: people-resourcename-connections
description: REST surface for people-resourceName-connections.
operations:
- method: GET
name: listconnections
description: List contacts
call: contacts.listconnections
with:
resourceName: rest.resourceName
personFields: rest.personFields
pageSize: rest.pageSize
pageToken: rest.pageToken
sortOrder: rest.sortOrder
outputParameters:
- type: object
mapping: $.
- path: /v1/people/resourcename-deletecontact
name: people-resourcename-deletecontact
description: REST surface for people-resourceName}:deleteContact.
operations:
- method: DELETE
name: deletecontact
description: Delete a contact
call: contacts.deletecontact
with:
resourceName: rest.resourceName
outputParameters:
- type: object
mapping: $.
- path: /v1/people/resourcename-updatecontact
name: people-resourcename-updatecontact
description: REST surface for people-resourceName}:updateContact.
operations:
- method: PATCH
name: updatecontact
description: Update a contact
call: contacts.updatecontact
with:
resourceName: rest.resourceName
updatePersonFields: rest.updatePersonFields
personFields: rest.personFields
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/people-createcontact
name: people-createcontact
description: REST surface for people:createContact.
operations:
- method: POST
name: createcontact
description: Create a contact
call: contacts.createcontact
with:
personFields: rest.personFields
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/people-searchcontacts
name: people-searchcontacts
description: REST surface for people:searchContacts.
operations:
- method: GET
name: searchcontacts
description: Search contacts
call: contacts.searchcontacts
with:
query: rest.query
readMask: rest.readMask
pageSize: rest.pageSize
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: contacts-mcp
port: 9090
transport: http
description: MCP adapter for Google People API (Contacts). One tool per consumed operation, routed inline through this
capability's consumes block.
tools:
- name: list-contact-groups
description: List contact groups
hints:
readOnly: true
destructive: false
idempotent: true
call: contacts.listcontactgroups
with:
pageSize: tools.pageSize
pageToken: tools.pageToken
outputParameters:
- type: object
mapping: $.
- name: create-contact-group
description: Create a contact group
hints:
readOnly: false
destructive: false
idempotent: false
call: contacts.createcontactgroup
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: get-contact-group
description: Get a contact group
hints:
readOnly: true
destructive: false
idempotent: true
call: contacts.getcontactgroup
with:
resourceName: tools.resourceName
maxMembers: tools.maxMembers
outputParameters:
- type: object
mapping: $.
- name: update-contact-group
description: Update a contact group
hints:
readOnly: false
destructive: false
idempotent: true
call: contacts.updatecontactgroup
with:
resourceName: tools.resourceName
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: delete-contact-group
description: Delete a contact group
hints:
readOnly: false
destructive: true
idempotent: true
call: contacts.deletecontactgroup
with:
resourceName: tools.resourceName
deleteContacts: tools.deleteContacts
outputParameters:
- type: object
mapping: $.
- name: get-person
description: Get a person
hints:
readOnly: true
destructive: false
idempotent: true
call: contacts.getperson
with:
resourceName: tools.resourceName
personFields: tools.personFields
outputParameters:
- type: object
mapping: $.
- name: list-contacts
description: List contacts
hints:
readOnly: true
destructive: false
idempotent: true
call: contacts.listconnections
with:
resourceName: tools.resourceName
personFields: tools.personFields
pageSize: tools.pageSize
pageToken: tools.pageToken
sortOrder: tools.sortOrder
outputParameters:
- type: object
mapping: $.
- name: delete-contact
description: Delete a contact
hints:
readOnly: false
destructive: true
idempotent: true
call: contacts.deletecontact
with:
resourceName: tools.resourceName
outputParameters:
- type: object
mapping: $.
- name: update-contact
description: Update a contact
hints:
readOnly: false
destructive: false
idempotent: true
call: contacts.updatecontact
with:
resourceName: tools.resourceName
updatePersonFields: tools.updatePersonFields
personFields: tools.personFields
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: create-contact
description: Create a contact
hints:
readOnly: false
destructive: false
idempotent: false
call: contacts.createcontact
with:
personFields: tools.personFields
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: search-contacts
description: Search contacts
hints:
readOnly: true
destructive: false
idempotent: true
call: contacts.searchcontacts
with:
query: tools.query
readMask: tools.readMask
pageSize: tools.pageSize
outputParameters:
- type: object
mapping: $.