Static source inference · medium confidence · detected: Logging
Deprecated protocol patterns detected
Summary
The server defines 6 tools but provides severely incomplete schemas and minimal parameter descriptions. Of the 6 tools, only 2 (search, get_details) have visible input schemas in test files; the other 4 tools (discover_movies, discover_tv, get_trending, get_recommendations) have no input schemas visible in the provided source code. No output schemas are documented for any tool. Parameter descriptions are present for search and get_details but missing entirely for the other 4 tools. Tool descriptions are generic and lack guidance on when to use each tool vs. alternatives. The codebase shows tool registration in server.go but actual parameter definitions are not visible, suggesting they may be missing or inferred.
Tools (6)
discover_moviesread onlyauthsource verified33/100
Discover movies with various filtering and sorting options
discover_tvread onlyauthsource verified33/100
Discover TV shows with various filtering and sorting options
get_detailsread onlyauthsource verified62/100
Get detailed information about a specific movie or TV show
get_recommendationsread onlyauth37/100
Get recommendations based on a movie or TV show
get_trendingread onlyauthsource verified38/100
Get trending movies and TV shows
searchread onlyauthsource verified62/100
Search for movies, TV shows, and people on TMDB using a query string
No input schemas visible for 4 of 6 tools (discover_movies, discover_tv, get_trending, get_recommendations). Cannot verify parameter types, constraints, or descriptions. These tools are inferred to exist via registration in server.go but actual definitions are not in provided source.
No output schemas documented for any tool. LLMs cannot predict what fields to expect or plan downstream tool chains. Violates pattern requirement to document return types.
Tool descriptions are minimal and generic. 'Discover movies with various filtering and sorting options' does not explain WHEN to use discover_movies vs search or get_trending, what filters are available, or what the response contains. Descriptions must be 50-200 chars and answer: what does it do? When should the LLM call it instead of a similar tool? What does it return?
Recommendations
Add complete input schemas for discover_movies, discover_tv, get_trending, and get_recommendations. Each parameter must have a 'type', 'description', and any applicable constraints (enum, minLength, maxLength, minimum, maximum). Example: for discover_movies, if there are genre, release_date, and rating filters, declare each as a separate parameter with type string/integer and constraints.
Document output schemas for all 6 tools. Specify the response object structure, including pagination fields (total_count, page, total_pages), result arrays, and all fields returned per item (id, title, overview, release_date, etc.). Use JSON Schema format.
Expand tool descriptions to 50-200 characters and explain: (1) what the tool does, (2) when to use it instead of similar tools (e.g., discover_movies vs search), (3) what data it returns. Example for discover_movies: 'Discover movies by genre, release date, rating, or popularity. Use this to explore collections without a specific query. Returns paginated list of movies with ID, title, overview, release date, and rating.'
Convert media_type parameter in get_details to an explicit enum: {'type': 'string', 'enum': ['movie', 'tv'], 'description': 'Type of media to retrieve details for: movie or tv'}.
For search tool, add examples of valid query syntax in the parameter description (e.g., 'Supports exact titles or partial names. Example: "The Matrix", "Inception", "John Doe" for person searches.').
Add error handling guidance to tool descriptions. Example: 'If no results are found, try a shorter or different query. If you get a 401 error, the API key may be invalid. If you get a 429 error, the rate limit has been exceeded, wait before retrying.'
Spec posture evidence
Inferred effective spec: <=2025-11-25.
Relies on Logging (deprecated) - log to stderr or use OpenTelemetry
For discover_movies and discover_tv tools, 'various filtering and sorting options' is vague. Which filters? Enums? Date ranges? Rating bounds? The description provides no parameter guidance, forcing LLMs to guess valid inputs.
search tool parameter 'query' accepts string up to 500 chars, but no description explains what query syntax is supported (exact phrases? operators? special characters?). get_details requires media_id (integer) and media_type (string), but media_type description does not use an enum, just the text 'Type of media: movie or tv'. Should be an enum: ['movie', 'tv'].
No error handling documentation. Tools do not guide the LLM on what to do if a search returns no results, a media_id is invalid, or the TMDB API rate limit is hit. Errors should be actionable (pattern:recovery-guide).
All tools are READ_ONLY but none carry tool annotations (readOnlyHint, destructiveHint, idempotentHint) in the schema. Tool annotations are part of current spec and help clients avoid caching errors.
Add readOnlyHint: true to all 6 tools' input schemas, signaling to clients that these tools do not modify state. This enables caching and prevents clients from applying unnecessary consistency checks.
Expand discover_movies and discover_tv descriptions to enumerate available filters: 'Discover movies/TV shows using filters for genre (id or name), release year, vote average (rating), vote count, language, and sort options (popularity, rating, release date). Returns paginated results with IDs, titles, and metadata needed for further exploration.'
Add parameter 'page' with description 'Page number for pagination (default: 1, optional)' and 'limit' with description 'Results per page (default: 20, min: 1, max: 100, optional)' to all listing tools (discover_movies, discover_tv, get_trending, search) if not already present.
Document dependencies between tools. Example: 'To get recommendations for a specific movie, you must first call search or get_details to obtain the media_id, then pass it to get_recommendations.'