Google · Capability

Google Books API — My Library

Google Books API — My Library. 7 operations. Lead operation: Google List My Bookshelves. Self-contained Naftiko capability covering one Google business surface.

Run with Naftiko GoogleMy Library

What You Can Do

GET
Listmybookshelves — Google List My Bookshelves
/v1/mylibrary/bookshelves
GET
Getmybookshelf — Google Get My Bookshelf
/v1/mylibrary/bookshelves/{shelf}
POST
Addvolumetobookshelf — Google Add Volume to Bookshelf
/v1/mylibrary/bookshelves/{shelf}/addvolume
POST
Clearvolumesfrombookshelf — Google Clear Volumes from Bookshelf
/v1/mylibrary/bookshelves/{shelf}/clearvolumes
POST
Movevolumeinbookshelf — Google Move Volume in Bookshelf
/v1/mylibrary/bookshelves/{shelf}/movevolume
POST
Removevolumefrombookshelf — Google Remove Volume from Bookshelf
/v1/mylibrary/bookshelves/{shelf}/removevolume
GET
Listmybookshelfvolumes — Google List My Bookshelf Volumes
/v1/mylibrary/bookshelves/{shelf}/volumes

MCP Tools

google-list-my-bookshelves

Google List My Bookshelves

read-only idempotent
google-get-my-bookshelf

Google Get My Bookshelf

read-only idempotent
google-add-volume-bookshelf

Google Add Volume to Bookshelf

google-clear-volumes-bookshelf

Google Clear Volumes from Bookshelf

google-move-volume-bookshelf

Google Move Volume in Bookshelf

google-remove-volume-bookshelf

Google Remove Volume from Bookshelf

google-list-my-bookshelf-volumes

Google List My Bookshelf Volumes

read-only idempotent

Capability Spec

books-my-library.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Google Books API — My Library
  description: 'Google Books API — My Library. 7 operations. Lead operation: Google List My Bookshelves. Self-contained Naftiko
    capability covering one Google business surface.'
  tags:
  - Google
  - My Library
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    GOOGLE_API_KEY: GOOGLE_API_KEY
capability:
  consumes:
  - type: http
    namespace: books-my-library
    baseUri: https://www.googleapis.com/books/v1
    description: Google Books API — My Library business capability. Self-contained, no shared references.
    resources:
    - name: mylibrary-bookshelves
      path: /mylibrary/bookshelves
      operations:
      - name: listmybookshelves
        method: GET
        description: Google List My Bookshelves
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: source
          in: query
          type: string
          description: String to identify the originator of this request
    - name: mylibrary-bookshelves-shelf
      path: /mylibrary/bookshelves/{shelf}
      operations:
      - name: getmybookshelf
        method: GET
        description: Google Get My Bookshelf
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: shelf
          in: path
          type: string
          description: ID of bookshelf to retrieve
          required: true
        - name: source
          in: query
          type: string
          description: String to identify the originator of this request
    - name: mylibrary-bookshelves-shelf-addVolume
      path: /mylibrary/bookshelves/{shelf}/addVolume
      operations:
      - name: addvolumetobookshelf
        method: POST
        description: Google Add Volume to Bookshelf
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: shelf
          in: path
          type: string
          description: ID of bookshelf to which to add a volume
          required: true
        - name: volumeId
          in: query
          type: string
          description: ID of volume to add
          required: true
        - name: source
          in: query
          type: string
          description: String to identify the originator of this request
    - name: mylibrary-bookshelves-shelf-clearVolumes
      path: /mylibrary/bookshelves/{shelf}/clearVolumes
      operations:
      - name: clearvolumesfrombookshelf
        method: POST
        description: Google Clear Volumes from Bookshelf
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: shelf
          in: path
          type: string
          description: ID of bookshelf from which to remove all volumes
          required: true
        - name: source
          in: query
          type: string
          description: String to identify the originator of this request
    - name: mylibrary-bookshelves-shelf-moveVolume
      path: /mylibrary/bookshelves/{shelf}/moveVolume
      operations:
      - name: movevolumeinbookshelf
        method: POST
        description: Google Move Volume in Bookshelf
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: shelf
          in: path
          type: string
          description: ID of bookshelf with the volume
          required: true
        - name: volumeId
          in: query
          type: string
          description: ID of volume to move
          required: true
        - name: volumePosition
          in: query
          type: integer
          description: Position on shelf to move the item (0 puts the item before the current first item, 1 puts it between
            the first and the second and so on)
          required: true
        - name: source
          in: query
          type: string
          description: String to identify the originator of this request
    - name: mylibrary-bookshelves-shelf-removeVolume
      path: /mylibrary/bookshelves/{shelf}/removeVolume
      operations:
      - name: removevolumefrombookshelf
        method: POST
        description: Google Remove Volume from Bookshelf
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: shelf
          in: path
          type: string
          description: ID of bookshelf from which to remove a volume
          required: true
        - name: volumeId
          in: query
          type: string
          description: ID of volume to remove
          required: true
        - name: source
          in: query
          type: string
          description: String to identify the originator of this request
    - name: mylibrary-bookshelves-shelf-volumes
      path: /mylibrary/bookshelves/{shelf}/volumes
      operations:
      - name: listmybookshelfvolumes
        method: GET
        description: Google List My Bookshelf Volumes
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: shelf
          in: path
          type: string
          description: The bookshelf ID or name to retrieve volumes for
          required: true
        - name: maxResults
          in: query
          type: integer
          description: Maximum number of results to return
        - name: projection
          in: query
          type: string
          description: Restrict information returned to a set of selected fields
        - name: q
          in: query
          type: string
          description: Full-text search query string in this bookshelf
        - name: showPreorders
          in: query
          type: boolean
          description: Set to true to show pre-ordered books
        - name: source
          in: query
          type: string
          description: String to identify the originator of this request
        - name: startIndex
          in: query
          type: integer
          description: Index of the first element to return (starts at 0)
    authentication:
      type: bearer
      token: '{{env.GOOGLE_API_KEY}}'
  exposes:
  - type: rest
    namespace: books-my-library-rest
    port: 8080
    description: REST adapter for Google Books API — My Library. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/mylibrary/bookshelves
      name: mylibrary-bookshelves
      description: REST surface for mylibrary-bookshelves.
      operations:
      - method: GET
        name: listmybookshelves
        description: Google List My Bookshelves
        call: books-my-library.listmybookshelves
        with:
          source: rest.source
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/mylibrary/bookshelves/{shelf}
      name: mylibrary-bookshelves-shelf
      description: REST surface for mylibrary-bookshelves-shelf.
      operations:
      - method: GET
        name: getmybookshelf
        description: Google Get My Bookshelf
        call: books-my-library.getmybookshelf
        with:
          shelf: rest.shelf
          source: rest.source
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/mylibrary/bookshelves/{shelf}/addvolume
      name: mylibrary-bookshelves-shelf-addvolume
      description: REST surface for mylibrary-bookshelves-shelf-addVolume.
      operations:
      - method: POST
        name: addvolumetobookshelf
        description: Google Add Volume to Bookshelf
        call: books-my-library.addvolumetobookshelf
        with:
          shelf: rest.shelf
          volumeId: rest.volumeId
          source: rest.source
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/mylibrary/bookshelves/{shelf}/clearvolumes
      name: mylibrary-bookshelves-shelf-clearvolumes
      description: REST surface for mylibrary-bookshelves-shelf-clearVolumes.
      operations:
      - method: POST
        name: clearvolumesfrombookshelf
        description: Google Clear Volumes from Bookshelf
        call: books-my-library.clearvolumesfrombookshelf
        with:
          shelf: rest.shelf
          source: rest.source
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/mylibrary/bookshelves/{shelf}/movevolume
      name: mylibrary-bookshelves-shelf-movevolume
      description: REST surface for mylibrary-bookshelves-shelf-moveVolume.
      operations:
      - method: POST
        name: movevolumeinbookshelf
        description: Google Move Volume in Bookshelf
        call: books-my-library.movevolumeinbookshelf
        with:
          shelf: rest.shelf
          volumeId: rest.volumeId
          volumePosition: rest.volumePosition
          source: rest.source
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/mylibrary/bookshelves/{shelf}/removevolume
      name: mylibrary-bookshelves-shelf-removevolume
      description: REST surface for mylibrary-bookshelves-shelf-removeVolume.
      operations:
      - method: POST
        name: removevolumefrombookshelf
        description: Google Remove Volume from Bookshelf
        call: books-my-library.removevolumefrombookshelf
        with:
          shelf: rest.shelf
          volumeId: rest.volumeId
          source: rest.source
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/mylibrary/bookshelves/{shelf}/volumes
      name: mylibrary-bookshelves-shelf-volumes
      description: REST surface for mylibrary-bookshelves-shelf-volumes.
      operations:
      - method: GET
        name: listmybookshelfvolumes
        description: Google List My Bookshelf Volumes
        call: books-my-library.listmybookshelfvolumes
        with:
          shelf: rest.shelf
          maxResults: rest.maxResults
          projection: rest.projection
          q: rest.q
          showPreorders: rest.showPreorders
          source: rest.source
          startIndex: rest.startIndex
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: books-my-library-mcp
    port: 9090
    transport: http
    description: MCP adapter for Google Books API — My Library. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: google-list-my-bookshelves
      description: Google List My Bookshelves
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: books-my-library.listmybookshelves
      with:
        source: tools.source
      outputParameters:
      - type: object
        mapping: $.
    - name: google-get-my-bookshelf
      description: Google Get My Bookshelf
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: books-my-library.getmybookshelf
      with:
        shelf: tools.shelf
        source: tools.source
      outputParameters:
      - type: object
        mapping: $.
    - name: google-add-volume-bookshelf
      description: Google Add Volume to Bookshelf
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: books-my-library.addvolumetobookshelf
      with:
        shelf: tools.shelf
        volumeId: tools.volumeId
        source: tools.source
      outputParameters:
      - type: object
        mapping: $.
    - name: google-clear-volumes-bookshelf
      description: Google Clear Volumes from Bookshelf
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: books-my-library.clearvolumesfrombookshelf
      with:
        shelf: tools.shelf
        source: tools.source
      outputParameters:
      - type: object
        mapping: $.
    - name: google-move-volume-bookshelf
      description: Google Move Volume in Bookshelf
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: books-my-library.movevolumeinbookshelf
      with:
        shelf: tools.shelf
        volumeId: tools.volumeId
        volumePosition: tools.volumePosition
        source: tools.source
      outputParameters:
      - type: object
        mapping: $.
    - name: google-remove-volume-bookshelf
      description: Google Remove Volume from Bookshelf
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: books-my-library.removevolumefrombookshelf
      with:
        shelf: tools.shelf
        volumeId: tools.volumeId
        source: tools.source
      outputParameters:
      - type: object
        mapping: $.
    - name: google-list-my-bookshelf-volumes
      description: Google List My Bookshelf Volumes
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: books-my-library.listmybookshelfvolumes
      with:
        shelf: tools.shelf
        maxResults: tools.maxResults
        projection: tools.projection
        q: tools.q
        showPreorders: tools.showPreorders
        source: tools.source
        startIndex: tools.startIndex
      outputParameters:
      - type: object
        mapping: $.