Google Books · Capability
Google Books API
The Google Books API allows you to perform full-text searches and retrieve book information, viewability, and eBook availability. You can also manage personal bookshelves, access volume metadata, and work with user library data.
What You Can Do
GET
Listvolumes
— Search for volumes
/volumes
GET
Getvolume
— Get a volume
/volumes/{volumeId}
GET
Listbookshelves
— List bookshelves
/users/{userId}/bookshelves
GET
Getbookshelf
— Get a bookshelf
/users/{userId}/bookshelves/{shelf}
GET
Listbookshelfvolumes
— List volumes in a bookshelf
/users/{userId}/bookshelves/{shelf}/volumes
GET
Listmybookshelves
— List my bookshelves
/mylibrary/bookshelves
POST
Addvolumetobookshelf
— Add volume to bookshelf
/mylibrary/bookshelves/{shelf}/addVolume
POST
Removevolumefrombookshelf
— Remove volume from bookshelf
/mylibrary/bookshelves/{shelf}/removeVolume
MCP Tools
listvolumes
Search for volumes
read-only
idempotent
getvolume
Get a volume
read-only
idempotent
listbookshelves
List bookshelves
read-only
idempotent
getbookshelf
Get a bookshelf
read-only
idempotent
listbookshelfvolumes
List volumes in a bookshelf
read-only
idempotent
listmybookshelves
List my bookshelves
read-only
idempotent
addvolumetobookshelf
Add volume to bookshelf
removevolumefrombookshelf
Remove volume from bookshelf
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Google Books API
description: The Google Books API allows you to perform full-text searches and retrieve book information, viewability, and
eBook availability. You can also manage personal bookshelves, access volume metadata, and work with user library data.
tags:
- Google
- Books
- API
created: '2026-05-06'
modified: '2026-05-06'
capability:
consumes:
- type: http
namespace: google-books
baseUri: https://www.googleapis.com/books/v1
description: Google Books API HTTP API.
authentication:
type: bearer
token: '{{GOOGLE_BOOKS_TOKEN}}'
resources:
- name: volumes
path: /volumes
operations:
- name: listvolumes
method: GET
description: Search for volumes
inputParameters:
- name: q
in: query
type: string
required: true
description: Full-text search query string.
- name: maxResults
in: query
type: integer
- name: startIndex
in: query
type: integer
- name: orderBy
in: query
type: string
- name: printType
in: query
type: string
- name: filter
in: query
type: string
- name: langRestrict
in: query
type: string
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: volumes-volumeid
path: /volumes/{volumeId}
operations:
- name: getvolume
method: GET
description: Get a volume
inputParameters:
- name: volumeId
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: users-userid-bookshelves
path: /users/{userId}/bookshelves
operations:
- name: listbookshelves
method: GET
description: List bookshelves
inputParameters:
- name: userId
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: users-userid-bookshelves-shelf
path: /users/{userId}/bookshelves/{shelf}
operations:
- name: getbookshelf
method: GET
description: Get a bookshelf
inputParameters:
- name: userId
in: path
type: string
required: true
- name: shelf
in: path
type: string
required: true
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: List volumes in a bookshelf
inputParameters:
- name: userId
in: path
type: string
required: true
- name: shelf
in: path
type: string
required: true
- name: maxResults
in: query
type: integer
- name: startIndex
in: query
type: integer
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: mylibrary-bookshelves
path: /mylibrary/bookshelves
operations:
- name: listmybookshelves
method: GET
description: List my bookshelves
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: mylibrary-bookshelves-shelf-addvolume
path: /mylibrary/bookshelves/{shelf}/addVolume
operations:
- name: addvolumetobookshelf
method: POST
description: Add volume to bookshelf
inputParameters:
- name: shelf
in: path
type: string
required: true
- name: volumeId
in: query
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: mylibrary-bookshelves-shelf-removevolume
path: /mylibrary/bookshelves/{shelf}/removeVolume
operations:
- name: removevolumefrombookshelf
method: POST
description: Remove volume from bookshelf
inputParameters:
- name: shelf
in: path
type: string
required: true
- name: volumeId
in: query
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
exposes:
- type: rest
port: 8080
namespace: google-books-rest
description: REST adapter for Google Books API.
resources:
- path: /volumes
name: listvolumes
operations:
- method: GET
name: listvolumes
description: Search for volumes
call: google-books.listvolumes
outputParameters:
- type: object
mapping: $.
- path: /volumes/{volumeId}
name: getvolume
operations:
- method: GET
name: getvolume
description: Get a volume
call: google-books.getvolume
with:
volumeId: rest.volumeId
outputParameters:
- type: object
mapping: $.
- path: /users/{userId}/bookshelves
name: listbookshelves
operations:
- method: GET
name: listbookshelves
description: List bookshelves
call: google-books.listbookshelves
with:
userId: rest.userId
outputParameters:
- type: object
mapping: $.
- path: /users/{userId}/bookshelves/{shelf}
name: getbookshelf
operations:
- method: GET
name: getbookshelf
description: Get a bookshelf
call: google-books.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: List volumes in a bookshelf
call: google-books.listbookshelfvolumes
with:
userId: rest.userId
shelf: rest.shelf
outputParameters:
- type: object
mapping: $.
- path: /mylibrary/bookshelves
name: listmybookshelves
operations:
- method: GET
name: listmybookshelves
description: List my bookshelves
call: google-books.listmybookshelves
outputParameters:
- type: object
mapping: $.
- path: /mylibrary/bookshelves/{shelf}/addVolume
name: addvolumetobookshelf
operations:
- method: POST
name: addvolumetobookshelf
description: Add volume to bookshelf
call: google-books.addvolumetobookshelf
with:
shelf: rest.shelf
outputParameters:
- type: object
mapping: $.
- path: /mylibrary/bookshelves/{shelf}/removeVolume
name: removevolumefrombookshelf
operations:
- method: POST
name: removevolumefrombookshelf
description: Remove volume from bookshelf
call: google-books.removevolumefrombookshelf
with:
shelf: rest.shelf
outputParameters:
- type: object
mapping: $.
- type: mcp
port: 9090
namespace: google-books-mcp
transport: http
description: MCP adapter for Google Books API for AI agent use.
tools:
- name: listvolumes
description: Search for volumes
hints:
readOnly: true
destructive: false
idempotent: true
call: google-books.listvolumes
with:
q: tools.q
maxResults: tools.maxResults
startIndex: tools.startIndex
orderBy: tools.orderBy
printType: tools.printType
filter: tools.filter
langRestrict: tools.langRestrict
inputParameters:
- name: q
type: string
description: Full-text search query string.
required: true
- name: maxResults
type: integer
description: maxResults
- name: startIndex
type: integer
description: startIndex
- name: orderBy
type: string
description: orderBy
- name: printType
type: string
description: printType
- name: filter
type: string
description: filter
- name: langRestrict
type: string
description: langRestrict
outputParameters:
- type: object
mapping: $.
- name: getvolume
description: Get a volume
hints:
readOnly: true
destructive: false
idempotent: true
call: google-books.getvolume
with:
volumeId: tools.volumeId
inputParameters:
- name: volumeId
type: string
description: volumeId
required: true
outputParameters:
- type: object
mapping: $.
- name: listbookshelves
description: List bookshelves
hints:
readOnly: true
destructive: false
idempotent: true
call: google-books.listbookshelves
with:
userId: tools.userId
inputParameters:
- name: userId
type: string
description: userId
required: true
outputParameters:
- type: object
mapping: $.
- name: getbookshelf
description: Get a bookshelf
hints:
readOnly: true
destructive: false
idempotent: true
call: google-books.getbookshelf
with:
userId: tools.userId
shelf: tools.shelf
inputParameters:
- name: userId
type: string
description: userId
required: true
- name: shelf
type: string
description: shelf
required: true
outputParameters:
- type: object
mapping: $.
- name: listbookshelfvolumes
description: List volumes in a bookshelf
hints:
readOnly: true
destructive: false
idempotent: true
call: google-books.listbookshelfvolumes
with:
userId: tools.userId
shelf: tools.shelf
maxResults: tools.maxResults
startIndex: tools.startIndex
inputParameters:
- name: userId
type: string
description: userId
required: true
- name: shelf
type: string
description: shelf
required: true
- name: maxResults
type: integer
description: maxResults
- name: startIndex
type: integer
description: startIndex
outputParameters:
- type: object
mapping: $.
- name: listmybookshelves
description: List my bookshelves
hints:
readOnly: true
destructive: false
idempotent: true
call: google-books.listmybookshelves
outputParameters:
- type: object
mapping: $.
- name: addvolumetobookshelf
description: Add volume to bookshelf
hints:
readOnly: false
destructive: false
idempotent: false
call: google-books.addvolumetobookshelf
with:
shelf: tools.shelf
volumeId: tools.volumeId
inputParameters:
- name: shelf
type: string
description: shelf
required: true
- name: volumeId
type: string
description: volumeId
required: true
outputParameters:
- type: object
mapping: $.
- name: removevolumefrombookshelf
description: Remove volume from bookshelf
hints:
readOnly: false
destructive: false
idempotent: false
call: google-books.removevolumefrombookshelf
with:
shelf: tools.shelf
volumeId: tools.volumeId
inputParameters:
- name: shelf
type: string
description: shelf
required: true
- name: volumeId
type: string
description: volumeId
required: true
outputParameters:
- type: object
mapping: $.
binds:
- namespace: env
keys:
GOOGLE_BOOKS_TOKEN: GOOGLE_BOOKS_TOKEN