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