Skip to main content
Glama

get_cast

Retrieve the cast of a movie using its IMDb ID. This tool provides a JSON object with all cast members for the specified film.

Instructions

Get the cast of a movie from IMDb. Args: imdbId: The IMDb ID of the movie to get cast for. Returns: JSON object containing the cast of the movie.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
imdb_idYes

Implementation Reference

  • The core handler implementation for the 'get_cast' MCP tool. It fetches the cast list from the IMDb API using the provided imdb_id and returns JSON-formatted data. Registered via @mcp.tool() decorator.
    @mcp.tool() async def get_cast(imdb_id: str, ctx: Context) -> str: """Get the cast of a movie from IMDb. Args: imdbId: The IMDb ID of the movie to get cast for. Returns: JSON object containing the cast of the movie. """ cast_url = f"{BASE_URL}/{imdb_id}/cast" cast_data = await make_imdb_request(cast_url, {}, ctx) if not cast_data: return "Unable to fetch cast data for this movie or movie not found." return json.dumps(cast_data, indent=4)
  • The call to register_tools(server) in the MCP server initialization, which registers all tools including 'get_cast'.
    # Register all tools with the server register_tools(server)
  • Key helper function called by get_cast to perform the actual HTTP request to the IMDb RapidAPI, handling authentication, caching, and error management.
    async def make_imdb_request(url: str, querystring: dict[str, Any], ctx: Optional[Context] = None) -> Optional[Dict[str, Any]]: """Make a request to the IMDb API with proper error handling and caching.""" # Check if it's time to clean the cache cache_manager.cleanup_if_needed() # Create a cache key from the URL and querystring cache_key = f"{url}_{str(querystring)}" # Try to get from cache first cached_data = cache_manager.cache.get(cache_key) if cached_data: return cached_data # Get API key from session config or fallback to environment variable api_key = None if ctx and hasattr(ctx, 'session_config') and ctx.session_config: api_key = ctx.session_config.rapidApiKeyImdb if not api_key: api_key = os.getenv("RAPID_API_KEY_IMDB") # Not in cache, make the request headers = { "x-rapidapi-key": api_key, "x-rapidapi-host": "imdb236.p.rapidapi.com", } if not api_key: raise ValueError("API key not found. Please set the RAPID_API_KEY_IMDB environment variable or provide rapidApiKeyImdb in the request.") try: response = requests.get(url, headers=headers, params=querystring, timeout=30.0) response.raise_for_status() data = response.json() # Cache the response cache_manager.cache.set(cache_key, data) return data except Exception as e: raise ValueError(f"Unable to fetch data from IMDb. Please try again later. Error: {e}")
  • The base URL constant used to construct the cast API endpoint in get_cast: f'{BASE_URL}/{imdb_id}/cast'.
    BASE_URL = "https://imdb236.p.rapidapi.com/api/imdb"
  • Alternative registration call in stdio transport mode.
    register_tools(server)

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/uzaysozen/imdb-mcp-server'

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