Google · Capability

Google Drive API — Changes

Google Drive API — Changes. 3 operations. Lead operation: Google Get Changes. Self-contained Naftiko capability covering one Google business surface.

Run with Naftiko GoogleChanges

What You Can Do

GET
Googledrivechangeslist — Google Get Changes
/v1/changes
GET
Googledrivechangesgetstartpagetoken — Google Get Changes Startpagetoken
/v1/changes/startpagetoken
POST
Googledrivechangeswatch — Google Post Changes Watch
/v1/changes/watch

MCP Tools

google-get-changes

Google Get Changes

read-only idempotent
google-get-changes-startpagetoken

Google Get Changes Startpagetoken

read-only idempotent
google-post-changes-watch

Google Post Changes Watch

Capability Spec

drive-changes.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Google Drive API — Changes
  description: 'Google Drive API — Changes. 3 operations. Lead operation: Google Get Changes. Self-contained Naftiko capability
    covering one Google business surface.'
  tags:
  - Google
  - Changes
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    GOOGLE_API_KEY: GOOGLE_API_KEY
capability:
  consumes:
  - type: http
    namespace: drive-changes
    baseUri: https://www.googleapis.com/drive/v3
    description: Google Drive API — Changes business capability. Self-contained, no shared references.
    resources:
    - name: changes
      path: /changes
      operations:
      - name: googledrivechangeslist
        method: GET
        description: Google Get Changes
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: pageToken
          in: query
          type: string
          description: The token for continuing a previous list request on the next page. This should be set to the value
            of 'nextPageToken' from the previous response or to the respo
          required: true
        - name: driveId
          in: query
          type: string
          description: The shared drive from which changes will be returned. If specified the change IDs will be reflective
            of the shared drive; use the combined drive ID and change I
        - name: includeCorpusRemovals
          in: query
          type: boolean
          description: Whether changes should include the file resource if the file is still accessible by the user at the
            time of the request, even when a file was removed from the l
        - name: includeItemsFromAllDrives
          in: query
          type: boolean
          description: Whether both My Drive and shared drive items should be included in results.
        - name: includeLabels
          in: query
          type: string
          description: A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.
        - name: includePermissionsForView
          in: query
          type: string
          description: Specifies which additional view's permissions to include in the response. Only 'published' is supported.
        - name: includeRemoved
          in: query
          type: boolean
          description: Whether to include changes indicating that items have been removed from the list of changes, for example
            by deletion or loss of access.
        - name: includeTeamDriveItems
          in: query
          type: boolean
          description: 'Deprecated: Use `includeItemsFromAllDrives` instead.'
        - name: pageSize
          in: query
          type: integer
          description: The maximum number of changes to return per page.
        - name: restrictToMyDrive
          in: query
          type: boolean
          description: Whether to restrict the results to changes inside the My Drive hierarchy. This omits changes to files
            such as those in the Application Data folder or shared fil
        - name: spaces
          in: query
          type: string
          description: A comma-separated list of spaces to query within the corpora. Supported values are 'drive' and 'appDataFolder'.
        - name: supportsAllDrives
          in: query
          type: boolean
          description: Whether the requesting application supports both My Drives and shared drives.
        - name: supportsTeamDrives
          in: query
          type: boolean
          description: 'Deprecated: Use `supportsAllDrives` instead.'
        - name: teamDriveId
          in: query
          type: string
          description: 'Deprecated: Use `driveId` instead.'
        - name: Authorization
          in: header
          type: string
        - name: $.xgafv
          in: query
          type: string
          description: V1 error format.
        - name: access_token
          in: query
          type: string
          description: OAuth access token.
        - name: alt
          in: query
          type: string
          description: Data format for response.
        - name: callback
          in: query
          type: string
          description: JSONP
        - name: fields
          in: query
          type: string
          description: Selector specifying which fields to include in a partial response.
        - name: key
          in: query
          type: string
          description: API key. Your API key identifies your project and provides you with API access, quota, and reports.
            Required unless you provide an OAuth 2.0 token.
        - name: oauth_token
          in: query
          type: string
          description: OAuth 2.0 token for the current user.
        - name: prettyPrint
          in: query
          type: boolean
          description: Returns response with indentations and line breaks.
        - name: quotaUser
          in: query
          type: string
          description: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned
            to a user, but should not exceed 40 characters.
        - name: upload_protocol
          in: query
          type: string
          description: Upload protocol for media (e.g. "raw", "multipart").
        - name: uploadType
          in: query
          type: string
          description: Legacy upload protocol for media (e.g. "media", "multipart").
    - name: changes-startPageToken
      path: /changes/startPageToken
      operations:
      - name: googledrivechangesgetstartpagetoken
        method: GET
        description: Google Get Changes Startpagetoken
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: driveId
          in: query
          type: string
          description: The ID of the shared drive for which the starting pageToken for listing future changes from that shared
            drive will be returned.
        - name: supportsAllDrives
          in: query
          type: boolean
          description: Whether the requesting application supports both My Drives and shared drives.
        - name: supportsTeamDrives
          in: query
          type: boolean
          description: 'Deprecated: Use `supportsAllDrives` instead.'
        - name: teamDriveId
          in: query
          type: string
          description: 'Deprecated: Use `driveId` instead.'
        - name: Authorization
          in: header
          type: string
        - name: $.xgafv
          in: query
          type: string
          description: V1 error format.
        - name: access_token
          in: query
          type: string
          description: OAuth access token.
        - name: alt
          in: query
          type: string
          description: Data format for response.
        - name: callback
          in: query
          type: string
          description: JSONP
        - name: fields
          in: query
          type: string
          description: Selector specifying which fields to include in a partial response.
        - name: key
          in: query
          type: string
          description: API key. Your API key identifies your project and provides you with API access, quota, and reports.
            Required unless you provide an OAuth 2.0 token.
        - name: oauth_token
          in: query
          type: string
          description: OAuth 2.0 token for the current user.
        - name: prettyPrint
          in: query
          type: boolean
          description: Returns response with indentations and line breaks.
        - name: quotaUser
          in: query
          type: string
          description: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned
            to a user, but should not exceed 40 characters.
        - name: upload_protocol
          in: query
          type: string
          description: Upload protocol for media (e.g. "raw", "multipart").
        - name: uploadType
          in: query
          type: string
          description: Legacy upload protocol for media (e.g. "media", "multipart").
    - name: changes-watch
      path: /changes/watch
      operations:
      - name: googledrivechangeswatch
        method: POST
        description: Google Post Changes Watch
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: pageToken
          in: query
          type: string
          description: The token for continuing a previous list request on the next page. This should be set to the value
            of 'nextPageToken' from the previous response or to the respo
          required: true
        - name: driveId
          in: query
          type: string
          description: The shared drive from which changes will be returned. If specified the change IDs will be reflective
            of the shared drive; use the combined drive ID and change I
        - name: includeCorpusRemovals
          in: query
          type: boolean
          description: Whether changes should include the file resource if the file is still accessible by the user at the
            time of the request, even when a file was removed from the l
        - name: includeItemsFromAllDrives
          in: query
          type: boolean
          description: Whether both My Drive and shared drive items should be included in results.
        - name: includeLabels
          in: query
          type: string
          description: A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.
        - name: includePermissionsForView
          in: query
          type: string
          description: Specifies which additional view's permissions to include in the response. Only 'published' is supported.
        - name: includeRemoved
          in: query
          type: boolean
          description: Whether to include changes indicating that items have been removed from the list of changes, for example
            by deletion or loss of access.
        - name: includeTeamDriveItems
          in: query
          type: boolean
          description: 'Deprecated: Use `includeItemsFromAllDrives` instead.'
        - name: pageSize
          in: query
          type: integer
          description: The maximum number of changes to return per page.
        - name: restrictToMyDrive
          in: query
          type: boolean
          description: Whether to restrict the results to changes inside the My Drive hierarchy. This omits changes to files
            such as those in the Application Data folder or shared fil
        - name: spaces
          in: query
          type: string
          description: A comma-separated list of spaces to query within the corpora. Supported values are 'drive' and 'appDataFolder'.
        - name: supportsAllDrives
          in: query
          type: boolean
          description: Whether the requesting application supports both My Drives and shared drives.
        - name: supportsTeamDrives
          in: query
          type: boolean
          description: 'Deprecated: Use `supportsAllDrives` instead.'
        - name: teamDriveId
          in: query
          type: string
          description: 'Deprecated: Use `driveId` instead.'
        - name: Authorization
          in: header
          type: string
        - name: $.xgafv
          in: query
          type: string
          description: V1 error format.
        - name: access_token
          in: query
          type: string
          description: OAuth access token.
        - name: alt
          in: query
          type: string
          description: Data format for response.
        - name: callback
          in: query
          type: string
          description: JSONP
        - name: fields
          in: query
          type: string
          description: Selector specifying which fields to include in a partial response.
        - name: key
          in: query
          type: string
          description: API key. Your API key identifies your project and provides you with API access, quota, and reports.
            Required unless you provide an OAuth 2.0 token.
        - name: oauth_token
          in: query
          type: string
          description: OAuth 2.0 token for the current user.
        - name: prettyPrint
          in: query
          type: boolean
          description: Returns response with indentations and line breaks.
        - name: quotaUser
          in: query
          type: string
          description: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned
            to a user, but should not exceed 40 characters.
        - name: upload_protocol
          in: query
          type: string
          description: Upload protocol for media (e.g. "raw", "multipart").
        - name: uploadType
          in: query
          type: string
          description: Legacy upload protocol for media (e.g. "media", "multipart").
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    authentication:
      type: bearer
      token: '{{env.GOOGLE_API_KEY}}'
  exposes:
  - type: rest
    namespace: drive-changes-rest
    port: 8080
    description: REST adapter for Google Drive API — Changes. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/changes
      name: changes
      description: REST surface for changes.
      operations:
      - method: GET
        name: googledrivechangeslist
        description: Google Get Changes
        call: drive-changes.googledrivechangeslist
        with:
          pageToken: rest.pageToken
          driveId: rest.driveId
          includeCorpusRemovals: rest.includeCorpusRemovals
          includeItemsFromAllDrives: rest.includeItemsFromAllDrives
          includeLabels: rest.includeLabels
          includePermissionsForView: rest.includePermissionsForView
          includeRemoved: rest.includeRemoved
          includeTeamDriveItems: rest.includeTeamDriveItems
          pageSize: rest.pageSize
          restrictToMyDrive: rest.restrictToMyDrive
          spaces: rest.spaces
          supportsAllDrives: rest.supportsAllDrives
          supportsTeamDrives: rest.supportsTeamDrives
          teamDriveId: rest.teamDriveId
          Authorization: rest.Authorization
          $.xgafv: rest.$.xgafv
          access_token: rest.access_token
          alt: rest.alt
          callback: rest.callback
          fields: rest.fields
          key: rest.key
          oauth_token: rest.oauth_token
          prettyPrint: rest.prettyPrint
          quotaUser: rest.quotaUser
          upload_protocol: rest.upload_protocol
          uploadType: rest.uploadType
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/changes/startpagetoken
      name: changes-startpagetoken
      description: REST surface for changes-startPageToken.
      operations:
      - method: GET
        name: googledrivechangesgetstartpagetoken
        description: Google Get Changes Startpagetoken
        call: drive-changes.googledrivechangesgetstartpagetoken
        with:
          driveId: rest.driveId
          supportsAllDrives: rest.supportsAllDrives
          supportsTeamDrives: rest.supportsTeamDrives
          teamDriveId: rest.teamDriveId
          Authorization: rest.Authorization
          $.xgafv: rest.$.xgafv
          access_token: rest.access_token
          alt: rest.alt
          callback: rest.callback
          fields: rest.fields
          key: rest.key
          oauth_token: rest.oauth_token
          prettyPrint: rest.prettyPrint
          quotaUser: rest.quotaUser
          upload_protocol: rest.upload_protocol
          uploadType: rest.uploadType
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/changes/watch
      name: changes-watch
      description: REST surface for changes-watch.
      operations:
      - method: POST
        name: googledrivechangeswatch
        description: Google Post Changes Watch
        call: drive-changes.googledrivechangeswatch
        with:
          pageToken: rest.pageToken
          driveId: rest.driveId
          includeCorpusRemovals: rest.includeCorpusRemovals
          includeItemsFromAllDrives: rest.includeItemsFromAllDrives
          includeLabels: rest.includeLabels
          includePermissionsForView: rest.includePermissionsForView
          includeRemoved: rest.includeRemoved
          includeTeamDriveItems: rest.includeTeamDriveItems
          pageSize: rest.pageSize
          restrictToMyDrive: rest.restrictToMyDrive
          spaces: rest.spaces
          supportsAllDrives: rest.supportsAllDrives
          supportsTeamDrives: rest.supportsTeamDrives
          teamDriveId: rest.teamDriveId
          Authorization: rest.Authorization
          $.xgafv: rest.$.xgafv
          access_token: rest.access_token
          alt: rest.alt
          callback: rest.callback
          fields: rest.fields
          key: rest.key
          oauth_token: rest.oauth_token
          prettyPrint: rest.prettyPrint
          quotaUser: rest.quotaUser
          upload_protocol: rest.upload_protocol
          uploadType: rest.uploadType
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: drive-changes-mcp
    port: 9090
    transport: http
    description: MCP adapter for Google Drive API — Changes. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: google-get-changes
      description: Google Get Changes
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: drive-changes.googledrivechangeslist
      with:
        pageToken: tools.pageToken
        driveId: tools.driveId
        includeCorpusRemovals: tools.includeCorpusRemovals
        includeItemsFromAllDrives: tools.includeItemsFromAllDrives
        includeLabels: tools.includeLabels
        includePermissionsForView: tools.includePermissionsForView
        includeRemoved: tools.includeRemoved
        includeTeamDriveItems: tools.includeTeamDriveItems
        pageSize: tools.pageSize
        restrictToMyDrive: tools.restrictToMyDrive
        spaces: tools.spaces
        supportsAllDrives: tools.supportsAllDrives
        supportsTeamDrives: tools.supportsTeamDrives
        teamDriveId: tools.teamDriveId
        Authorization: tools.Authorization
        $.xgafv: tools.$.xgafv
        access_token: tools.access_token
        alt: tools.alt
        callback: tools.callback
        fields: tools.fields
        key: tools.key
        oauth_token: tools.oauth_token
        prettyPrint: tools.prettyPrint
        quotaUser: tools.quotaUser
        upload_protocol: tools.upload_protocol
        uploadType: tools.uploadType
      outputParameters:
      - type: object
        mapping: $.
    - name: google-get-changes-startpagetoken
      description: Google Get Changes Startpagetoken
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: drive-changes.googledrivechangesgetstartpagetoken
      with:
        driveId: tools.driveId
        supportsAllDrives: tools.supportsAllDrives
        supportsTeamDrives: tools.supportsTeamDrives
        teamDriveId: tools.teamDriveId
        Authorization: tools.Authorization
        $.xgafv: tools.$.xgafv
        access_token: tools.access_token
        alt: tools.alt
        callback: tools.callback
        fields: tools.fields
        key: tools.key
        oauth_token: tools.oauth_token
        prettyPrint: tools.prettyPrint
        quotaUser: tools.quotaUser
        upload_protocol: tools.upload_protocol
        uploadType: tools.uploadType
      outputParameters:
      - type: object
        mapping: $.
    - name: google-post-changes-watch
      description: Google Post Changes Watch
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: drive-changes.googledrivechangeswatch
      with:
        pageToken: tools.pageToken
        driveId: tools.driveId
        includeCorpusRemovals: tools.includeCorpusRemovals
        includeItemsFromAllDrives: tools.includeItemsFromAllDrives
        includeLabels: tools.includeLabels
        includePermissionsForView: tools.includePermissionsForView
        includeRemoved: tools.includeRemoved
        includeTeamDriveItems: tools.includeTeamDriveItems
        pageSize: tools.pageSize
        restrictToMyDrive: tools.restrictToMyDrive
        spaces: tools.spaces
        supportsAllDrives: tools.supportsAllDrives
        supportsTeamDrives: tools.supportsTeamDrives
        teamDriveId: tools.teamDriveId
        Authorization: tools.Authorization
        $.xgafv: tools.$.xgafv
        access_token: tools.access_token
        alt: tools.alt
        callback: tools.callback
        fields: tools.fields
        key: tools.key
        oauth_token: tools.oauth_token
        prettyPrint: tools.prettyPrint
        quotaUser: tools.quotaUser
        upload_protocol: tools.upload_protocol
        uploadType: tools.uploadType
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.