MyShows MCP Server
# 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.
<a href="https://glama.ai/mcp/servers/@zeloras/myshows_mcp">
<img width="380" height="200" src="https://glama.ai/mcp/servers/@zeloras/myshows_mcp/badge" alt="MyShows Server MCP server" />
</a>
## Configuration
Configuration is handled via environment variables. You must set your `myshows.me` credentials before running the server.
## MCP configuration
```json
{
/// 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.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.