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

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

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;
      }
    }
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