get_popular_shows
Retrieve popular TV shows with simple pagination for easy navigation and discovery of trending content.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 页码,默认为1 |
Implementation Reference
- src/tools/popularTrendingTool.ts:58-83 (handler)The core handler function that fetches popular TV shows using tmdbClient.getPopularTvShows, maps and formats the results into ShowsListResponse, and handles errors.export async function getPopularShows(params: GetPopularShowsParams = {}): Promise<ShowsListResponse> { const { page = 1 } = params; try { const response = await tmdbClient.getPopularTvShows(page); // 格式化结果 const result: ShowsListResponse = { page: response.page, results: response.results.map((show: any) => ({ id: show.id, name: show.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(`获取热门剧集失败: ${error instanceof Error ? error.message : String(error)}`); } }
- src/server.ts:174-185 (registration)Registers the 'get_popular_shows' tool on the MCP server with Zod schema for 'page' parameter and handler that calls getPopularShows.server.tool("get_popular_shows", { page: z.number().optional().default(1).describe('页码,默认为1') }, async (params) => { console.log(`收到获取热门剧集请求,页码: ${params.page || 1}`); const results = await getPopularShows(params); return { content: [{ type: "text", text: JSON.stringify(results) }] }; } );
- src/tools/popularTrendingTool.ts:6-9 (schema)TypeScript interface defining the input parameters for the getPopularShows function.export interface GetPopularShowsParams { /** 页码,默认为1 */ page?: number; }
- TypeScript interface defining the output response structure for the getPopularShows function.export interface ShowsListResponse { /** 当前页码 */ page: number; /** 剧集列表 */ results: ShowInfo[]; /** 总页数 */ total_pages?: number; /** 总结果数 */ total_results?: number; }
- src/tools/index.ts:58-65 (registration)Re-exports the getPopularShows function and types from popularTrendingTool.ts for use in other modules like server.ts.export { getPopularShows, getTrendingShows, type GetPopularShowsParams, type GetTrendingShowsParams, type ShowsListResponse, type ShowInfo } from './popularTrendingTool';