naftiko: 1.0.0-alpha2 info: label: TMS Entertainment Discovery description: Unified entertainment discovery workflow combining TV programming guides, movie showtimes, celebrity appearances, and sports event schedules. Powers content recommendation apps, EPG integrations, and entertainment platform features. tags: - Tribune Media - Entertainment - Television - Movies - Sports - Celebrity - Programming Guide - Content Discovery created: '2026-05-03' modified: '2026-05-06' binds: - namespace: env keys: TMS_API_KEY: TMS_API_KEY capability: consumes: - type: http namespace: tms-onconnect baseUri: https://data.tmsapi.com description: TMS OnConnect entertainment metadata API authentication: type: apikey key: api_key value: '{{TMS_API_KEY}}' placement: query resources: - name: lineups path: /v1.1/lineups description: TV lineup management and channel listings operations: - name: get-lineups method: GET description: Get lineups by postal code inputParameters: - name: postalCode in: query type: string required: true description: ZIP or postal code for lineup lookup - name: country in: query type: string required: false description: Two-letter country code outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-lineup-channels method: GET description: Get channels for a specific lineup inputParameters: - name: lineupId in: path type: string required: true description: Lineup identifier - name: imageSize in: query type: string required: false description: Image size outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-lineup-grid method: GET description: Get TV grid schedule for lineup inputParameters: - name: lineupId in: path type: string required: true description: Lineup identifier - name: startDateTime in: query type: string required: true description: Grid start time (ISO 8601) - name: endDateTime in: query type: string required: false description: Grid end time (ISO 8601) outputRawFormat: json outputParameters: - name: result type: object value: $. - name: programs path: /v1.1/programs description: TV program search and metadata operations: - name: search-programs method: GET description: Search programs by free-form query inputParameters: - name: q in: query type: string required: true description: Search query - name: entityType in: query type: string required: false description: Filter by entity type (movie, show, special, sports) - name: genres in: query type: string required: false description: Filter by genres - name: limit in: query type: integer required: false description: Maximum results - name: offset in: query type: integer required: false description: Pagination offset outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-program method: GET description: Get detailed metadata for a program inputParameters: - name: tmsId in: path type: string required: true description: TMS program identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-program-airings method: GET description: Get all airings for a program inputParameters: - name: tmsId in: path type: string required: true description: TMS program identifier - name: lineupId in: query type: string required: false description: Lineup to search - name: startDateTime in: query type: string required: false description: Start time for airings outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-new-show-airings method: GET description: Get new show airings on a lineup inputParameters: - name: lineupId in: query type: string required: true description: Lineup identifier - name: startDateTime in: query type: string required: true description: Start time outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-program-genres method: GET description: Get list of program genres outputRawFormat: json outputParameters: - name: result type: object value: $. - name: movies path: /v1.1/movies description: Movie showtime and airing information operations: - name: get-movie-showings method: GET description: Get movies in local theatres with showtimes inputParameters: - name: startDate in: query type: string required: true description: Start date for showings - name: zip in: query type: string required: false description: ZIP code for location - name: lat in: query type: number required: false description: Latitude coordinate - name: lng in: query type: number required: false description: Longitude coordinate - name: radius in: query type: integer required: false description: Search radius outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-movie-airings method: GET description: Get movies airing on TV lineup inputParameters: - name: lineupId in: query type: string required: true description: Lineup identifier - name: startDateTime in: query type: string required: true description: Start time for airing window outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-movie-showtimes method: GET description: Get showtimes for a specific movie inputParameters: - name: movieId in: path type: string required: true description: Movie identifier - name: startDate in: query type: string required: true description: Start date - name: zip in: query type: string required: false description: ZIP code outputRawFormat: json outputParameters: - name: result type: object value: $. - name: sports path: /v1.1/sports description: Sports event and team information operations: - name: get-sport method: GET description: Get sport details with organizations inputParameters: - name: sportsId in: path type: string required: true description: Sport identifier - name: includeOrg in: query type: boolean required: false description: Include organization details outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-sport-event-airings method: GET description: Get live sports events on a lineup inputParameters: - name: sportsId in: path type: string required: true description: Sport identifier - name: lineupId in: query type: string required: true description: Lineup to search - name: startDateTime in: query type: string required: true description: Start time - name: liveOnly in: query type: boolean required: false description: Filter to live events only outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-organization-airings method: GET description: Get airings for a sports organization inputParameters: - name: organizationId in: path type: string required: true description: Organization identifier - name: lineupId in: query type: string required: false description: Lineup identifier - name: startDateTime in: query type: string required: false description: Start time outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-team-airings method: GET description: Get airings for a specific sports team inputParameters: - name: teamBrandId in: path type: string required: true description: Team brand identifier - name: lineupId in: query type: string required: false description: Lineup identifier - name: startDateTime in: query type: string required: false description: Start time outputRawFormat: json outputParameters: - name: result type: object value: $. - name: celebrities path: /v1.1/celebs description: Celebrity information and TV appearance scheduling operations: - name: get-celebrity method: GET description: Get celebrity details inputParameters: - name: personId in: path type: string required: true description: Person identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-celebrity-airings method: GET description: Get TV airings featuring a celebrity inputParameters: - name: personId in: path type: string required: true description: Person identifier - name: lineupId in: query type: string required: false description: Lineup to search - name: startDateTime in: query type: string required: false description: Start time outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-talk-show-airings method: GET description: Get celebrity talk show appearances inputParameters: - name: lineupId in: query type: string required: true description: Lineup identifier - name: startDateTime in: query type: string required: true description: Start time outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8080 namespace: entertainment-discovery-api description: Unified REST API for entertainment content discovery. resources: - path: /v1/lineups name: lineups description: TV lineup and channel information operations: - method: GET name: get-lineups description: Get TV lineups available for a postal code call: tms-onconnect.get-lineups with: postalCode: rest.postalCode country: rest.country outputParameters: - type: object mapping: $. - path: /v1/lineups/{lineupId}/grid name: tv-grid description: TV programming grid schedule operations: - method: GET name: get-tv-grid description: Get the TV programming grid for a lineup call: tms-onconnect.get-lineup-grid with: lineupId: rest.lineupId startDateTime: rest.startDateTime endDateTime: rest.endDateTime outputParameters: - type: object mapping: $. - path: /v1/programs name: programs description: TV program search and discovery operations: - method: GET name: search-programs description: Search for TV programs, movies, and shows call: tms-onconnect.search-programs with: q: rest.q entityType: rest.entityType genres: rest.genres limit: rest.limit offset: rest.offset outputParameters: - type: object mapping: $. - path: /v1/programs/{tmsId} name: program-detail description: Detailed program metadata operations: - method: GET name: get-program description: Get detailed metadata for a program call: tms-onconnect.get-program with: tmsId: rest.tmsId outputParameters: - type: object mapping: $. - path: /v1/programs/new-airings name: new-airings description: New show airings on a lineup operations: - method: GET name: get-new-show-airings description: Get new episodes and premieres airing on a lineup call: tms-onconnect.get-new-show-airings with: lineupId: rest.lineupId startDateTime: rest.startDateTime outputParameters: - type: object mapping: $. - path: /v1/movies/showings name: movie-showings description: Movies currently showing in theatres operations: - method: GET name: get-movie-showings description: Get movies in local theatres with showtimes call: tms-onconnect.get-movie-showings with: startDate: rest.startDate zip: rest.zip lat: rest.lat lng: rest.lng radius: rest.radius outputParameters: - type: object mapping: $. - path: /v1/movies/tv-airings name: movie-tv-airings description: Movies airing on TV operations: - method: GET name: get-movie-airings description: Get movies airing on a TV lineup call: tms-onconnect.get-movie-airings with: lineupId: rest.lineupId startDateTime: rest.startDateTime outputParameters: - type: object mapping: $. - path: /v1/sports/{sportsId}/events name: sports-events description: Live sports events on TV operations: - method: GET name: get-sport-event-airings description: Get live sports events for a sport on a lineup call: tms-onconnect.get-sport-event-airings with: sportsId: rest.sportsId lineupId: rest.lineupId startDateTime: rest.startDateTime liveOnly: rest.liveOnly outputParameters: - type: object mapping: $. - path: /v1/sports/organizations/{organizationId}/airings name: organization-airings description: Sports organization airings (MLB, NBA, NFL, etc.) operations: - method: GET name: get-organization-airings description: Get all airings for a sports organization call: tms-onconnect.get-organization-airings with: organizationId: rest.organizationId lineupId: rest.lineupId startDateTime: rest.startDateTime outputParameters: - type: object mapping: $. - path: /v1/celebrities/{personId} name: celebrity-detail description: Celebrity information operations: - method: GET name: get-celebrity description: Get celebrity details and biography call: tms-onconnect.get-celebrity with: personId: rest.personId outputParameters: - type: object mapping: $. - path: /v1/celebrities/{personId}/airings name: celebrity-airings description: Celebrity TV appearances operations: - method: GET name: get-celebrity-airings description: Get TV shows featuring a celebrity call: tms-onconnect.get-celebrity-airings with: personId: rest.personId lineupId: rest.lineupId startDateTime: rest.startDateTime outputParameters: - type: object mapping: $. - path: /v1/celebrities/talk-shows name: talk-show-appearances description: Celebrity talk show appearances operations: - method: GET name: get-talk-show-airings description: Get celebrities appearing on talk shows call: tms-onconnect.get-talk-show-airings with: lineupId: rest.lineupId startDateTime: rest.startDateTime outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: entertainment-discovery-mcp transport: http description: MCP server for AI-assisted entertainment content discovery and recommendations. tools: - name: get-tv-lineups description: Find TV lineups (cable, satellite, OTA) available for a postal code hints: readOnly: true openWorld: false call: tms-onconnect.get-lineups with: postalCode: tools.postalCode country: tools.country outputParameters: - type: object mapping: $. - name: get-tv-grid description: Get the full TV programming grid showing what is on across all channels hints: readOnly: true openWorld: false call: tms-onconnect.get-lineup-grid with: lineupId: tools.lineupId startDateTime: tools.startDateTime endDateTime: tools.endDateTime outputParameters: - type: object mapping: $. - name: search-programs description: Search for TV shows, movies, specials, or sports programs by keyword hints: readOnly: true openWorld: true call: tms-onconnect.search-programs with: q: tools.q entityType: tools.entityType genres: tools.genres limit: tools.limit outputParameters: - type: object mapping: $. - name: get-program-details description: Get detailed metadata for a TV program or movie by TMS ID hints: readOnly: true openWorld: false call: tms-onconnect.get-program with: tmsId: tools.tmsId outputParameters: - type: object mapping: $. - name: get-new-show-airings description: Find new episodes and series premieres airing on a TV lineup hints: readOnly: true openWorld: false call: tms-onconnect.get-new-show-airings with: lineupId: tools.lineupId startDateTime: tools.startDateTime outputParameters: - type: object mapping: $. - name: get-movie-theatre-showings description: Find movies currently playing at nearby theatres with showtimes hints: readOnly: true openWorld: false call: tms-onconnect.get-movie-showings with: startDate: tools.startDate zip: tools.zip lat: tools.lat lng: tools.lng radius: tools.radius outputParameters: - type: object mapping: $. - name: get-movies-on-tv description: Find movies airing on TV channels for a lineup hints: readOnly: true openWorld: false call: tms-onconnect.get-movie-airings with: lineupId: tools.lineupId startDateTime: tools.startDateTime outputParameters: - type: object mapping: $. - name: get-live-sports description: Get live sports events airing on TV for a specific sport hints: readOnly: true openWorld: false call: tms-onconnect.get-sport-event-airings with: sportsId: tools.sportsId lineupId: tools.lineupId startDateTime: tools.startDateTime liveOnly: tools.liveOnly outputParameters: - type: object mapping: $. - name: get-sports-league-airings description: Get all TV airings for a sports league or organization (MLB, NFL, NBA, etc.) hints: readOnly: true openWorld: false call: tms-onconnect.get-organization-airings with: organizationId: tools.organizationId lineupId: tools.lineupId startDateTime: tools.startDateTime outputParameters: - type: object mapping: $. - name: get-celebrity-info description: Get biography and details for a celebrity by their TMS person ID hints: readOnly: true openWorld: false call: tms-onconnect.get-celebrity with: personId: tools.personId outputParameters: - type: object mapping: $. - name: get-celebrity-tv-appearances description: Find upcoming TV appearances for a celebrity hints: readOnly: true openWorld: false call: tms-onconnect.get-celebrity-airings with: personId: tools.personId lineupId: tools.lineupId startDateTime: tools.startDateTime outputParameters: - type: object mapping: $. - name: get-talk-show-guests description: Find which celebrities are appearing on talk shows today hints: readOnly: true openWorld: false call: tms-onconnect.get-talk-show-airings with: lineupId: tools.lineupId startDateTime: tools.startDateTime outputParameters: - type: object mapping: $. - name: get-program-genres description: Get the full list of TV program genre categories hints: readOnly: true openWorld: false call: tms-onconnect.get-program-genres outputParameters: - type: object mapping: $.