Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TMDB_API_KEYYesAPI key for The Movie Database (TMDB), obtained from account settings in the API section.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_genres

List all available entertainment genres across media types and providers.

Returns: Dictionary mapping genre names to their properties: { "Documentary": { "id": 99, "has_films": true, "has_tv_shows": true }, "Action": { "id": 28, "has_films": true, "has_tv_shows": false }, ... }

list_genres_simplified

Get a simplified list of available genre names.

Uses LLM sampling to extract genre names from the full genre data, returning a clean, formatted list without IDs or media type flags. Falls back to direct extraction if sampling is not supported.

Returns: A formatted string containing the sorted list of genre names.

Raises: Sampling errors are logged and result in fallback to direct key extraction.

categorize_genres

Categorize all available genres by mood/tone.

Groups entertainment genres into mood categories (Dark, Light, Serious, Fun) using a hybrid approach: hardcoded mappings for common genres with LLM-based categorization for edge cases and unknown genres.

Returns: Dictionary mapping mood categories to lists of genre names: { "Dark": ["Horror", "Thriller", "Crime", "Mystery"], "Light": ["Comedy", "Family", "Kids", "Animation", "Romance"], "Serious": ["Documentary", "History", "War", "Drama"], "Fun": ["Action", "Adventure", "Fantasy", "Science Fiction"], "Other": ["Western", "Film Noir"] }

compare_llm_responses

Compare how Claude and a second agent (defaults to Ollama) respond to the same prompt.

Sends the same prompt to both Claude (via ctx.sample) and the second agent in parallel, returning a structured comparison of their responses.

Args: prompt: The prompt to send to both LLMs llm_model: Which second model to use (default: llama3.2:latest) temperature: Temperature for both LLMs (default: 0.7) max_tokens: Maximum tokens for responses (default: 500)

Returns: Dictionary containing: { "prompt": "original prompt text", "claude_response": { "text": "Claude's response...", "model": "claude-sonnet-4-5", "error": None }, "alternative_response": { "text": "Ollama's response...", "model": "llama3.2:latest", "error": None }, "comparison": { "claude_length": 150, "alternative_length": 142, "both_succeeded": true } }

Raises: ValueError: If prompt is empty or invalid parameters provided

discover_films

Discovers films from based on optional filters like genre, release year, language, and sorting preferences. For now, defaults to TMDB service.

Args: genre_id: Optional TMDB genre ID to filter by (use list_genres to find IDs) year: Optional release year to filter by (e.g., 2024) language: Optional ISO 639-1 language code (e.g., "en", "es", "fr") sort_by: Sort order - options: "popularity.desc", "popularity.asc", "vote_average.desc", "vote_average.asc", "date.desc", "date.asc" (None defaults to "popularity.desc") page: Page number for pagination, 1-indexed (default: 1) max_results: Maximum number of results to return (default: 20, max: 100)

Returns: Dictionary containing: { "results": [ { "id": str, "media_type": str, "title": str, "date": str (YYYY-MM-DD format, may be None), "rating": float (0-10 scale, may be None), "description": str (may be None), "genre_ids": List[int] } ], "total_results": int, "page": int, "total_pages": int, "provider": str }

Raises: ValueError: If invalid parameters provided RuntimeError: If service returns an error ConnectionError: If unable to connect to service

discover_television

Discovers television shows based on optional filters like genre, first air year, language, and sorting preferences. For now, defaults to TMDB service.

Args: genre_id: Optional TMDB genre ID to filter by (use list_genres to find IDs) year: Optional first air year to filter by (e.g., 2024) language: Optional ISO 639-1 language code (e.g., "en", "es", "fr") sort_by: Sort order - options: "popularity.desc", "popularity.asc", "vote_average.desc", "vote_average.asc", "date.desc", "date.asc" (None defaults to "popularity.desc") page: Page number for pagination, 1-indexed (default: 1) max_results: Maximum number of results to return (default: 20, max: 100)

Returns: Dictionary containing: { "results": [ { "id": str, "media_type": str, "title": str, "date": str (YYYY-MM-DD format, may be None), "rating": float (0-10 scale, may be None), "description": str (may be None), "genre_ids": List[int] } ], "total_results": int, "page": int, "total_pages": int, "provider": str }

Raises: ValueError: If invalid parameters provided RuntimeError: If service returns an error ConnectionError: If unable to connect to service

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
get_versionGet MCP server version.

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/chrisbrickey/greenroom'

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