Game of Thrones subtitle search server using vector embeddings and semantic search
Single tool 'get_subtitles' with minimal definition quality. Tool has a reasonable name (verb_noun pattern) and a short description (68 chars), but critical gaps in parameter documentation and output schema definition. Input schema is present but parameter 'query' lacks a description field in the schema itself. No output schema is documented anywhere in the source code. No error handling guidance provided. The tool performs a semantic search operation but returns raw Milvus results without explaining the response structure to an LLM. No pagination, limits, or field documentation. This is typical of early-stage hobby projects, not production-ready tooling.
Get Game of Thrones season 1 subtitles related to a query.
No output schema documented. The tool returns raw Milvus search results (likely a list of objects with 'season', 'episode', 'quote' fields), but there is no documentation of the response structure for the LLM. LLMs cannot plan downstream operations or extract fields without knowing the return type.
Parameter description missing in schema. The 'query' parameter in the input schema has a description field in JSON Schema, but it is vague ('User text.'), fewer than 20 chars, and does not explain what kind of query is expected (free text, quote, character name, plot summary?), format constraints, or length limits.
No error handling guidance. If the search returns no results, fails to connect to the database, or the query is malformed, there is no documented recovery path. No error responses are specified, an LLM will not know whether to retry, rephrase the query, or ask the user.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 46 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 29 | - | v1 |
No pagination or result limits. The tool calls `client.search(..., limit=5)` internally, but this limit is hardcoded and not exposed to the LLM. No description states 'returns up to 5 results' or provides a next_cursor for pagination. If an agent needs all matches or only the top match, it cannot control the limit.
Response not tailored for LLM consumption. Raw Milvus results likely include internal metadata (distance scores, collection info) that are irrelevant to a chat interaction. These waste tokens and dilute the semantic signal. The tool should strip or summarize metadata and return only the matched quotes with episode numbers.