Google · Capability

Google Books API

API for retrieving Bookshelf and Volume resources from Google Books

Run with Naftiko GoogleAPI

What You Can Do

GET
Listvolumes — Google List Volumes
/volumes
GET
Getvolume — Google Get Volume
/volumes/{volumeId}
GET
Listbookshelves — Google List Bookshelves
/users/{userId}/bookshelves
GET
Getbookshelf — Google Get Bookshelf
/users/{userId}/bookshelves/{shelf}
GET
Listbookshelfvolumes — Google List Bookshelf Volumes
/users/{userId}/bookshelves/{shelf}/volumes
GET
Listmybookshelves — Google List My Bookshelves
/mylibrary/bookshelves
GET
Getmybookshelf — Google Get My Bookshelf
/mylibrary/bookshelves/{shelf}
POST
Addvolumetobookshelf — Google Add Volume to Bookshelf
/mylibrary/bookshelves/{shelf}/addVolume
POST
Clearvolumesfrombookshelf — Google Clear Volumes from Bookshelf
/mylibrary/bookshelves/{shelf}/clearVolumes
POST
Movevolumeinbookshelf — Google Move Volume in Bookshelf
/mylibrary/bookshelves/{shelf}/moveVolume
POST
Removevolumefrombookshelf — Google Remove Volume from Bookshelf
/mylibrary/bookshelves/{shelf}/removeVolume
GET
Listmybookshelfvolumes — Google List My Bookshelf Volumes
/mylibrary/bookshelves/{shelf}/volumes

MCP Tools

listvolumes

Google List Volumes

read-only idempotent
getvolume

Google Get Volume

read-only idempotent
listbookshelves

Google List Bookshelves

read-only idempotent
getbookshelf

Google Get Bookshelf

read-only idempotent
listbookshelfvolumes

Google List Bookshelf Volumes

read-only idempotent
listmybookshelves

Google List My Bookshelves

read-only idempotent
getmybookshelf

Google Get My Bookshelf

read-only idempotent
addvolumetobookshelf

Google Add Volume to Bookshelf

clearvolumesfrombookshelf

Google Clear Volumes from Bookshelf

movevolumeinbookshelf

Google Move Volume in Bookshelf

removevolumefrombookshelf

Google Remove Volume from Bookshelf

listmybookshelfvolumes

Google List My Bookshelf Volumes

read-only idempotent

Capability Spec

google-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Google Books API
  description: API for retrieving Bookshelf and Volume resources from Google Books
  tags:
  - Google
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: google
    baseUri: https://www.googleapis.com/books/v1
    description: Google Books API HTTP API.
    authentication:
      type: bearer
      token: '{{GOOGLE_TOKEN}}'
    resources:
    - name: volumes
      path: /volumes
      operations:
      - name: listvolumes
        method: GET
        description: Google List Volumes
        inputParameters:
        - name: q
          in: query
          type: string
          required: true
          description: Full-text search query string
        - name: download
          in: query
          type: string
          description: Restrict to volumes by download availability
        - name: filter
          in: query
          type: string
          description: Filter search results
        - name: langRestrict
          in: query
          type: string
          description: Restrict results to books with this language code
        - name: libraryRestrict
          in: query
          type: string
          description: Restrict search to this user's library
        - name: maxResults
          in: query
          type: integer
          description: Maximum number of results to return (0 to 40)
        - name: orderBy
          in: query
          type: string
          description: Sort search results
        - name: partner
          in: query
          type: string
          description: Restrict and brand results for partner ID
        - name: printType
          in: query
          type: string
          description: Restrict to books or magazines
        - name: projection
          in: query
          type: string
          description: Restrict information returned to a set of selected fields
        - name: showPreorders
          in: query
          type: boolean
          description: Set to true to show books available for preorder
        - 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 result to return (starts at 0)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: volumes-volumeid
      path: /volumes/{volumeId}
      operations:
      - name: getvolume
        method: GET
        description: Google Get Volume
        inputParameters:
        - name: volumeId
          in: path
          type: string
          required: true
          description: ID of volume to retrieve
        - name: partner
          in: query
          type: string
          description: Brand results for partner ID
        - name: projection
          in: query
          type: string
          description: Restrict information returned to a set of selected fields
        - name: source
          in: query
          type: string
          description: String to identify the originator of this request
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-userid-bookshelves
      path: /users/{userId}/bookshelves
      operations:
      - name: listbookshelves
        method: GET
        description: Google List Bookshelves
        inputParameters:
        - name: userId
          in: path
          type: string
          required: true
          description: ID of user for whom to retrieve bookshelves
        - name: source
          in: query
          type: string
          description: String to identify the originator of this request
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-userid-bookshelves-shelf
      path: /users/{userId}/bookshelves/{shelf}
      operations:
      - name: getbookshelf
        method: GET
        description: Google Get Bookshelf
        inputParameters:
        - name: userId
          in: path
          type: string
          required: true
          description: ID of user for whom to retrieve bookshelves
        - name: shelf
          in: path
          type: string
          required: true
          description: ID of bookshelf to retrieve
        - name: source
          in: query
          type: string
          description: String to identify the originator of this request
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-userid-bookshelves-shelf-volumes
      path: /users/{userId}/bookshelves/{shelf}/volumes
      operations:
      - name: listbookshelfvolumes
        method: GET
        description: Google List Bookshelf Volumes
        inputParameters:
        - name: userId
          in: path
          type: string
          required: true
          description: ID of user for whom to retrieve bookshelf volumes
        - name: shelf
          in: path
          type: string
          required: true
          description: ID of bookshelf to retrieve volumes
        - name: maxResults
          in: query
          type: integer
          description: Maximum number of results to return
        - 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)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: mylibrary-bookshelves
      path: /mylibrary/bookshelves
      operations:
      - name: listmybookshelves
        method: GET
        description: Google List My Bookshelves
        inputParameters:
        - name: source
          in: query
          type: string
          description: String to identify the originator of this request
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: mylibrary-bookshelves-shelf
      path: /mylibrary/bookshelves/{shelf}
      operations:
      - name: getmybookshelf
        method: GET
        description: Google Get My Bookshelf
        inputParameters:
        - name: shelf
          in: path
          type: string
          required: true
          description: ID of bookshelf to retrieve
        - name: source
          in: query
          type: string
          description: String to identify the originator of this request
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: mylibrary-bookshelves-shelf-addvolume
      path: /mylibrary/bookshelves/{shelf}/addVolume
      operations:
      - name: addvolumetobookshelf
        method: POST
        description: Google Add Volume to Bookshelf
        inputParameters:
        - name: shelf
          in: path
          type: string
          required: true
          description: ID of bookshelf to which to add a volume
        - name: volumeId
          in: query
          type: string
          required: true
          description: ID of volume to add
        - name: source
          in: query
          type: string
          description: String to identify the originator of this request
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: mylibrary-bookshelves-shelf-clearvolumes
      path: /mylibrary/bookshelves/{shelf}/clearVolumes
      operations:
      - name: clearvolumesfrombookshelf
        method: POST
        description: Google Clear Volumes from Bookshelf
        inputParameters:
        - name: shelf
          in: path
          type: string
          required: true
          description: ID of bookshelf from which to remove all volumes
        - name: source
          in: query
          type: string
          description: String to identify the originator of this request
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: mylibrary-bookshelves-shelf-movevolume
      path: /mylibrary/bookshelves/{shelf}/moveVolume
      operations:
      - name: movevolumeinbookshelf
        method: POST
        description: Google Move Volume in Bookshelf
        inputParameters:
        - name: shelf
          in: path
          type: string
          required: true
          description: ID of bookshelf with the volume
        - name: volumeId
          in: query
          type: string
          required: true
          description: ID of volume to move
        - name: volumePosition
          in: query
          type: integer
          required: true
          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)
        - name: source
          in: query
          type: string
          description: String to identify the originator of this request
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: mylibrary-bookshelves-shelf-removevolume
      path: /mylibrary/bookshelves/{shelf}/removeVolume
      operations:
      - name: removevolumefrombookshelf
        method: POST
        description: Google Remove Volume from Bookshelf
        inputParameters:
        - name: shelf
          in: path
          type: string
          required: true
          description: ID of bookshelf from which to remove a volume
        - name: volumeId
          in: query
          type: string
          required: true
          description: ID of volume to remove
        - name: source
          in: query
          type: string
          description: String to identify the originator of this request
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: mylibrary-bookshelves-shelf-volumes
      path: /mylibrary/bookshelves/{shelf}/volumes
      operations:
      - name: listmybookshelfvolumes
        method: GET
        description: Google List My Bookshelf Volumes
        inputParameters:
        - name: shelf
          in: path
          type: string
          required: true
          description: The bookshelf ID or name to retrieve volumes for
        - 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)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: google-rest
    description: REST adapter for Google Books API.
    resources:
    - path: /volumes
      name: listvolumes
      operations:
      - method: GET
        name: listvolumes
        description: Google List Volumes
        call: google.listvolumes
        outputParameters:
        - type: object
          mapping: $.
    - path: /volumes/{volumeId}
      name: getvolume
      operations:
      - method: GET
        name: getvolume
        description: Google Get Volume
        call: google.getvolume
        with:
          volumeId: rest.volumeId
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{userId}/bookshelves
      name: listbookshelves
      operations:
      - method: GET
        name: listbookshelves
        description: Google List Bookshelves
        call: google.listbookshelves
        with:
          userId: rest.userId
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{userId}/bookshelves/{shelf}
      name: getbookshelf
      operations:
      - method: GET
        name: getbookshelf
        description: Google Get Bookshelf
        call: google.getbookshelf
        with:
          userId: rest.userId
          shelf: rest.shelf
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{userId}/bookshelves/{shelf}/volumes
      name: listbookshelfvolumes
      operations:
      - method: GET
        name: listbookshelfvolumes
        description: Google List Bookshelf Volumes
        call: google.listbookshelfvolumes
        with:
          userId: rest.userId
          shelf: rest.shelf
        outputParameters:
        - type: object
          mapping: $.
    - path: /mylibrary/bookshelves
      name: listmybookshelves
      operations:
      - method: GET
        name: listmybookshelves
        description: Google List My Bookshelves
        call: google.listmybookshelves
        outputParameters:
        - type: object
          mapping: $.
    - path: /mylibrary/bookshelves/{shelf}
      name: getmybookshelf
      operations:
      - method: GET
        name: getmybookshelf
        description: Google Get My Bookshelf
        call: google.getmybookshelf
        with:
          shelf: rest.shelf
        outputParameters:
        - type: object
          mapping: $.
    - path: /mylibrary/bookshelves/{shelf}/addVolume
      name: addvolumetobookshelf
      operations:
      - method: POST
        name: addvolumetobookshelf
        description: Google Add Volume to Bookshelf
        call: google.addvolumetobookshelf
        with:
          shelf: rest.shelf
        outputParameters:
        - type: object
          mapping: $.
    - path: /mylibrary/bookshelves/{shelf}/clearVolumes
      name: clearvolumesfrombookshelf
      operations:
      - method: POST
        name: clearvolumesfrombookshelf
        description: Google Clear Volumes from Bookshelf
        call: google.clearvolumesfrombookshelf
        with:
          shelf: rest.shelf
        outputParameters:
        - type: object
          mapping: $.
    - path: /mylibrary/bookshelves/{shelf}/moveVolume
      name: movevolumeinbookshelf
      operations:
      - method: POST
        name: movevolumeinbookshelf
        description: Google Move Volume in Bookshelf
        call: google.movevolumeinbookshelf
        with:
          shelf: rest.shelf
        outputParameters:
        - type: object
          mapping: $.
    - path: /mylibrary/bookshelves/{shelf}/removeVolume
      name: removevolumefrombookshelf
      operations:
      - method: POST
        name: removevolumefrombookshelf
        description: Google Remove Volume from Bookshelf
        call: google.removevolumefrombookshelf
        with:
          shelf: rest.shelf
        outputParameters:
        - type: object
          mapping: $.
    - path: /mylibrary/bookshelves/{shelf}/volumes
      name: listmybookshelfvolumes
      operations:
      - method: GET
        name: listmybookshelfvolumes
        description: Google List My Bookshelf Volumes
        call: google.listmybookshelfvolumes
        with:
          shelf: rest.shelf
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: google-mcp
    transport: http
    description: MCP adapter for Google Books API for AI agent use.
    tools:
    - name: listvolumes
      description: Google List Volumes
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google.listvolumes
      with:
        q: tools.q
        download: tools.download
        filter: tools.filter
        langRestrict: tools.langRestrict
        libraryRestrict: tools.libraryRestrict
        maxResults: tools.maxResults
        orderBy: tools.orderBy
        partner: tools.partner
        printType: tools.printType
        projection: tools.projection
        showPreorders: tools.showPreorders
        source: tools.source
        startIndex: tools.startIndex
      inputParameters:
      - name: q
        type: string
        description: Full-text search query string
        required: true
      - name: download
        type: string
        description: Restrict to volumes by download availability
      - name: filter
        type: string
        description: Filter search results
      - name: langRestrict
        type: string
        description: Restrict results to books with this language code
      - name: libraryRestrict
        type: string
        description: Restrict search to this user's library
      - name: maxResults
        type: integer
        description: Maximum number of results to return (0 to 40)
      - name: orderBy
        type: string
        description: Sort search results
      - name: partner
        type: string
        description: Restrict and brand results for partner ID
      - name: printType
        type: string
        description: Restrict to books or magazines
      - name: projection
        type: string
        description: Restrict information returned to a set of selected fields
      - name: showPreorders
        type: boolean
        description: Set to true to show books available for preorder
      - name: source
        type: string
        description: String to identify the originator of this request
      - name: startIndex
        type: integer
        description: Index of the first result to return (starts at 0)
      outputParameters:
      - type: object
        mapping: $.
    - name: getvolume
      description: Google Get Volume
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google.getvolume
      with:
        volumeId: tools.volumeId
        partner: tools.partner
        projection: tools.projection
        source: tools.source
      inputParameters:
      - name: volumeId
        type: string
        description: ID of volume to retrieve
        required: true
      - name: partner
        type: string
        description: Brand results for partner ID
      - name: projection
        type: string
        description: Restrict information returned to a set of selected fields
      - name: source
        type: string
        description: String to identify the originator of this request
      outputParameters:
      - type: object
        mapping: $.
    - name: listbookshelves
      description: Google List Bookshelves
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google.listbookshelves
      with:
        userId: tools.userId
        source: tools.source
      inputParameters:
      - name: userId
        type: string
        description: ID of user for whom to retrieve bookshelves
        required: true
      - name: source
        type: string
        description: String to identify the originator of this request
      outputParameters:
      - type: object
        mapping: $.
    - name: getbookshelf
      description: Google Get Bookshelf
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google.getbookshelf
      with:
        userId: tools.userId
        shelf: tools.shelf
        source: tools.source
      inputParameters:
      - name: userId
        type: string
        description: ID of user for whom to retrieve bookshelves
        required: true
      - name: shelf
        type: string
        description: ID of bookshelf to retrieve
        required: true
      - name: source
        type: string
        description: String to identify the originator of this request
      outputParameters:
      - type: object
        mapping: $.
    - name: listbookshelfvolumes
      description: Google List Bookshelf Volumes
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google.listbookshelfvolumes
      with:
        userId: tools.userId
        shelf: tools.shelf
        maxResults: tools.maxResults
        showPreorders: tools.showPreorders
        source: tools.source
        startIndex: tools.startIndex
      inputParameters:
      - name: userId
        type: string
        description: ID of user for whom to retrieve bookshelf volumes
        required: true
      - name: shelf
        type: string
        description: ID of bookshelf to retrieve volumes
        required: true
      - name: maxResults
        type: integer
        description: Maximum number of results to return
      - name: showPreorders
        type: boolean
        description: Set to true to show pre-ordered books
      - name: source
        type: string
        description: String to identify the originator of this request
      - name: startIndex
        type: integer
        description: Index of the first element to return (starts at 0)
      outputParameters:
      - type: object
        mapping: $.
    - name: listmybookshelves
      description: Google List My Bookshelves
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google.listmybookshelves
      with:
        source: tools.source
      inputParameters:
      - name: source
        type: string
        description: String to identify the originator of this request
      outputParameters:
      - type: object
        mapping: $.
    - name: getmybookshelf
      description: Google Get My Bookshelf
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google.getmybookshelf
      with:
        shelf: tools.shelf
        source: tools.source
      inputParameters:
      - name: shelf
        type: string
        description: ID of bookshelf to retrieve
        required: true
      - name: source
        type: string
        description: String to identify the originator of this request
      outputParameters:
      - type: object
        mapping: $.
    - name: addvolumetobookshelf
      description: Google Add Volume to Bookshelf
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google.addvolumetobookshelf
      with:
        shelf: tools.shelf
        volumeId: tools.volumeId
        source: tools.source
      inputParameters:
      - name: shelf
        type: string
        description: ID of bookshelf to which to add a volume
        required: true
      - name: volumeId
        type: string
        description: ID of volume to add
        required: true
      - name: source
        type: string
        description: String to identify the originator of this request
      outputParameters:
      - type: object
        mapping: $.
    - name: clearvolumesfrombookshelf
      description: Google Clear Volumes from Bookshelf
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google.clearvolumesfrombookshelf
      with:
        shelf: tools.shelf
        source: tools.source
      inputParameters:
      - name: shelf
        type: string
        description: ID of bookshelf from which to remove all volumes
        required: true
      - name: source
        type: string
        description: String to identify the originator of this request
      outputParameters:
      - type: object
        mapping: $.
    - name: movevolumeinbookshelf
      description: Google Move Volume in Bookshelf
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google.movevolumeinbookshelf
      with:
        shelf: tools.shelf
        volumeId: tools.volumeId
        volumePosition: tools.volumePosition
        source: tools.source
      inputParameters:
      - name: shelf
        type: string
        description: ID of bookshelf with the volume
        required: true
      - name: volumeId
        type: string
        description: ID of volume to move
        required: true
      - name: volumePosition
        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
        type: string
        description: String to identify the originator of this request
      outputParameters:
      - type: object
        mapping: $.
    - name: removevolumefrombookshelf
      description: Google Remove Volume from Bookshelf
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google.removevolumefrombookshelf
      with:
        shelf: tools.shelf
        volumeId: tools.volumeId
        source: tools.source
      inputParameters:
      - name: shelf
        type: string
        description: ID of bookshelf from which to remove a volume
        required: true
      - name: volumeId
        type: string
        description: ID of volume to remove
        required: true
      - name: source
        type: string
        description: String to identify the originator of this request
      outputParameters:
      - type: object
        mapping: $.
    - name: listmybookshelfvolumes
      description: Google List My Bookshelf Volumes
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google.listmybookshelfvolumes
      with:
        shelf: tools.shelf
        maxResults: tools.maxResults
        projection: tools.projection
        q: tools.q
        showPreorders: tools.showPreorders
        source: tools.source
        startIndex: tools.startIndex
      inputParameters:
      - name: shelf
        type: string
        description: The bookshelf ID or name to retrieve volumes for
        required: true
      - name: maxResults
        type: integer
        description: Maximum number of results to return
      - name: projection
        type: string
        description: Restrict information returned to a set of selected fields
      - name: q
        type: string
        description: Full-text search query string in this bookshelf
      - name: showPreorders
        type: boolean
        description: Set to true to show pre-ordered books
      - name: source
        type: string
        description: String to identify the originator of this request
      - name: startIndex
        type: integer
        description: Index of the first element to return (starts at 0)
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    GOOGLE_TOKEN: GOOGLE_TOKEN