naftiko: 1.0.0-alpha2 info: label: Google Books API — Bookshelves description: 'Google Books API — Bookshelves. 3 operations. Lead operation: Google List Bookshelves. Self-contained Naftiko capability covering one Google business surface.' tags: - Google - Bookshelves created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GOOGLE_API_KEY: GOOGLE_API_KEY capability: consumes: - type: http namespace: books-bookshelves baseUri: https://www.googleapis.com/books/v1 description: Google Books API — Bookshelves business capability. Self-contained, no shared references. resources: - name: users-userId-bookshelves path: /users/{userId}/bookshelves operations: - name: listbookshelves method: GET description: Google List Bookshelves outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: userId in: path type: string description: ID of user for whom to retrieve bookshelves required: true - name: source in: query type: string description: String to identify the originator of this request - name: users-userId-bookshelves-shelf path: /users/{userId}/bookshelves/{shelf} operations: - name: getbookshelf method: GET description: Google Get Bookshelf outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: userId in: path type: string description: ID of user for whom to retrieve bookshelves required: true - 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: users-userId-bookshelves-shelf-volumes path: /users/{userId}/bookshelves/{shelf}/volumes operations: - name: listbookshelfvolumes method: GET description: Google List Bookshelf Volumes outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: userId in: path type: string description: ID of user for whom to retrieve bookshelf volumes required: true - name: shelf in: path type: string description: ID of bookshelf to retrieve volumes required: true - 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) authentication: type: bearer token: '{{env.GOOGLE_API_KEY}}' exposes: - type: rest namespace: books-bookshelves-rest port: 8080 description: REST adapter for Google Books API — Bookshelves. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/users/{userid}/bookshelves name: users-userid-bookshelves description: REST surface for users-userId-bookshelves. operations: - method: GET name: listbookshelves description: Google List Bookshelves call: books-bookshelves.listbookshelves with: userId: rest.userId source: rest.source outputParameters: - type: object mapping: $. - path: /v1/users/{userid}/bookshelves/{shelf} name: users-userid-bookshelves-shelf description: REST surface for users-userId-bookshelves-shelf. operations: - method: GET name: getbookshelf description: Google Get Bookshelf call: books-bookshelves.getbookshelf with: userId: rest.userId shelf: rest.shelf source: rest.source outputParameters: - type: object mapping: $. - path: /v1/users/{userid}/bookshelves/{shelf}/volumes name: users-userid-bookshelves-shelf-volumes description: REST surface for users-userId-bookshelves-shelf-volumes. operations: - method: GET name: listbookshelfvolumes description: Google List Bookshelf Volumes call: books-bookshelves.listbookshelfvolumes with: userId: rest.userId shelf: rest.shelf maxResults: rest.maxResults showPreorders: rest.showPreorders source: rest.source startIndex: rest.startIndex outputParameters: - type: object mapping: $. - type: mcp namespace: books-bookshelves-mcp port: 9090 transport: http description: MCP adapter for Google Books API — Bookshelves. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: google-list-bookshelves description: Google List Bookshelves hints: readOnly: true destructive: false idempotent: true call: books-bookshelves.listbookshelves with: userId: tools.userId source: tools.source outputParameters: - type: object mapping: $. - name: google-get-bookshelf description: Google Get Bookshelf hints: readOnly: true destructive: false idempotent: true call: books-bookshelves.getbookshelf with: userId: tools.userId shelf: tools.shelf source: tools.source outputParameters: - type: object mapping: $. - name: google-list-bookshelf-volumes description: Google List Bookshelf Volumes hints: readOnly: true destructive: false idempotent: true call: books-bookshelves.listbookshelfvolumes with: userId: tools.userId shelf: tools.shelf maxResults: tools.maxResults showPreorders: tools.showPreorders source: tools.source startIndex: tools.startIndex outputParameters: - type: object mapping: $.