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
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 页码,默认为1 | |
| time_window | No | 时间窗口,day表示日趋势,week表示周趋势,默认为week | week |
Implementation Reference
- src/tools/popularTrendingTool.ts:90-115 (handler)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; }
- src/tools/index.ts:57-65 (helper)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';