Skip to main content
Glama
terryso

tv-recommender-mcp-server

get_trending_shows

Discover trending TV shows based on daily or weekly popularity. Use the tool to fetch recommendations by specifying a time window and page number.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNo页码,默认为1
time_windowNo时间窗口,day表示日趋势,week表示周趋势,默认为weekweek

Implementation Reference

  • The core handler function implementing the logic for fetching and formatting trending TV shows from TMDb API.
    export async function getTrendingShows(params: GetTrendingShowsParams): Promise<ShowsListResponse> {
      const { time_window, page = 1 } = params;
    
      try {
        const response = await tmdbClient.getTrendingTvShows(time_window, page);
        
        // 格式化结果
        const result: ShowsListResponse = {
          page: response.page,
          results: response.results.map((show: any) => ({
            id: show.id,
            name: show.name || show.original_name,
            overview: show.overview || '暂无简介',
            poster_path: show.poster_path,
            vote_average: show.vote_average || 0,
            first_air_date: show.first_air_date
          })),
          total_pages: response.total_pages,
          total_results: response.total_results
        };
        
        return result;
      } catch (error) {
        throw new Error(`获取${time_window === 'day' ? '日' : '周'}趋势剧集失败: ${error instanceof Error ? error.message : String(error)}`);
      }
    } 
  • TypeScript interface defining the input parameters for the getTrendingShows function.
    export interface GetTrendingShowsParams {
      /** 时间窗口,'day'表示日趋势,'week'表示周趋势 */
      time_window: 'day' | 'week';
      /** 页码,默认为1 */
      page?: number;
    }
  • src/server.ts:187-199 (registration)
    Registration of the 'get_trending_shows' tool on the MCP server, including Zod input validation schema and wrapper handler.
    server.tool("get_trending_shows",
      { 
        time_window: z.enum(['day', 'week']).default('week').describe('时间窗口,day表示日趋势,week表示周趋势,默认为week'),
        page: z.number().optional().default(1).describe('页码,默认为1')
      },
      async (params) => {
        console.log(`收到获取${params.time_window === 'day' ? '日' : '周'}趋势剧集请求,页码: ${params.page || 1}`);
        const results = await getTrendingShows(params);
        return {
          content: [{ type: "text", text: JSON.stringify(results) }]
        };
      }
    );
  • TypeScript interface defining the output response structure for the getTrendingShows function.
    export interface ShowsListResponse {
      /** 当前页码 */
      page: number;
      /** 剧集列表 */
      results: ShowInfo[];
      /** 总页数 */
      total_pages?: number;
      /** 总结果数 */
      total_results?: number;
    }
  • Re-export of the getTrendingShows function and related types from popularTrendingTool.ts for centralized imports.
    // 导出热门与趋势剧集工具
    export {
      getPopularShows,
      getTrendingShows,
      type GetPopularShowsParams,
      type GetTrendingShowsParams,
      type ShowsListResponse,
      type ShowInfo
    } from './popularTrendingTool';
Install Server

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/terryso/tv-recommender-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server