MyShows MCP Server
The MyShows MCP Server enables programmatic interaction with the myshows.me API to manage TV shows and movies in your profile.
Search for content - Find TV shows and movies by name with optional year filtering
Retrieve profile data - Access your watched movies, complete shows list, and personalized recommendations
Get detailed information - Fetch comprehensive details about specific shows or movies by their MyShows ID
Track episode viewing - View which episodes you've watched for any show and check your episode history
Manage watch status - Mark episodes as watched/unwatched (supports single and batch operations) and set movie status (watching, cancelled, later, or remove)
Access calendar - View episodes scheduled to air today or upcoming
Update viewing history - Modify your viewing records through various status operations
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MyShows MCP Serverwhat episodes are airing today?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MyShows MCP Server
This project provides a Model Context Protocol (MCP) server for interacting with the myshows.me API. It allows you to connect agents to your MyShows profile to manage and search for TV shows.
Configuration
Configuration is handled via environment variables. You must set your myshows.me credentials before running the server.
Related MCP server: YARR Media Stack MCP Server
MCP configuration
{
/// The name of your MCP server
"myshows": {
/// The command which runs the MCP server
"command": "uvx",
/// The arguments to pass to the MCP server
"args": ["--from","git+https://github.com/zeloras/myshows_mcp.git","myshows_mcp"],
/// The environment variables to set
"env": {"MYSHOWS_LOGIN":"login","MYSHOWS_PASSWORD":"pwd"}
}
}Available Tools
The server exposes the following tools:
search_shows(query: str, year: int = None, page: int = 0): Searches for TV shows by name and optional year.watched_movies(page: int = 0): Retrieves a list of movies you have watched.get_movie_show_by_id(myshows_item_id: int): Retrieves detailed information about a movie or show by its MyShows ID.get_viewed_episodes(myshows_item_id: int): Retrieves a list of episodes you have viewed for a specific show by its MyShows ID.check_episode(episode_id: int | list[int]): Marks an episode as watched by its MyShows ID. Supports both single episode ID and list of episode IDs for batch operations.uncheck_episode(episode_id: int | list[int]): Marks an episode as unwatched. Supports both single episode ID and list of episode IDs for batch operations.set_movie_watch_status(movie_id: int, status: str): Sets the watch status of a movie by its MyShows ID.get_calendar_episodes(): Retrieves a list of episodes scheduled for today.get_myshows_recomendations(): Retrieves a list of recommendations from MyShows.get_myshows_profile_shows_list(): Retrieves a list of shows from your MyShows profile.
Available Tools
10 toolscheck_episodeA
Marks a specific episode as watched by its ID. Supports both single episode ID and list of episode IDs for batch operations.
| Name | Required | Description | Default |
|---|---|---|---|
| episode_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the action ('marks as watched') without disclosing behavioral traits like authentication needs, side effects (e.g., updates to user profiles), rate limits, or error handling. It mentions batch support, which adds some context, but overall leaves critical mutation behavior underspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with zero waste: the first states the core purpose, and the second adds crucial batch operation detail. It's appropriately sized and front-loaded, with every sentence earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's mutation nature (implied by 'marks'), no annotations, no output schema, and 0% schema coverage, the description is incomplete. It lacks details on permissions, response format, error cases, or how it differs from similar tools like 'set_movie_watch_status', making it inadequate for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clarifies that 'episode_id' can be a single integer or a list of integers for batch operations, adding meaningful semantics beyond the schema's structural definition. However, it doesn't explain ID formats or constraints, leaving some gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Marks... as watched') and resource ('a specific episode by its ID'), distinguishing it from siblings like 'uncheck_episode' (which presumably unmarks) and 'get_viewed_episodes' (which retrieves). It goes beyond tautology by specifying the operation's scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for marking episodes as watched, with no explicit guidance on when to use it versus alternatives like 'set_movie_watch_status' or 'watched_movies'. It mentions batch operations, which provides some context but lacks clear when/when-not directives or prerequisite information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_calendar_episodesB
Retrieves the calendar episodes from MyShows with information about the next episodes. This method fetches the next episodes scheduled to air, including their details. :return: A dictionary containing the calendar episodes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It states the tool retrieves/fetches data, implying a read-only operation, but doesn't specify authentication needs, rate limits, error handling, or data freshness. The mention of 'next episodes scheduled to air' hints at future-oriented data, but behavioral traits like pagination or response format are not described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise with three sentences, but has some redundancy: 'Retrieves the calendar episodes' and 'This method fetches the next episodes' convey similar information. The return statement adds value by specifying output format. However, it could be more front-loaded by merging the first two sentences for better flow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate. It explains what the tool does and the return format, but lacks behavioral context like authentication or error handling. For a read operation with no complex inputs, this is acceptable but leaves gaps an agent might need to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, maintaining focus on the tool's purpose. This meets the baseline for tools with no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: retrieving calendar episodes from MyShows with information about next episodes. It specifies the resource (calendar episodes from MyShows) and action (retrieves/fetches next episodes scheduled to air). However, it doesn't explicitly differentiate from sibling tools like 'get_viewed_episodes' or 'check_episode' which might also involve episode data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, context for use, or comparison to sibling tools like 'get_myshows_profile_shows_list' or 'search_shows' that might retrieve similar data. The agent must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_movie_show_by_idB
Retrieves a show or movie by its MyShows ID. :param myshows_item_id: The MyShows ID of the show or movie to retrieve. :return: A dictionary containing the show's details, including episodes and season counts.
| Name | Required | Description | Default |
|---|---|---|---|
| myshows_item_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It states this is a retrieval operation but doesn't disclose behavioral traits like authentication requirements, rate limits, error conditions, or whether it's idempotent. The return format is mentioned but lacks detail on structure or potential null responses.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with three sentences. The first states the purpose, the second explains the parameter, and the third describes the return. No wasted words, though the colon-prefixed format is slightly unconventional.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with 1 parameter and no output schema, the description is minimally adequate. It covers purpose, parameter meaning, and return type, but lacks behavioral context (auth, errors, etc.) and doesn't fully address sibling differentiation given the server's multiple show-related tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by explaining the single parameter: 'The MyShows ID of the show or movie to retrieve.' This adds meaning beyond the schema's type declaration, though it doesn't specify format constraints or example values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Retrieves a show or movie by its MyShows ID.' This is a specific verb ('Retrieves') and resource ('show or movie'), though it doesn't explicitly differentiate from siblings like 'search_shows' or 'get_myshows_profile_shows_list' beyond the ID-based lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a specific MyShows ID, but doesn't explicitly state when to use this versus alternatives like 'search_shows' (for name-based queries) or 'get_myshows_profile_shows_list' (for user-specific lists). No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_myshows_profile_shows_listB
Retrieves the list of tv shows from the MyShows profile. :return: A dictionary containing the list of tv shows.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the return type ('A dictionary containing the list of tv shows'), which is helpful, but fails to mention critical aspects like whether authentication is required, rate limits, pagination behavior, or error conditions. For a read operation with zero annotation coverage, this leaves important behavioral traits unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences that efficiently state the purpose and return value. It is front-loaded with the core functionality and avoids unnecessary elaboration. However, the colon before ':return:' is slightly awkward, and it could be structured more cleanly (e.g., 'Returns: A dictionary...'), but this is a minor issue.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate. It covers the purpose and return type, but lacks context about authentication, error handling, or sibling differentiation, which would be valuable for an agent. Without annotations or output schema, the description should do more to compensate, but it meets the bare minimum for a basic retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description adds no parameter information, which is appropriate here. Baseline for 0 parameters is 4, as the description need not compensate for any gaps, and it correctly avoids redundant details about inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Retrieves') and resource ('list of tv shows from the MyShows profile'), making the purpose unambiguous. It distinguishes from siblings like 'search_shows' (searching) or 'get_calendar_episodes' (calendar-focused), though it doesn't explicitly name alternatives. The description avoids tautology by specifying what is retrieved beyond just the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_myshows_recomendations' or 'get_viewed_episodes'. It lacks context about prerequisites (e.g., authentication needs) or typical use cases, leaving the agent to infer usage based on the purpose alone. This is a significant gap for a tool with multiple siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_myshows_recomendationsC
Retrieves recommendations from MyShows. :return: A dictionary containing the recommendations.
| Name | Required | Description | Default |
|---|---|---|---|
| self | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states the tool retrieves recommendations and returns a dictionary, but doesn't disclose behavioral traits like authentication requirements, rate limits, pagination, freshness of data, or whether it's a read-only operation. This is inadequate for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two brief sentences, though the colon before 'return' is a minor formatting issue. It's front-loaded with the core purpose, but could be more structured by explicitly separating purpose from return value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, 0% schema coverage, no output schema, and multiple sibling tools, the description is incomplete. It doesn't explain the parameter, return format beyond 'dictionary', or how this tool differs from others, making it insufficient for an agent to use effectively without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, with one undocumented parameter 'self'. The description provides no information about this parameter's purpose, format, or semantics (e.g., whether it's a user ID, authentication token, or something else). The description fails to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'retrieves recommendations from MyShows', which is a clear verb+resource combination. However, it doesn't distinguish this from sibling tools like 'search_shows' or 'get_myshows_profile_shows_list', leaving ambiguity about what specific type of recommendations are provided (personalized vs general, TV vs movies).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With siblings like 'search_shows', 'get_calendar_episodes', and 'get_myshows_profile_shows_list', the description doesn't indicate whether this is for personalized recommendations, trending content, or another context, leaving the agent to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_viewed_episodesB
Retrieves the viewed episodes of a TV show by its ID. :param myshows_item_id: The ID of the TV show to retrieve episodes for. :return: A dictionary containing the episodes of the TV show.
| Name | Required | Description | Default |
|---|---|---|---|
| myshows_item_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states it 'retrieves' viewed episodes, implying a read-only operation, but doesn't cover aspects like authentication needs, rate limits, error handling, or whether it returns all episodes or paginated results. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by parameter and return details. It's efficient with no wasted words, though the use of ':param' and ':return' markers is slightly informal for MCP standards but doesn't hinder clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter, no output schema, no annotations), the description is minimally adequate. It covers the purpose and parameter semantics but lacks behavioral details like response format (beyond 'dictionary'), error cases, or integration with sibling tools. Without annotations or output schema, more context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context for the single parameter 'myshows_item_id', specifying it's 'The ID of the TV show to retrieve episodes for.' This clarifies the parameter's purpose beyond the schema's type (integer). With 0% schema description coverage and only one parameter, this compensation is effective, though it doesn't detail format constraints (e.g., valid ID ranges).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Retrieves') and resource ('viewed episodes of a TV show'), specifying it's for episodes that have been viewed. It distinguishes from siblings like 'get_calendar_episodes' (calendar-based) or 'search_shows' (searching), but doesn't explicitly contrast with 'check_episode' or 'uncheck_episode' which might involve viewing status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives is provided. It doesn't mention when to choose this over 'check_episode' (which might mark episodes as viewed) or 'get_myshows_profile_shows_list' (which could list shows with viewing data), leaving usage context implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_showsC
Searches for TV shows/movies on MyShows by a query and optional year. :param query: The search query string. :param year: Optional year to filter the search results. :param page: The page number to retrieve (default is 0). :return: A dictionary containing the search results.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| year | No | ||
| page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions pagination ('page number to retrieve') and return format ('dictionary containing the search results'), but lacks critical details like rate limits, authentication needs, error handling, or whether results are cached. For a search tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with the core purpose in the first sentence. The parameter and return explanations are concise, though the use of Python-style ':param' and ':return' markers is slightly verbose. Overall, it avoids unnecessary fluff and communicates key points efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and parameters but lacks depth in behavioral traits, usage context, and output details. Without annotations or output schema, more elaboration on results structure or error cases would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning for all three parameters: 'query' as a search string, 'year' as an optional filter, and 'page' for pagination with a default. However, it doesn't explain parameter constraints (e.g., query length, year range, page limits) or interactions (e.g., how year affects results), leaving gaps in understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Searches for TV shows/movies on MyShows by a query and optional year.' It specifies the verb ('Searches'), resource ('TV shows/movies'), and platform ('MyShows'). However, it doesn't explicitly differentiate from sibling tools like 'get_movie_show_by_id' or 'get_myshows_recomendations', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_movie_show_by_id' for specific IDs or 'get_myshows_recomendations' for recommendations, nor does it specify use cases like fuzzy matching versus exact lookups. This lack of context leaves the agent without clear selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_movie_watch_statusB
Sets the watch status of a movie by its ID. :param movie_id: The ID of the movie to set the watch status for. :param status: The watch status to set ( "watching" - watching the movie, "cancelled" - stop watching the movie, "later" - the movie to watch later, "remove" - have not watched the movie yet ) :return: A dictionary containing the result of the operation.
| Name | Required | Description | Default |
|---|---|---|---|
| movie_id | Yes | ||
| status | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'Sets' a status, implying a mutation operation, but doesn't describe side effects (e.g., if it updates a database, requires authentication, or has rate limits), error handling, or what the return dictionary contains, which is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the core purpose in the first sentence. The parameter explanations are necessary but could be slightly more streamlined; overall, it avoids unnecessary verbosity and maintains a clear structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits (e.g., permissions, side effects), return value specifics, and usage context, making it inadequate for safe and effective tool invocation by an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning beyond the input schema, which has 0% description coverage. It explains the purpose of both parameters: 'movie_id' identifies the movie, and 'status' includes detailed enum-like values with explanations ('watching', 'cancelled', etc.), fully compensating for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Sets') and resource ('watch status of a movie by its ID'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'watched_movies' or 'uncheck_episode', which might have overlapping functionality for tracking viewing status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid movie ID), exclusions, or how it relates to sibling tools like 'watched_movies', leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uncheck_episodeB
Unmarks a specific episode as watched by its ID. Supports both single episode ID and list of episode IDs for batch operations.
| Name | Required | Description | Default |
|---|---|---|---|
| episode_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions batch operation support, which adds some context, but fails to address critical aspects like permissions needed, whether the action is reversible, or any rate limits. This leaves significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and concise, consisting of two sentences that efficiently convey the core functionality and batch support without any wasted words. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity as a mutation operation with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits, error handling, and return values, making it inadequate for safe and effective use by an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful semantics beyond the input schema by explaining that 'episode_id' can be a single integer or a list of integers for batch operations, which clarifies the 'anyOf' structure in the schema. With 0% schema description coverage and 1 parameter, this compensates well, though it could specify format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('unmarks') and resource ('a specific episode as watched'), and distinguishes it from sibling tools like 'check_episode' by indicating an opposite action. It is precise and avoids tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as 'check_episode' or 'set_movie_watch_status', nor does it mention any prerequisites or exclusions. Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watched_moviesC
Retrieves a list of watched movies from MyShows. :param page: The page number to retrieve (default is 0). :return: A dictionary containing the list of watched movies.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states this is a retrieval operation, implying read-only behavior, but doesn't mention authentication requirements, rate limits, pagination details beyond the 'page' parameter, or what happens on errors. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences: one stating the purpose and another explaining the parameter and return value. It's front-loaded with the main function, though the parameter explanation could be integrated more smoothly rather than using Python-style docstring syntax.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and low schema coverage, the description is incomplete. It doesn't explain the return structure beyond 'a dictionary containing the list', missing details like keys, data types, or error handling. For a retrieval tool with siblings, more context is needed to ensure correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning for the single parameter 'page' by explaining it's for pagination with a default value, which is useful since schema description coverage is 0%. However, it doesn't clarify the pagination model (e.g., page size, total pages) or format, leaving some ambiguity. With one parameter and low schema coverage, this provides basic but incomplete compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Retrieves') and resource ('list of watched movies from MyShows'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_viewed_episodes' or 'get_myshows_profile_shows_list', which might also retrieve user-specific content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_viewed_episodes' and 'get_myshows_profile_shows_list', there's no indication of how this tool differs in scope or context, leaving the agent to guess based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v1.0.0- Changed
check_episode1 field changed- removed
Input schema / properties / episode_id / titleRemoved value: -"Episode Id"
- Changed
get_movie_show_by_id1 field changed- removed
Input schema / properties / myshows_item_id / titleRemoved value: -"Myshows Item Id"
- Changed
get_viewed_episodes1 field changed- removed
Input schema / properties / myshows_item_id / titleRemoved value: -"Myshows Item Id"
- Changed
search_shows3 fields changed- removed
Input schema / properties / page / titleRemoved value: -"Page" - removed
Input schema / properties / query / titleRemoved value: -"Query" - removed
Input schema / properties / year / titleRemoved value: -"Year"
- Changed
set_movie_watch_status2 fields changed- removed
Input schema / properties / movie_id / titleRemoved value: -"Movie Id" - removed
Input schema / properties / status / titleRemoved value: -"Status"
- Changed
uncheck_episode1 field changed- removed
Input schema / properties / episode_id / titleRemoved value: -"Episode Id"
- Changed
watched_movies1 field changed- removed
Input schema / properties / page / titleRemoved value: -"Page"
10 tool updates
- First observed
check_episode - First observed
get_calendar_episodes - First observed
get_movie_show_by_id - First observed
get_myshows_profile_shows_list - First observed
get_myshows_recomendations - First observed
get_viewed_episodes - First observed
search_shows - First observed
set_movie_watch_status - First observed
uncheck_episode - First observed
watched_movies
TDQS
Scored across 10 tools
Most tools have distinct purposes targeting different resources or actions, but there is some potential confusion between get_viewed_episodes (retrieves viewed episodes for a specific TV show) and watched_movies (retrieves watched movies list) as both involve 'watched' content with overlapping terminology. The descriptions help clarify the distinction, but the naming could cause initial ambiguity.
The naming follows a consistent verb_noun pattern (e.g., check_episode, get_calendar_episodes, search_shows) with clear action-object relationships. There is one minor deviation with get_myshows_profile_shows_list, which includes 'myshows' redundantly, but overall the pattern is predictable and readable.
With 10 tools, the count is well-scoped for a media tracking server covering TV shows and movies. Each tool serves a specific function in the domain, such as searching, retrieving details, managing watch status, and getting recommendations, without feeling bloated or insufficient.
The toolset provides good coverage for core MyShows operations, including CRUD-like actions for episodes and movies (check/uncheck, set status), retrieval of shows, episodes, recommendations, and search. A minor gap is the lack of tools for managing TV show watch status at a higher level (e.g., marking entire seasons as watched), but agents can work around this using existing tools.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Model Context Protocol server for Studex tools, notifications, and profile integrations
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
Related MCP Servers
- FlicenseNot gradedqualityFmaintenanceA Python-based Model Context Protocol server that allows AI assistants like Claude to access and query your movie and TV show collection via Radarr and Sonarr APIs.47-
- AlicenseNot gradedqualityBmaintenanceA comprehensive Model Context Protocol server that bridges LLMs with self-hosted media services, enabling natural language control of TV shows, movies, downloads, and notifications while maintaining traditional API access.12AGPL 3.0
- AlicenseNot gradedqualityAmaintenanceA Model Context Protocol (MCP) server that creates a bridge between AI language models and the Trakt.tv API, allowing LLMs to access real-time entertainment data and personal Trakt viewing history.46MIT
- AlicenseAqualityFmaintenanceA Model Context Protocol server that enables AI agents to interact with local Logseq knowledge graphs, supporting operations like creating/editing pages and blocks, searching content, and managing journal entries.1315MIT