An MCP Server to retrieve Star Wars API usage information from SWAPI.dev with auto-pagination and caching.
This server demonstrates moderate definition quality with mixed results across tools. Naming is generally consistent with verb-noun patterns (get_*, clear_*), and all tools have descriptions. However, schemas are present but basic, parameter descriptions are minimal, and there is no documented output structure. The tools fall into repetitive patterns (get_people, get_person_by_id, get_planets, get_planet_by_id, etc.), which reduces differentiation clarity. Critical gaps include: missing output schema documentation, no error handling guidance, no validation constraints documented in descriptions, and the 'universal-answer' tool appears to be a demo/test tool that should be removed. The server uses Zod for schema validation, which is positive, but the generated JSON schemas lack richness in parameter descriptions.
Clear the Star Wars API cache (partially or completely)
Get statistics about the Star Wars API cache usage
Get details about a specific Star Wars film by ID
List Star Wars films with automatic pagination and optional search
List Star Wars characters with automatic pagination and optional search
Get details about a specific Star Wars character by ID
Get details about a specific Star Wars planet by ID
List Star Wars planets with automatic pagination and optional search
Missing output schema documentation for all tools. LLMs cannot determine what fields to expect in responses, making it impossible to plan downstream tool calls or extract specific data.
Parameter descriptions are minimal and generic. The 'page' parameter appears in all list tools but lacks explanation of range (e.g., '1-based or 0-based?', 'min=1, max=unknown?'). The 'search' parameter lacks guidance on matching behavior or case sensitivity.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | F | 46 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 46 | - | v1 |
Get details about a specific Star Wars species by ID
List Star Wars species with automatic pagination and optional search
Get details about a specific Star Wars starship by ID
List Star Wars starships with automatic pagination and optional search
Get details about a specific Star Wars vehicle by ID
List Star Wars vehicles with automatic pagination and optional search
The secret of the universe with math tricks
No error handling or recovery guidance documented. If a tool call fails (e.g., invalid page, ID not found), the LLM has no guidance on what to do next or how to self-correct.
'universal-answer' tool appears to be a demo/test tool ('The secret of the universe with math tricks'). This should be removed from production, it pollutes the tool namespace and confuses LLMs about the server's purpose.
List tools (get_people, get_planets, etc.) accept a 'fetchAllPages' parameter with default=true, but there is no documentation of pagination limits, performance implications, or when this default might cause timeouts. LLMs could unknowingly trigger expensive full-catalog fetches.
The 'clear_cache' tool accepts an optional 'endpoint' parameter but provides no enum or documentation of valid endpoint values. Without this, LLMs cannot know whether to pass '/people/', 'people', 'get_people', or some other format.
Parameter type flexibility (e.g., id: string | number in get_person_by_id, get_planet_by_id, etc.) is documented but not constrained with validation rules. The description should state what formats are accepted (e.g., 'numeric ID like 1 or 42') to prevent LLM confusion.
'get_species_list' uses a non-standard name. Other list tools follow the pattern 'get_<resource>s' (get_people, get_planets, get_films), making 'get_species' or 'list_species' clearer than 'get_species_list'.