Skip to main content
Glama
MyShows MCP Server
by zeloras

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 tools
check_episodeA

Marks a specific episode as watched by its ID. Supports both single episode ID and list of episode IDs for batch operations.

Inputs: episode_id (required).

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.

Inputs: no named parameters.

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.

Inputs: myshows_item_id (required).

get_myshows_profile_shows_listB

Retrieves the list of tv shows from the MyShows profile. :return: A dictionary containing the list of tv shows.

Inputs: no named parameters.

get_myshows_recomendationsC

Retrieves recommendations from MyShows. :return: A dictionary containing the recommendations.

Inputs: self (required).

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.

Inputs: myshows_item_id (required).

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.

Inputs: query (required), year, page.

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.

Inputs: movie_id (required), status (required).

uncheck_episodeB

Unmarks a specific episode as watched by its ID. Supports both single episode ID and list of episode IDs for batch operations.

Inputs: episode_id (required).

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.

Inputs: page.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 10 tools

    Disambiguation4/5

    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.

    Naming Consistency4/5

    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.

    Tool Count5/5

    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.

    Completeness4/5

    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

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      A 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.
      52
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      A 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.
      13
      15
      MIT