naftiko: 1.0.0-alpha2 info: label: Google Books API — Volumes description: 'Google Books API — Volumes. 2 operations. Lead operation: Google List Volumes. Self-contained Naftiko capability covering one Google business surface.' tags: - Google - Volumes created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GOOGLE_API_KEY: GOOGLE_API_KEY capability: consumes: - type: http namespace: books-volumes baseUri: https://www.googleapis.com/books/v1 description: Google Books API — Volumes business capability. Self-contained, no shared references. resources: - name: volumes path: /volumes operations: - name: listvolumes method: GET description: Google List Volumes outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: q in: query type: string description: Full-text search query string required: true - 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) - name: volumes-volumeId path: /volumes/{volumeId} operations: - name: getvolume method: GET description: Google Get Volume outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: volumeId in: path type: string description: ID of volume to retrieve required: true - 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 authentication: type: bearer token: '{{env.GOOGLE_API_KEY}}' exposes: - type: rest namespace: books-volumes-rest port: 8080 description: REST adapter for Google Books API — Volumes. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/volumes name: volumes description: REST surface for volumes. operations: - method: GET name: listvolumes description: Google List Volumes call: books-volumes.listvolumes with: q: rest.q download: rest.download filter: rest.filter langRestrict: rest.langRestrict libraryRestrict: rest.libraryRestrict maxResults: rest.maxResults orderBy: rest.orderBy partner: rest.partner printType: rest.printType projection: rest.projection showPreorders: rest.showPreorders source: rest.source startIndex: rest.startIndex outputParameters: - type: object mapping: $. - path: /v1/volumes/{volumeid} name: volumes-volumeid description: REST surface for volumes-volumeId. operations: - method: GET name: getvolume description: Google Get Volume call: books-volumes.getvolume with: volumeId: rest.volumeId partner: rest.partner projection: rest.projection source: rest.source outputParameters: - type: object mapping: $. - type: mcp namespace: books-volumes-mcp port: 9090 transport: http description: MCP adapter for Google Books API — Volumes. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: google-list-volumes description: Google List Volumes hints: readOnly: true destructive: false idempotent: true call: books-volumes.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 outputParameters: - type: object mapping: $. - name: google-get-volume description: Google Get Volume hints: readOnly: true destructive: false idempotent: true call: books-volumes.getvolume with: volumeId: tools.volumeId partner: tools.partner projection: tools.projection source: tools.source outputParameters: - type: object mapping: $.