naftiko: 1.0.0-alpha2 info: label: TiVo Video Metadata API — Content description: 'TiVo Video Metadata API — Content. 4 operations. Lead operation: Search Content. Self-contained Naftiko capability covering one Tivo business surface.' tags: - Tivo - Content created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: TIVO_API_KEY: TIVO_API_KEY capability: consumes: - type: http namespace: video-metadata-content baseUri: https://data.tivo.com description: TiVo Video Metadata API — Content business capability. Self-contained, no shared references. resources: - name: v3-content-search path: /v3/content/search operations: - name: searchcontent method: GET description: Search Content outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: q in: query type: string description: Search query text - title, person name, or keyword - name: type in: query type: string description: Content type filter - name: genre in: query type: string description: Genre filter - name: year in: query type: integer description: Release year filter - name: language in: query type: string description: Language code (ISO 639-1) - name: limit in: query type: integer description: Maximum number of results to return - name: offset in: query type: integer description: Pagination offset - name: include in: query type: string description: Comma-separated list of additional fields to include - name: v3-content-contentId-episodes path: /v3/content/{contentId}/episodes operations: - name: getcontentepisodes method: GET description: Get Content Episodes outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: contentId in: path type: string required: true - name: season in: query type: integer description: Season number to filter episodes - name: limit in: query type: integer - name: offset in: query type: integer - name: v3-content-contentId-images path: /v3/content/{contentId}/images operations: - name: getcontentimages method: GET description: Get Content Images outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: contentId in: path type: string required: true - name: type in: query type: string description: Image type filter - name: width in: query type: integer description: Preferred image width in pixels - name: height in: query type: integer description: Preferred image height in pixels - name: v3-content-contentId-seasons path: /v3/content/{contentId}/seasons operations: - name: getcontentseasons method: GET description: Get Content Seasons outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: contentId in: path type: string required: true - name: language in: query type: string authentication: type: bearer token: '{{env.TIVO_API_KEY}}' exposes: - type: rest namespace: video-metadata-content-rest port: 8080 description: REST adapter for TiVo Video Metadata API — Content. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v3/content/search name: v3-content-search description: REST surface for v3-content-search. operations: - method: GET name: searchcontent description: Search Content call: video-metadata-content.searchcontent with: q: rest.q type: rest.type genre: rest.genre year: rest.year language: rest.language limit: rest.limit offset: rest.offset include: rest.include outputParameters: - type: object mapping: $. - path: /v1/v3/content/{contentid}/episodes name: v3-content-contentid-episodes description: REST surface for v3-content-contentId-episodes. operations: - method: GET name: getcontentepisodes description: Get Content Episodes call: video-metadata-content.getcontentepisodes with: contentId: rest.contentId season: rest.season limit: rest.limit offset: rest.offset outputParameters: - type: object mapping: $. - path: /v1/v3/content/{contentid}/images name: v3-content-contentid-images description: REST surface for v3-content-contentId-images. operations: - method: GET name: getcontentimages description: Get Content Images call: video-metadata-content.getcontentimages with: contentId: rest.contentId type: rest.type width: rest.width height: rest.height outputParameters: - type: object mapping: $. - path: /v1/v3/content/{contentid}/seasons name: v3-content-contentid-seasons description: REST surface for v3-content-contentId-seasons. operations: - method: GET name: getcontentseasons description: Get Content Seasons call: video-metadata-content.getcontentseasons with: contentId: rest.contentId language: rest.language outputParameters: - type: object mapping: $. - type: mcp namespace: video-metadata-content-mcp port: 9090 transport: http description: MCP adapter for TiVo Video Metadata API — Content. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: search-content description: Search Content hints: readOnly: true destructive: false idempotent: true call: video-metadata-content.searchcontent with: q: tools.q type: tools.type genre: tools.genre year: tools.year language: tools.language limit: tools.limit offset: tools.offset include: tools.include outputParameters: - type: object mapping: $. - name: get-content-episodes description: Get Content Episodes hints: readOnly: true destructive: false idempotent: true call: video-metadata-content.getcontentepisodes with: contentId: tools.contentId season: tools.season limit: tools.limit offset: tools.offset outputParameters: - type: object mapping: $. - name: get-content-images description: Get Content Images hints: readOnly: true destructive: false idempotent: true call: video-metadata-content.getcontentimages with: contentId: tools.contentId type: tools.type width: tools.width height: tools.height outputParameters: - type: object mapping: $. - name: get-content-seasons description: Get Content Seasons hints: readOnly: true destructive: false idempotent: true call: video-metadata-content.getcontentseasons with: contentId: tools.contentId language: tools.language outputParameters: - type: object mapping: $.