naftiko: 1.0.0-alpha2 info: label: "TVmaze Premium User API \u2014 Marked Episodes" description: "TVmaze Premium User API \u2014 marked episodes. 4 operations. Lead operation: List the Marked Episodes. Self-contained\ \ Naftiko capability covering one TVmaze business surface." tags: - TVmaze - Premium User API - Marked Episodes created: '2026-05-30' modified: '2026-05-30' binds: - namespace: env keys: TVMAZE_USERNAME: TVMAZE_USERNAME TVMAZE_API_KEY: TVMAZE_API_KEY capability: consumes: - type: http namespace: premium-marked-episodes baseUri: https://api.tvmaze.com/v1 description: "TVmaze Premium User API \u2014 Marked Episodes business capability. Self-contained, no shared references." resources: - name: user-episodes path: /user/episodes operations: - name: getUserEpisodes method: GET description: List the Marked Episodes inputParameters: - name: show_id in: query type: integer required: false description: Only return episodes from this specific show outputRawFormat: json outputParameters: - name: result type: object value: $. - name: user-episodes-episode-id path: /user/episodes/{episode_id} operations: - name: deleteUserEpisodesEpisodeId method: DELETE description: Unmark an Episode inputParameters: - name: episode_id in: path type: integer required: true description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getUserEpisodesEpisodeId method: GET description: Check if an Episode is Marked inputParameters: - name: episode_id in: path type: integer required: true description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. - name: putUserEpisodesEpisodeId method: PUT description: Mark an Episode inputParameters: - name: episode_id in: path type: integer required: true description: '' - name: body in: body type: object required: false description: Request body payload. outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: basic username: '{{env.TVMAZE_USERNAME}}' password: '{{env.TVMAZE_API_KEY}}' exposes: - type: rest namespace: premium-marked-episodes-rest port: 8080 description: "REST adapter for TVmaze Premium User API \u2014 Marked Episodes. One Spectral-compliant resource per consumed\ \ operation, prefixed with /v1." resources: - path: /v1/user/episodes name: user-episodes description: REST surface for /user/episodes. operations: - method: GET name: getUserEpisodes description: List the Marked Episodes call: premium-marked-episodes.getUserEpisodes with: show_id: rest.show_id outputParameters: - type: object mapping: $. - path: /v1/user/episodes/{episode_id} name: user-episodes-episode-id description: REST surface for /user/episodes/{episode_id}. operations: - method: DELETE name: deleteUserEpisodesEpisodeId description: Unmark an Episode call: premium-marked-episodes.deleteUserEpisodesEpisodeId with: episode_id: rest.episode_id outputParameters: - type: object mapping: $. - path: /v1/user/episodes/{episode_id} name: user-episodes-episode-id description: REST surface for /user/episodes/{episode_id}. operations: - method: GET name: getUserEpisodesEpisodeId description: Check if an Episode is Marked call: premium-marked-episodes.getUserEpisodesEpisodeId with: episode_id: rest.episode_id outputParameters: - type: object mapping: $. - path: /v1/user/episodes/{episode_id} name: user-episodes-episode-id description: REST surface for /user/episodes/{episode_id}. operations: - method: PUT name: putUserEpisodesEpisodeId description: Mark an Episode call: premium-marked-episodes.putUserEpisodesEpisodeId with: episode_id: rest.episode_id body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: premium-marked-episodes-mcp port: 9090 transport: http description: "MCP adapter for TVmaze Premium User API \u2014 Marked Episodes. One tool per consumed operation, routed\ \ inline through this capability's consumes block." tools: - name: list-marked-episodes description: List the Marked Episodes hints: readOnly: true destructive: false idempotent: true call: premium-marked-episodes.getUserEpisodes with: show_id: tools.show_id outputParameters: - type: object mapping: $. - name: unmark-episode description: Unmark an Episode hints: readOnly: false destructive: true idempotent: true call: premium-marked-episodes.deleteUserEpisodesEpisodeId with: episode_id: tools.episode_id outputParameters: - type: object mapping: $. - name: check-if-episode-is-marked description: Check if an Episode is Marked hints: readOnly: true destructive: false idempotent: true call: premium-marked-episodes.getUserEpisodesEpisodeId with: episode_id: tools.episode_id outputParameters: - type: object mapping: $. - name: mark-episode description: Mark an Episode hints: readOnly: false destructive: false idempotent: true call: premium-marked-episodes.putUserEpisodesEpisodeId with: episode_id: tools.episode_id body: tools.body outputParameters: - type: object mapping: $.