Skip to main content
Glama
framinosona

BetaSeries MCP Server

by framinosona

BetaSeries: episodes

betaseries_episodes

Manage TV show episodes through BetaSeries. Mark episodes as watched, downloaded, rewatched, or rated, and retrieve episode information, upcoming releases, search results, and unrated lists.

Instructions

Call the BetaSeries "episodes" API. Pick an operation and pass its parameters in the params object.

Available operations:

  • delete-episodes-downloaded [DELETE /episodes/downloaded]: Remove the downloaded mark. Params: id? (Episode ID (Optional if thetvdb_id provided)), thetvdb_id? (Episode ID on TheTVDB (Optional if id provided))

  • delete-episodes-hidden [DELETE /episodes/hidden]: Remove an episode from the hidden list. Params: id? (Identifier of the episode to remove. Multiple IDs can be separated by a comma)

  • delete-episodes-note [DELETE /episodes/note]: Remove a rating. Params: id? (Episode ID (Optional if thetvdb_id provided)), thetvdb_id? (Episode ID on TheTVDB (Optional if id provided))

  • delete-episodes-rewatch [DELETE /episodes/rewatch]: Unmark an episode as rewatched. Params: id? (Episode ID), all? (Remove all rewatch for the given episode (int 0|1)), date? (Precisely removes the rewatch for the given episode (format Y-m-d H:i:s))

  • delete-episodes-watched [DELETE /episodes/watched]: Unmark an episode as watched. Params: id? (Episode ID (Optional if thetvdb_id provided)), thetvdb_id? (Episode ID on TheTVDB (Optional if id provided))

  • get-episodes-display [GET /episodes/display]: Display information of an episode. Params: id? (Episode ID. Multiple IDs can be specified separated by a comma (Optional if thetvdb_id provided)), thetvdb_id? (Episode ID on TheTVDB. Multiple IDs can be specified separated by a comma (Optional if id provided)), youtube_id? (Episode ID on YouTube. Multiple IDs can be specified separated by a comma (Optional if id provided)), subtitles? (Display subtitles if specified (Optional))

  • get-episodes-latest [GET /episodes/latest]: Retrieve the latest aired episode. Params: id? (Series ID. Multiple IDs can be separated by a comma (Optional if thetvdb_id provided)), thetvdb_id? (Series ID on TheTVDB. Multiple IDs can be separated by a comma (Optional if id provided)), specials? (Include special episodes (default false))

  • get-episodes-list [GET /episodes/list]: Retrieve the list of episodes to watch.. Params: subtitles? (Display episodes with specific subtitles available: all|vovf|vo|vf (Optional)), limit? (Limit to a number of episodes per series (Optional)), showsLimit? (Limit to a number of series (Optional, default 50)), page? (Page number for series pagination (Optional, default 1)), showId? (Series ID (Optional)), showTheTVDBId? (Series ID on TheTVDB (Optional)), showIMDBId? (Series ID on IMDB (Optional)), userId? (Member's ID (Optional, default identified member)), specials? (Include special episodes in the return (Optional, default not returned)), released? (If 1, displays only released episodes, 2 for upcoming, 0 for both (Optional, default 1)), order? (Order of episode appearance, "account" for account order, "smart" for current viewing order (Optional, default account)), since? (Timestamp to mark episodes released after this date (Optional)), excludes? (If specified, removes certain blocks from the return: characters (Optional)), platforms? (List of platform IDs where the episodes must be available (Optional)), with_rewatch? (Indicates if episodes to rewatch appear in the list for premium users (possible values : 0 or 1. Optional, default 0))

  • get-episodes-next [GET /episodes/next]: Retrieve the next episode. Params: id? (Series ID. Multiple IDs can be separated by a comma (Optional if thetvdb_id provided)), thetvdb_id? (Series ID on TheTVDB. Multiple IDs can be separated by a comma (Optional if id provided)), specials? (Include special episodes (default false))

  • get-episodes-scraper [GET /episodes/scraper]: Retrieve episode information. Params: file? (File name to process)

  • get-episodes-search [GET /episodes/search]: Retrieve episode information. Params: show_id? (Series ID for the episode to search), url? (URL of the series to search (Optional)), number? (Episode number, either SxxExx or the global number), subtitles? (If specified, returns subtitles for episodes)

  • get-episodes-unrated [GET /episodes/unrated]: Retrieve the list of watched and unrated episodes. Params: nbpp? (Number of results per page, default 20), page? (Page number, default 1), date? (Time limit, yesterday for episodes watched yesterday, all for all watched episodes (Optional, default yesterday))

  • post-episodes-downloaded [POST /episodes/downloaded]: Mark an episode as downloaded. Params: id? (Episode ID (Optional if thetvdb_id provided)), thetvdb_id? (Episode ID on TheTVDB (Optional if id provided))

  • post-episodes-hidden [POST /episodes/hidden]: Mark an episode as not to watch. Params: id? (Identifier of the episode to mark. Multiple IDs can be separated by a comma)

  • post-episodes-note [POST /episodes/note]: Rate an episode. Params: id? (Episode ID (Optional if thetvdb_id provided)), thetvdb_id? (Episode ID on TheTVDB (Optional if id provided)), note? (Rating from 1 to 5)

  • post-episodes-rewatch [POST /episodes/rewatch]: Mark an episode as rewatched. Params: id? (Episode ID (You can provide several ids separated by a comma)), bulk? (If specified, all previous episodes will also be marked as rewatched (default true))

  • post-episodes-watched [POST /episodes/watched]: Mark an episode as watched. Params: id? (Episode ID (Optional if thetvdb_id provided)), thetvdb_id? (Episode ID on TheTVDB (Optional if id provided)), youtube_id? (Episode ID on YouTube (Optional if id provided)), bulk? (If specified, all previous episodes will also be marked as watched (default true)), delete? (If specified, all subsequent episodes will no longer be marked as watched), note? (If a rating between 1 and 5 is specified, rate the episode)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
paramsNoQuery parameters for the chosen operation, as string key/value pairs. See this tool's description for the accepted parameter names per operation.
operationYesWhich operation to perform
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the behavioral disclosure burden. It does provide a concise behavioral summary for each operation (e.g., 'Remove a rating', 'Mark an episode as watched'), which is useful. However, it omits deeper context like authentication requirements, idempotency, potential side effects, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long (17 operations) but each line is informative and structured consistently (operation, HTTP method, one-line purpose, params). It front-loads the core instruction. No fluff, though the sheer volume could be overwhelming; better formatting (e.g., code blocks) would slightly improve scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of an output schema and the broad scope, the description thoroughly covers what each operation does and its parameters. It does not describe return formats or pagination details beyond parameter defaults, but for a meta-tool with many operations, it is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is minimal (only operation and generic params object), but the description compensates fully by listing every parameter for each operation, including whether it's optional, format hints (e.g., Y-m-d H:i:s), and relationships between parameters (e.g., 'Optional if thetvdb_id provided'). This is far beyond the schema's coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it calls the BetaSeries 'episodes' API and lists all available operations with their HTTP methods. It distinguishes itself from sibling tools by focusing specifically on episodes-related actions (e.g., watched, hidden, notes, rewatch).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 alternative sibling tools (e.g., betaseries_shows, betaseries_seasons). It does not state explicit conditions, prerequisites, or exclusions; it merely lists operations without advising which operation fits a given scenario.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/framinosona/betaseries-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server