Google People API · Capability

Google People API (Contacts)

The Google People API provides access to information about profiles and contacts. It allows you to list, create, update, delete, and search contacts, as well as manage contact groups. It replaces the legacy Google Contacts API.

Run with Naftiko GoogleContactsAPI

What You Can Do

GET
Getperson — Get a person
/people/{resourceName}
GET
Listconnections — List contacts
/people/{resourceName}/connections
POST
Createcontact — Create a contact
/people:createContact
PATCH
Updatecontact — Update a contact
/people/{resourceName}:updateContact
DELETE
Deletecontact — Delete a contact
/people/{resourceName}:deleteContact
GET
Searchcontacts — Search contacts
/people:searchContacts
GET
Listcontactgroups — List contact groups
/contactGroups
POST
Createcontactgroup — Create a contact group
/contactGroups
GET
Getcontactgroup — Get a contact group
/contactGroups/{resourceName}
PUT
Updatecontactgroup — Update a contact group
/contactGroups/{resourceName}
DELETE
Deletecontactgroup — Delete a contact group
/contactGroups/{resourceName}

MCP Tools

getperson

Get a person

read-only idempotent
listconnections

List contacts

read-only idempotent
createcontact

Create a contact

updatecontact

Update a contact

deletecontact

Delete a contact

idempotent
searchcontacts

Search contacts

read-only idempotent
listcontactgroups

List contact groups

read-only idempotent
createcontactgroup

Create a contact group

getcontactgroup

Get a contact group

read-only idempotent
updatecontactgroup

Update a contact group

idempotent
deletecontactgroup

Delete a contact group

idempotent

Capability Spec

google-contacts-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Google People API (Contacts)
  description: The Google People API provides access to information about profiles and contacts. It allows you to list, create,
    update, delete, and search contacts, as well as manage contact groups. It replaces the legacy Google Contacts API.
  tags:
  - Google
  - Contacts
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: google-contacts
    baseUri: https://people.googleapis.com/v1
    description: Google People API (Contacts) HTTP API.
    authentication:
      type: bearer
      token: '{{GOOGLE_CONTACTS_TOKEN}}'
    resources:
    - name: people-resourcename
      path: /people/{resourceName}
      operations:
      - name: getperson
        method: GET
        description: Get a person
        inputParameters:
        - name: resourceName
          in: path
          type: string
          required: true
          description: The resource name of the person to provide information about.
        - name: personFields
          in: query
          type: string
          description: A field mask to restrict which fields on the person are returned.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: people-resourcename-connections
      path: /people/{resourceName}/connections
      operations:
      - name: listconnections
        method: GET
        description: List contacts
        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
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: people-createcontact
      path: /people:createContact
      operations:
      - name: createcontact
        method: POST
        description: Create a contact
        inputParameters:
        - name: personFields
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: people-resourcename-updatecontact
      path: /people/{resourceName}:updateContact
      operations:
      - name: updatecontact
        method: PATCH
        description: Update a contact
        inputParameters:
        - name: resourceName
          in: path
          type: string
          required: true
        - name: updatePersonFields
          in: query
          type: string
        - name: personFields
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: people-resourcename-deletecontact
      path: /people/{resourceName}:deleteContact
      operations:
      - name: deletecontact
        method: DELETE
        description: Delete a contact
        inputParameters:
        - name: resourceName
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: people-searchcontacts
      path: /people:searchContacts
      operations:
      - name: searchcontacts
        method: GET
        description: Search contacts
        inputParameters:
        - name: query
          in: query
          type: string
        - name: readMask
          in: query
          type: string
        - name: pageSize
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: contactgroups
      path: /contactGroups
      operations:
      - name: listcontactgroups
        method: GET
        description: List contact groups
        inputParameters:
        - name: pageSize
          in: query
          type: integer
        - name: pageToken
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createcontactgroup
        method: POST
        description: Create a contact group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: contactgroups-resourcename
      path: /contactGroups/{resourceName}
      operations:
      - name: getcontactgroup
        method: GET
        description: Get a contact group
        inputParameters:
        - name: resourceName
          in: path
          type: string
          required: true
        - name: maxMembers
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatecontactgroup
        method: PUT
        description: Update a contact group
        inputParameters:
        - name: resourceName
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletecontactgroup
        method: DELETE
        description: Delete a contact group
        inputParameters:
        - name: resourceName
          in: path
          type: string
          required: true
        - name: deleteContacts
          in: query
          type: boolean
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: google-contacts-rest
    description: REST adapter for Google People API (Contacts).
    resources:
    - path: /people/{resourceName}
      name: getperson
      operations:
      - method: GET
        name: getperson
        description: Get a person
        call: google-contacts.getperson
        with:
          resourceName: rest.resourceName
        outputParameters:
        - type: object
          mapping: $.
    - path: /people/{resourceName}/connections
      name: listconnections
      operations:
      - method: GET
        name: listconnections
        description: List contacts
        call: google-contacts.listconnections
        with:
          resourceName: rest.resourceName
        outputParameters:
        - type: object
          mapping: $.
    - path: /people:createContact
      name: createcontact
      operations:
      - method: POST
        name: createcontact
        description: Create a contact
        call: google-contacts.createcontact
        outputParameters:
        - type: object
          mapping: $.
    - path: /people/{resourceName}:updateContact
      name: updatecontact
      operations:
      - method: PATCH
        name: updatecontact
        description: Update a contact
        call: google-contacts.updatecontact
        with:
          resourceName: rest.resourceName
        outputParameters:
        - type: object
          mapping: $.
    - path: /people/{resourceName}:deleteContact
      name: deletecontact
      operations:
      - method: DELETE
        name: deletecontact
        description: Delete a contact
        call: google-contacts.deletecontact
        with:
          resourceName: rest.resourceName
        outputParameters:
        - type: object
          mapping: $.
    - path: /people:searchContacts
      name: searchcontacts
      operations:
      - method: GET
        name: searchcontacts
        description: Search contacts
        call: google-contacts.searchcontacts
        outputParameters:
        - type: object
          mapping: $.
    - path: /contactGroups
      name: listcontactgroups
      operations:
      - method: GET
        name: listcontactgroups
        description: List contact groups
        call: google-contacts.listcontactgroups
        outputParameters:
        - type: object
          mapping: $.
    - path: /contactGroups
      name: createcontactgroup
      operations:
      - method: POST
        name: createcontactgroup
        description: Create a contact group
        call: google-contacts.createcontactgroup
        outputParameters:
        - type: object
          mapping: $.
    - path: /contactGroups/{resourceName}
      name: getcontactgroup
      operations:
      - method: GET
        name: getcontactgroup
        description: Get a contact group
        call: google-contacts.getcontactgroup
        with:
          resourceName: rest.resourceName
        outputParameters:
        - type: object
          mapping: $.
    - path: /contactGroups/{resourceName}
      name: updatecontactgroup
      operations:
      - method: PUT
        name: updatecontactgroup
        description: Update a contact group
        call: google-contacts.updatecontactgroup
        with:
          resourceName: rest.resourceName
        outputParameters:
        - type: object
          mapping: $.
    - path: /contactGroups/{resourceName}
      name: deletecontactgroup
      operations:
      - method: DELETE
        name: deletecontactgroup
        description: Delete a contact group
        call: google-contacts.deletecontactgroup
        with:
          resourceName: rest.resourceName
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: google-contacts-mcp
    transport: http
    description: MCP adapter for Google People API (Contacts) for AI agent use.
    tools:
    - name: getperson
      description: Get a person
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-contacts.getperson
      with:
        resourceName: tools.resourceName
        personFields: tools.personFields
      inputParameters:
      - name: resourceName
        type: string
        description: The resource name of the person to provide information about.
        required: true
      - name: personFields
        type: string
        description: A field mask to restrict which fields on the person are returned.
      outputParameters:
      - type: object
        mapping: $.
    - name: listconnections
      description: List contacts
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-contacts.listconnections
      with:
        resourceName: tools.resourceName
        personFields: tools.personFields
        pageSize: tools.pageSize
        pageToken: tools.pageToken
        sortOrder: tools.sortOrder
      inputParameters:
      - name: resourceName
        type: string
        description: resourceName
        required: true
      - name: personFields
        type: string
        description: personFields
      - name: pageSize
        type: integer
        description: pageSize
      - name: pageToken
        type: string
        description: pageToken
      - name: sortOrder
        type: string
        description: sortOrder
      outputParameters:
      - type: object
        mapping: $.
    - name: createcontact
      description: Create a contact
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-contacts.createcontact
      with:
        personFields: tools.personFields
      inputParameters:
      - name: personFields
        type: string
        description: personFields
      outputParameters:
      - type: object
        mapping: $.
    - name: updatecontact
      description: Update a contact
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-contacts.updatecontact
      with:
        resourceName: tools.resourceName
        updatePersonFields: tools.updatePersonFields
        personFields: tools.personFields
      inputParameters:
      - name: resourceName
        type: string
        description: resourceName
        required: true
      - name: updatePersonFields
        type: string
        description: updatePersonFields
      - name: personFields
        type: string
        description: personFields
      outputParameters:
      - type: object
        mapping: $.
    - name: deletecontact
      description: Delete a contact
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: google-contacts.deletecontact
      with:
        resourceName: tools.resourceName
      inputParameters:
      - name: resourceName
        type: string
        description: resourceName
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: searchcontacts
      description: Search contacts
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-contacts.searchcontacts
      with:
        query: tools.query
        readMask: tools.readMask
        pageSize: tools.pageSize
      inputParameters:
      - name: query
        type: string
        description: query
      - name: readMask
        type: string
        description: readMask
      - name: pageSize
        type: integer
        description: pageSize
      outputParameters:
      - type: object
        mapping: $.
    - name: listcontactgroups
      description: List contact groups
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-contacts.listcontactgroups
      with:
        pageSize: tools.pageSize
        pageToken: tools.pageToken
      inputParameters:
      - name: pageSize
        type: integer
        description: pageSize
      - name: pageToken
        type: string
        description: pageToken
      outputParameters:
      - type: object
        mapping: $.
    - name: createcontactgroup
      description: Create a contact group
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-contacts.createcontactgroup
      outputParameters:
      - type: object
        mapping: $.
    - name: getcontactgroup
      description: Get a contact group
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-contacts.getcontactgroup
      with:
        resourceName: tools.resourceName
        maxMembers: tools.maxMembers
      inputParameters:
      - name: resourceName
        type: string
        description: resourceName
        required: true
      - name: maxMembers
        type: integer
        description: maxMembers
      outputParameters:
      - type: object
        mapping: $.
    - name: updatecontactgroup
      description: Update a contact group
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: google-contacts.updatecontactgroup
      with:
        resourceName: tools.resourceName
      inputParameters:
      - name: resourceName
        type: string
        description: resourceName
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: deletecontactgroup
      description: Delete a contact group
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: google-contacts.deletecontactgroup
      with:
        resourceName: tools.resourceName
        deleteContacts: tools.deleteContacts
      inputParameters:
      - name: resourceName
        type: string
        description: resourceName
        required: true
      - name: deleteContacts
        type: boolean
        description: deleteContacts
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    GOOGLE_CONTACTS_TOKEN: GOOGLE_CONTACTS_TOKEN