Google · Capability
Google Books API
API for retrieving Bookshelf and Volume resources from Google Books
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
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