Skip to main content
Glama
terryso

tv-recommender-mcp-server

find_shows_by_actor

Discover TV shows and series featuring a specific actor by entering their name. Ideal for finding performances by your favorite actors across various programs.

Input Schema

NameRequiredDescriptionDefault
actor_nameYes演员名称,如"布莱恩·科兰斯顿"、"安东尼·斯塔尔"等

Input Schema (JSON Schema)

{ "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "actor_name": { "description": "演员名称,如\"布莱恩·科兰斯顿\"、\"安东尼·斯塔尔\"等", "type": "string" } }, "required": [ "actor_name" ], "type": "object" }

Implementation Reference

  • Core handler function that implements the tool logic: searches for the actor's person ID using TMDb search, then fetches their TV credits (shows) using the person/{id}/tv_credits endpoint.
    export async function findShowsByPersonName(personName: string): Promise<DiscoverShowsResponse> { try { // 先查找人物ID const personId = await findPersonId(personName); if (!personId) { throw new ApiError(`未找到人物: ${personName}`, 404); } // 然后获取其电视作品 return getPersonTvCredits(personId); } catch (error) { throw new ApiError(`查找人物电视作品失败: ${formatErrorMessage(error)}`, 500); } }
  • src/server.ts:111-123 (registration)
    Tool registration in the MCP server, including input schema (actor_name) and thin wrapper handler that delegates to the core implementation.
    server.tool("find_shows_by_actor", { actor_name: z.string().describe('演员名称,如"布莱恩·科兰斯顿"、"安东尼·斯塔尔"等') }, async (params) => { console.log(`收到获取演员作品请求,演员名称: ${params.actor_name}`); const { findShowsByPersonName } = require('./tools/discoverShowsTool'); const results = await findShowsByPersonName(params.actor_name); return { content: [{ type: "text", text: JSON.stringify(results) }] }; } );
  • Zod input schema for the tool parameters.
    { actor_name: z.string().describe('演员名称,如"布莱恩·科兰斯顿"、"安东尼·斯塔尔"等') },
  • Helper function that fetches TV show credits for a given person ID using TMDb's person/{id}/tv_credits endpoint and formats the response.
    export async function getPersonTvCredits(personId: number): Promise<DiscoverShowsResponse> { try { // 调用person/{person_id}/tv_credits API获取此人参与的所有电视剧 const response = await tmdbClient.getPersonTvCredits(personId); // 格式化结果以匹配DiscoverShowsResponse格式 const results = response.cast || []; const formattedResults = formatDiscoverResults(results); return { page: 1, results: formattedResults, total_pages: 1, total_results: formattedResults.length }; } catch (error) { throw new ApiError(`获取人物电视作品失败: ${formatErrorMessage(error)}`, 500); } }
  • Helper function to search for a person ID by name using TMDb search API.
    export async function findPersonId(personName: string): Promise<number | null> { try { const response = await tmdbClient.searchPerson(personName); if (response.results && response.results.length > 0) { return response.results[0].id; } return null; } catch (error) { return null; } }

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