TV Shows, Anime & Manga MCP Server avatar

TV Shows, Anime & Manga MCP Server

Pricing

from $3.00 / 1,000 read operations

Go to Apify Store
TV Shows, Anime & Manga MCP Server

TV Shows, Anime & Manga MCP Server

TV shows, anime and manga MCP server for Claude, ChatGPT and Cursor: ask when the next episode airs, browse episode guides with their casts, check TV or streaming schedules, see anime seasons with airing times, and search manga. TV data from TVmaze (CC BY-SA 4.0), anime and manga from AniList.

Pricing

from $3.00 / 1,000 read operations

Rating

0.0

(0)

Developer

MrBridge

MrBridge

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 days ago

Last modified

Share

📺 TV Shows, Anime & Manga MCP Server

Give Claude, ChatGPT, Cursor, VS Code or any MCP client a TV guide plus anime and manga lookups it can query. This MCP server reads TVmaze and AniList through 22 read-only tools. TVmaze covers TV and web series: show cards, next episodes, episode guides, casts with voice roles and crew, people, plus daily TV or streaming schedules by country. AniList covers anime (studio, score, where to stream, seasons, airing times) as well as manga, manhwa or light novels (chapters, volumes, adaptations). ChatGPT gets its search and fetch pair over both.

Ask "what anime airs in Japan today, and when is the next episode of the one I'm watching?" and your assistant calls media_tv_schedule, then media_get_next_episode. You get today's anime slots with their channel, then the air date and time of the next episode. TV data from TVmaze, licensed under CC BY-SA 4.0: credit TVmaze and share alike when you reuse it. Anime and manga data from AniList, under the AniList API Terms of Use.

Quick start

  1. Copy your Apify API token from Apify Console > Settings > API & Integrations.
  2. Point your MCP client at https://mrbridge--tv-anime-mcp.apify.actor/mcp with that token, as a Bearer header or as ?token= in claude.ai and ChatGPT (Connect has every recipe).
  3. Ask in plain language.

What this server exposes

This server wraps two public APIs in 22 read-only tools. From TVmaze (https://www.tvmaze.com/api) come 14 media_ tools for shows, episodes, seasons, cast, crew, alternate titles, people, their credits and the daily TV and streaming schedules. From AniList (https://anilist.co) come 6 media_ tools. Four cover anime: search by title or genre, one anime with its studio, score, streaming links, sequels and source manga, the anime of a season, and the episodes airing in a time window. Two cover manga, manhwa and light novels: search by title, genre, format or country, and one manga with its chapters, volumes, authors, reading links and anime adaptations. The search and fetch pair that ChatGPT deep research expects reads both sources, and each id it returns names its source. It covers TV and web series from many countries, anime series and films, and manga, but not live-action films or adult titles. It needs no credentials and no third-party key: you connect with your Apify token, and each successful call is billed as one event. On top of the events you pay the platform usage of your own Standby run, billed to your Apify account: the memory set for the run while the server is up, idle time included, until it stops at its idle timeout (see Pricing). TVmaze data is licensed CC BY-SA 4.0 and AniList data comes under the AniList API Terms of Use. Every answer carries the credit, the link to each item's page on the source site and the list of changes this server makes.

Tools

ToolWhat it answersBilled event
media_search_showsSearch TV showstool-read
media_get_showGet a TV showtool-read
media_get_next_episodeGet the next episode of a showtool-read
media_list_seasonsList the seasons of a showtool-read
media_get_alternate_titlesGet the alternate titles of a showtool-read
media_list_episodesList the episodes of a showtool-read
media_get_episodeGet one episodetool-read
media_get_castGet the main cast of a showtool-action
media_get_crewGet the crew of a showtool-read
media_tv_scheduleTV schedule of a countrytool-action
media_streaming_scheduleStreaming release scheduletool-action
media_search_peopleSearch people in TVtool-read
media_get_personGet a persontool-read
media_list_person_creditsList the credits of a persontool-read
media_search_animeSearch animetool-read
media_get_animeGet an animetool-action
media_list_season_animeAnime of a seasontool-read
media_anime_airing_scheduleAnime airing scheduletool-read
media_search_mangaSearch mangatool-read
media_get_mangaGet a mangatool-action
searchSearchtool-read
fetchFetchtool-read

media_search_shows: Search TV shows

Use this when you need to find a TV series, web series or anime series by its title, and get its TVmaze id, premiere year, network or streaming service, status and rating to tell same-named shows apart. Do not use for films (TVmaze lists series only), for people (media_search_people) or when you already have the show id (media_get_show). Parameters: query (title, e.g. "severance"), limit (1 to 10, TVmaze returns at most 10 matches), offset, response_format ("detailed" adds runtime, schedule, identifiers, poster URLs and a summary excerpt).

ParameterTypeRequiredExample
querystringyes"severance"
limitintegerno10
offsetintegerno0
response_format"concise" or "detailed"no"concise"

Returns { query, shows[], pagination, next_steps[], attribution }. Upstream: TVmaze. Cache: daily (1 day). Read-only.

media_get_show: Get a TV show

Use this when you need the card of one TV or anime series: type, language, genres, status, premiere and end dates, network or streaming service, rating, IMDb id, a summary excerpt (at most 300 characters), plus its next and previous episode. Do not use for the full episode list (media_list_episodes), the cast (media_get_cast) or to compare several candidates (media_search_shows). Give exactly one of: show_id (TVmaze id, e.g. 82), imdb_id (e.g. "tt0944947" or an IMDb URL), thetvdb_id (e.g. 121361) or show_name (best single match, e.g. "Severance"). response_format "detailed" adds runtime, weekly schedule with time zone, official site, poster URLs, other ids and the last update time.

ParameterTypeRequiredExample
show_idintegerno82
imdb_idstringno"tt0944947"
thetvdb_idintegerno121361
show_namestringno"Severance"
response_format"concise" or "detailed"no"concise"

Returns { show, next_episode, previous_episode, match_note, next_steps[], attribution }. Upstream: TVmaze. Cache: hourly (1 hour). Read-only.

media_get_next_episode: Get the next episode of a show

Use this when someone asks when the next episode of a TV or anime series airs, whether a show is still running, or what the latest episode was. Do not use for the whole episode list (media_list_episodes) or for what airs on a given day across channels (media_tv_schedule, media_streaming_schedule). Give exactly one of show_id (TVmaze id, e.g. 82), imdb_id (e.g. "tt0944947"), thetvdb_id (e.g. 121361) or show_name (best single match, e.g. "Severance"). response_format "detailed" adds episode summaries and images. Returns the next and previous episode with air date, local air time and UTC timestamp, the hours until the next one, and a one-line status note. Streaming releases often have no air time: the timestamp and the hours are then null and the date stands alone.

ParameterTypeRequiredExample
show_idintegerno82
imdb_idstringno"tt0944947"
thetvdb_idintegerno121361
show_namestringno"Severance"
response_format"concise" or "detailed"no"concise"

Returns { show, next_episode, previous_episode, hours_until_next, status_note, match_note, attribution }. Upstream: TVmaze. Cache: hourly (1 hour). Read-only.

media_list_seasons: List the seasons of a show

Use this when you need how many seasons a TV or anime series has, how many episodes each season has, and when each season premiered and ended. Do not use for the episodes themselves (media_list_episodes) or for the show card (media_get_show). Parameters: show_id (TVmaze id, e.g. 82), limit (1 to 100, default 50, at most 30 in detailed mode), offset, response_format ("detailed" adds poster URLs and summary excerpts).

ParameterTypeRequiredExample
show_idintegeryes82
limitintegerno50
offsetintegerno0
response_format"concise" or "detailed"no"concise"

Returns { show_id, seasons[], pagination, next_steps[], attribution }. Upstream: TVmaze. Cache: hourly (1 hour). Read-only.

media_get_alternate_titles: Get the alternate titles of a show

Use this when you need what a TV or anime series is called in another country or language, or its original title (for anime, the Japanese title in Latin letters). Do not use for searching a show by one of these titles (media_search_shows already matches them). Parameters: show_id (TVmaze id, e.g. 82), country (ISO 3166-1 alpha-2 code such as "FR" or "JP", UK is read as GB, or "original" for the title in the country of origin), limit (1 to 100, default 50), offset, response_format. A title whose country is null is the title in the show's original country.

ParameterTypeRequiredExample
show_idintegeryes82
countrystringno"FR"
limitintegerno50
offsetintegerno0
response_format"concise" or "detailed"no"concise"

Returns { show_id, tvmaze_url, country, titles[], pagination, attribution }. Upstream: TVmaze. Cache: daily (1 day). Read-only.

media_list_episodes: List the episodes of a show

Use this when you need the episode guide of a TV or anime series: season and episode numbers, titles, air dates and times, runtimes and ratings, for the whole show, one season, or one air date. Do not use for one episode in depth (media_get_episode), the next episode only (media_get_next_episode) or what airs on a day across channels (media_tv_schedule). Parameters: show_id (TVmaze id, e.g. 82), season (season number, e.g. 2, daily shows number seasons by year), aired_on (YYYY-MM-DD, episodes aired that day, not combinable with season), include_specials (true adds specials, default false), limit (1 to 50, default 25, at most 20 in detailed mode), offset, response_format ("detailed" adds summary excerpts and image URLs).

ParameterTypeRequiredExample
show_idintegeryes82
seasonintegerno1
aired_onstringno"2026-10-05"
include_specialsbooleannofalse
limitintegerno25
offsetintegerno0
response_format"concise" or "detailed"no"concise"

Returns { show_id, show_name, season, aired_on, episodes[], pagination, next_steps[], attribution }. Upstream: TVmaze. Cache: hourly (1 hour). Read-only.

media_get_episode: Get one episode

Use this when you need one episode of a TV or anime series: title, air date and time, runtime, rating, a summary excerpt, and optionally its guest cast. Do not use for a list of episodes (media_list_episodes) or the main cast of the show (media_get_cast). Give episode_id (TVmaze episode id, e.g. 1), or show_id with season and number (e.g. show 82, season 1, number 3). include_guest_cast (true adds the guest stars, one more call, default false), response_format (concise by default, "detailed" adds image URLs and guest images).

ParameterTypeRequiredExample
episode_idintegerno1
show_idintegerno82
seasonintegerno1
numberintegerno3
include_guest_castbooleannotrue
response_format"concise" or "detailed"no"concise"

Returns { episode, guest_cast, guest_cast_total, guest_cast_notice, next_steps[], attribution }. Upstream: TVmaze. Cache: hourly (1 hour). Read-only.

media_get_cast: Get the main cast of a show

Use this when you need who plays or voices whom in a TV or anime series: actor or voice actor names next to their characters, ordered by importance, with voice roles flagged. Do not use for guest stars of one episode (media_get_episode with include_guest_cast), for the crew (media_get_crew) or for an actor's other roles (media_list_person_credits). Parameters: show_id (TVmaze id, e.g. 82), voice_only (true keeps voice roles, useful for anime, default false), limit (1 to 50, default 20), offset, response_format ("detailed" adds countries and image URLs).

ParameterTypeRequiredExample
show_idintegeryes82
voice_onlybooleannofalse
limitintegerno20
offsetintegerno0
response_format"concise" or "detailed"no"concise"

Returns { show_id, cast[], pagination, next_steps[], attribution }. Upstream: TVmaze. Cache: daily (1 day). Read-only.

media_get_crew: Get the crew of a show

Use this when you need who created, wrote, directed, produced or composed the music of a TV or anime series. Do not use for the actors (media_get_cast) or for one person's work across shows (media_list_person_credits). Parameters: show_id (TVmaze id, e.g. 82), crew_type (part of the role, e.g. "Creator", "Director", "Executive Producer", "Music"), limit (1 to 50, default 20), offset, response_format ("detailed" adds countries and image URLs).

ParameterTypeRequiredExample
show_idintegeryes82
crew_typestringno"Creator"
limitintegerno20
offsetintegerno0
response_format"concise" or "detailed"no"concise"

Returns { show_id, crew[], pagination, attribution }. Upstream: TVmaze. Cache: daily (1 day). Read-only.

media_tv_schedule: TV schedule of a country

Use this when you need what airs on broadcast and cable TV in one country on one day, for example tonight in the UK, or the anime airing in Japan today (country "JP", genre "Anime"). Do not use for streaming releases on Netflix, Crunchyroll and other web channels (media_streaming_schedule) or for the next episode of one show (media_get_next_episode). Parameters: country (ISO 3166-1 alpha-2, default "US", "UK" is read as "GB"), date (YYYY-MM-DD, default today on TVmaze), network (part of the channel name, e.g. "BBC"), genre, show_type, language (filters, e.g. "Anime", "Animation", "Japanese"), limit (1 to 50, default 25, at most 20 in detailed mode), offset, response_format ("detailed" adds summary excerpts and image URLs). Rows are in airing order with local air time and UTC timestamp.

ParameterTypeRequiredExample
countrystringno"GB"
datestringno"2026-10-05"
networkstringno"BBC"
genrestringno"Anime"
show_typestringno"Animation"
languagestringno"Japanese"
limitintegerno25
offsetintegerno0
response_format"concise" or "detailed"no"concise"

Returns { date, country, filters, total_before_filters, episodes[], pagination, next_steps[], attribution }. Upstream: TVmaze. Cache: hourly (1 hour). Read-only.

media_streaming_schedule: Streaming release schedule

Use this when you need which episodes are released on streaming and web channels on one day, for example new episodes on Netflix, Prime Video, Disney+ or Crunchyroll today. Do not use for broadcast and cable TV (media_tv_schedule) or for the next episode of one show (media_get_next_episode). Parameters: date (YYYY-MM-DD, default today on TVmaze), country (ISO code: only the local web channels of that country) or global_only (true: only worldwide services such as Netflix), leave both out for all, web_channel (part of the service name, e.g. "Crunchyroll"), genre, show_type, language (filters), limit (1 to 50, default 25, at most 20 in detailed mode), offset, response_format.

ParameterTypeRequiredExample
datestringno"2026-10-05"
countrystringno"GB"
global_onlybooleannofalse
web_channelstringno"Crunchyroll"
genrestringno"Anime"
show_typestringno"Animation"
languagestringno"Japanese"
limitintegerno25
offsetintegerno0
response_format"concise" or "detailed"no"concise"

Returns { date, country, filters, total_before_filters, episodes[], pagination, next_steps[], attribution, scope }. Upstream: TVmaze. Cache: hourly (1 hour). Read-only.

media_search_people: Search people in TV

Use this when you need to find an actor, voice actor, presenter, director or writer of TV and anime series by name, and get the TVmaze person id. Do not use for shows (media_search_shows) or when you already have the person id (media_get_person). Parameters: query (name, e.g. "Bryan Cranston"), limit (1 to 10, TVmaze returns at most 10 matches), offset, response_format ("detailed" adds birth and death dates, gender and image URLs).

ParameterTypeRequiredExample
querystringyes"Bryan Cranston"
limitintegerno10
offsetintegerno0
response_format"concise" or "detailed"no"concise"

Returns { query, people[], pagination, next_steps[], attribution }. Upstream: TVmaze. Cache: daily (1 day). Read-only.

media_get_person: Get a person

Use this when you need the TVmaze profile of one person in TV: country, birth and death dates and gender as TVmaze publishes them, and the TVmaze page. Do not use for the shows of that person (media_list_person_credits) or to find a person by name (media_search_people). Parameters: person_id (TVmaze person id, e.g. 9001), response_format ("detailed" adds image URLs and the last update time).

ParameterTypeRequiredExample
person_idintegeryes9001
response_format"concise" or "detailed"no"concise"

Returns { person, next_steps[], attribution }. Upstream: TVmaze. Cache: daily (1 day). Read-only.

media_list_person_credits: List the credits of a person

Use this when you need the TV and anime series a person appeared in, voiced, presented or worked on: show names with the character played, the crew role, or the guest episodes, most recent first. Do not use for the cast of one show (media_get_cast) or the person profile (media_get_person). Parameters: person_id (TVmaze id, e.g. 9001), credit_type ("cast" main roles, the default, "crew" for roles such as creator or director, "guest_cast" for guest appearances in single episodes), limit (1 to 50, default 25, at most 20 in detailed mode), offset, response_format ("detailed" adds show type, status, channel and character page).

ParameterTypeRequiredExample
person_idintegeryes9001
credit_type"cast" or "crew" or "guest_cast"no"cast"
limitintegerno25
offsetintegerno0
response_format"concise" or "detailed"no"concise"

Returns { person_id, credit_type, credits[], pagination, next_steps[], attribution }. Upstream: TVmaze. Cache: daily (1 day). Read-only.

media_search_anime: Search anime

Use this when you need to find an anime (series, film, OVA or web release) by its English, romaji or Japanese title, or to list anime by genre, start year, format or status, ranked by relevance, popularity, score or trending, with its AniList id, season, episodes and average score. Do not use for manga (media_search_manga), for live-action or Western TV series (media_search_shows) or when you already have the AniList id (media_get_anime). Parameters: query (title, e.g. "frieren"), genre (AniList genre such as "Romance", "Mecha" or "Slice of Life"), year (start year, e.g. 2023), format (tv, tv_short, movie, special, ova, ona, music), status (finished, releasing, not_yet_released, cancelled), sort (relevance, the default with a query and only with one, popularity, the default without, score, trending), limit (1 to 25, default 10, at most 10 in detailed mode), offset, response_format ("detailed" adds studios, source, popularity, MyAnimeList id and a description excerpt). Reads at most 50 matches per question. Adult entries are never returned.

ParameterTypeRequiredExample
querystringno"frieren"
genrestringno"Romance"
yearintegerno2023
format"tv" or "tv_short" or "movie" or "special" or "ova" or "ona" or "music"no"tv"
status"finished" or "releasing" or "not_yet_released" or "cancelled"no"releasing"
sort"relevance" or "popularity" or "score" or "trending"no"popularity"
limitintegerno10
offsetintegerno0
response_format"concise" or "detailed"no"concise"

Returns { query, filters, anime[], pagination, more_on_anilist, coverage_note, next_steps[], attribution }. Upstream: AniList. Cache: live (30 seconds). Read-only.

media_get_anime: Get an anime

Use this when you need the card of one anime from AniList: titles, format, status, episodes and their length, season, dates, main studio, average score, genres, top tags, a description excerpt (at most 300 characters), where to stream it, related anime such as sequels, prequels and side stories, related manga such as the source manga, and the next episode with the hours until it airs. Do not use for comparing candidates (media_search_anime), for the anime of a season (media_list_season_anime) or for an episode-by-episode guide (media_list_episodes covers series listed on TVmaze). Give exactly one of anime_id (AniList id, e.g. 1 for Cowboy Bebop, from media_search_anime or an AniList URL), mal_id (MyAnimeList id, e.g. 1) or anime_name (AniList's first search match, e.g. "Cowboy Bebop"). response_format "detailed" adds alternative titles, the English title, mean score, popularity, source, country and MyAnimeList id.

ParameterTypeRequiredExample
anime_idintegerno1
mal_idintegerno1
anime_namestringno"Cowboy Bebop"
response_format"concise" or "detailed"no"concise"

Returns { anime, next_episode, tags[], streaming_links[], related_anime[], related_manga[], alternative_titles[], match_note, next_steps[], attribution }. Upstream: AniList. Cache: live (30 seconds). Read-only.

media_list_season_anime: Anime of a season

Use this when you need the anime of one season, for example what airs this season or the most popular or best rated anime of fall 2023, with studio, episodes, average score and the next episode of each airing series. Do not use for a title search (media_search_anime) or for what airs on a given day (media_anime_airing_schedule). Parameters: season (winter, spring, summer or fall) and year (e.g. 2023). Without both: the current season. A season alone: its nearest occurrence (winter asked in December is the coming one). A year needs a season. format (tv, tv_short, movie, special, ova, ona, music), sort (popularity by default, score, trending, start_date), limit (1 to 25, default 20, at most 10 in detailed mode), offset, response_format ("detailed" adds source, popularity, MyAnimeList id and a description excerpt). Reads at most 50 anime per season and says when AniList has more. Adult entries are never returned.

ParameterTypeRequiredExample
season"winter" or "spring" or "summer" or "fall"no"fall"
yearintegerno2023
format"tv" or "tv_short" or "movie" or "special" or "ova" or "ona" or "music"no"tv"
sort"popularity" or "score" or "trending" or "start_date"no"popularity"
limitintegerno20
offsetintegerno0
response_format"concise" or "detailed"no"concise"

Returns { season, year, format, sort, anime[], pagination, more_on_anilist, coverage_note, next_steps[], attribution }. Upstream: AniList. Cache: live (30 seconds). Read-only.

media_anime_airing_schedule: Anime airing schedule

Use this when you need which anime episodes air in a time window, for example today in Japan (utc_offset "+09:00") or over the next few days, with episode number, air time in UTC and at the offset, hours until it airs (negative once aired) and whether it has aired. Do not use for TV or streaming listings of other series (media_tv_schedule, media_streaming_schedule) or for the next episode of one anime (media_get_anime). Parameters: date (YYYY-MM-DD, default today at utc_offset), days (1 to 7, default 1), utc_offset (e.g. "+09:00", default "+00:00"), limit (1 to 25, default 25, at most 10 in detailed mode), offset, response_format ("detailed" adds native and English titles, episode length and genres). AniList only aims to keep future airing times accurate. Reads at most 50 episodes per window: when AniList holds more, covered_until says where the rows stop and next_steps gives the call for the rest. Adult entries are never returned.

ParameterTypeRequiredExample
datestringno"2026-10-07"
daysintegerno1
utc_offsetstringno"+09:00"
limitintegerno25
offsetintegerno0
response_format"concise" or "detailed"no"concise"

Returns { date, days, utc_offset, window_start, window_end, covered_until, episodes[], pagination, more_on_anilist, coverage_note, next_steps[], attribution }. Upstream: AniList. Cache: live (30 seconds). Read-only.

media_search_manga: Search manga

Use this when you need to find a manga, light novel or one-shot (Japanese manga, Korean manhwa, Chinese manhua) by its English, romaji or native title, or to list them by genre, start year, format, status or country, ranked by relevance, popularity, score or trending, with its AniList id, chapters, volumes and average score. Do not use for anime (media_search_anime), for TV series (media_search_shows) or when you already have the AniList id (media_get_manga). Parameters: query (title, e.g. "berserk"), genre (AniList genre such as "Fantasy", "Romance" or "Slice of Life"), year (start year, e.g. 2020), format (manga, novel, one_shot), status (finished, releasing, not_yet_released, cancelled), country (JP, KR, CN, TW), sort (relevance, the default with a query and only with one, popularity, the default without, score, trending), limit (1 to 25, default 10, at most 10 in detailed mode), offset, response_format ("detailed" adds source, popularity, MyAnimeList id and a description excerpt). Reads at most 50 matches per question. Adult entries are never returned.

ParameterTypeRequiredExample
querystringno"berserk"
genrestringno"Fantasy"
yearintegerno2020
format"manga" or "novel" or "one_shot"no"manga"
status"finished" or "releasing" or "not_yet_released" or "cancelled"no"releasing"
country"JP" or "KR" or "CN" or "TW"no"KR"
sort"relevance" or "popularity" or "score" or "trending"no"popularity"
limitintegerno10
offsetintegerno0
response_format"concise" or "detailed"no"concise"

Returns { query, filters, manga[], pagination, more_on_anilist, coverage_note, next_steps[], attribution }. Upstream: AniList. Cache: live (30 seconds). Read-only.

media_get_manga: Get a manga

Use this when you need the card of one manga, light novel or one-shot from AniList: titles, format, status (HIATUS for a paused series), chapters and volumes, dates, country, average score, genres, top tags, a description excerpt (at most 300 characters), credited staff such as the author and the artist, official reading links, related manga such as sequels, spin-offs and light novels, and related anime such as adaptations. Do not use for comparing candidates (media_search_manga) or for an anime (media_get_anime). Give exactly one of manga_id (AniList id, e.g. 30002 for Berserk, from media_search_manga or an AniList URL), mal_id (MyAnimeList manga id, e.g. 2) or manga_name (AniList's first search match, e.g. "Berserk"). response_format "detailed" adds alternative titles, the English title, mean score, popularity, source and MyAnimeList id.

ParameterTypeRequiredExample
manga_idintegerno30002
mal_idintegerno2
manga_namestringno"Berserk"
response_format"concise" or "detailed"no"concise"

Returns { manga, staff[], tags[], reading_links[], related_manga[], related_anime[], alternative_titles[], match_note, next_steps[], attribution }. Upstream: AniList. Cache: live (30 seconds). Read-only.

Use this when ChatGPT needs to find TV series, anime series and people of television (actors, voice actors, creators) on TVmaze, and anime (series and films) and manga (light novels and manhwa included) on AniList, by title or name. Do not use for live-action films or books, which these sources do not cover. Parameter query (string), e.g. "frieren". Returns up to 8 shows, up to 4 anime and 4 manga, then up to 4 people, with ids that name their source such as "tvmaze:show-82", "tvmaze:person-1", "anilist:anime-1" or "anilist:manga-30002".

ParameterTypeRequiredExample
querystringyes"frieren"

Returns { results[], notices[] }. Upstream: TVmaze, AniList. Cache: daily (1 day). Read-only.

fetch: Fetch

Use this when ChatGPT needs the full card of one result of search, as text: status, dates, channel, genres, schedule, rating, next and previous episode and main cast for a show, profile and main roles for a person, format, episodes or chapters and volumes, studio or staff, score, where to watch or read and related titles for an anime or a manga. Do not use for ids that did not come from search or from a TVmaze or AniList page URL. Parameter id, e.g. "tvmaze:show-82", "tvmaze:person-1", "anilist:anime-1", "anilist:manga-30002" or "https://www.tvmaze.com/shows/82/game-of-thrones".

ParameterTypeRequiredExample
idstringyes"tvmaze:show-82"

Returns { id, title, text, url, metadata, notices[] }. Upstream: TVmaze, AniList. Cache: daily (1 day). Read-only.

Connect

Endpoint (Streamable HTTP): https://mrbridge--tv-anime-mcp.apify.actor/mcp

Every client authenticates with your Apify API token, found in Apify Console > Settings > API & Integrations. Clients that support custom headers send it as Authorization: Bearer <token>. The others use the ?token= URL variant, which must be treated as a secret: keep it out of commits, screenshots and shared logs.

Claude Code

$claude mcp add --transport http tv-anime "https://mrbridge--tv-anime-mcp.apify.actor/mcp" --header "Authorization: Bearer ${APIFY_TOKEN}"

Cursor, VS Code and other JSON configurations

{
"mcpServers": {
"tv-anime": {
"type": "http",
"url": "https://mrbridge--tv-anime-mcp.apify.actor/mcp",
"headers": {
"Authorization": "Bearer ${APIFY_TOKEN}"
}
}
}
}

claude.ai and Claude Desktop

Add a custom connector with the URL https://mrbridge--tv-anime-mcp.apify.actor/mcp?token=YOUR_APIFY_TOKEN and no authentication. Prefilled link (replace the token placeholder before saving): add TV Shows, Anime & Manga MCP Server to Claude.

ChatGPT (developer mode)

Settings > Apps > Create, URL https://mrbridge--tv-anime-mcp.apify.actor/mcp?token=YOUR_APIFY_TOKEN, authentication "No authentication". ChatGPT snapshots the tool list: after a server update, an admin has to click Refresh on the app.

OpenAI Responses API

{
"type": "mcp",
"server_label": "tv_anime",
"server_url": "https://mrbridge--tv-anime-mcp.apify.actor/mcp",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
},
"require_approval": "never"
}

Add allowed_tools to restrict the tool list. Tool calls must finish within about 60 seconds on this API, and every tool of this server answers in under 50 seconds.

Anthropic Messages API

{
"mcp_servers": [
{
"type": "url",
"url": "https://mrbridge--tv-anime-mcp.apify.actor/mcp",
"name": "tv-anime",
"authorization_token": "YOUR_APIFY_TOKEN"
}
],
"tools": [
{
"type": "mcp_toolset",
"mcp_server_name": "tv-anime"
}
]
}

Send the beta header anthropic-beta: mcp-client-2025-11-20.

One-click OAuth alternative

https://mcp.apify.com/?tools=mrbridge/tv-anime-mcp connects through Apify OAuth without a token. It exposes the Actor as a single tool rather than the granular tools listed above.

Cost control

Each Standby run has a spending limit (maxTotalChargeUsd). When a call uses the last of it, the result is still returned, and later calls in that run answer CHARGE_LIMIT_REACHED until the limit is raised.

Why use this server

  • Next episode in one call. Air date and time, plus whether the show is running or ended, from a TVmaze id, an IMDb id, a TheTVDB id or a plain title.
  • Schedules by country and service. Tonight's broadcast and cable listings for a country, and the day's streaming releases on services such as Netflix or Crunchyroll, filtered by genre, type or language.
  • Anime cards that answer the usual questions. Main studio, average score, top tags without spoilers, where to stream, the watch order through sequels and prequels, and the source manga.
  • Manga, manhwa, light novels. Search by title, genre, format or country of origin, then get chapter and volume counts, the credited author and artist, official reading links and the anime adaptations.
  • People and credits. Find an actor, voice actor or creator and list what they appeared in, with roles and guest spots, newest first.
  • Citations built in. Each item links to its TVmaze or AniList page, and the ChatGPT pair cites those pages in deep research.
  • No key to manage. Connect with your Apify token. You pay per successful call, plus the platform usage of your own server run.

Pricing (Pay-per-Event)

EventCharged whenPrice
apify-actor-startrun start (platform default)see the Store page
tool-read (primary event)each successful read tool callsee the Store page
tool-actioneach successful call of a detailed or computed toolsee the Store page

Never charged: initialize, tools/list, pings, readiness probes, and any call that ends in an error (invalid input, not found, upstream failure, timeout, spending limit).

Platform usage comes on top of these events. This server runs in Apify Standby mode, and you also pay the platform usage of your own Standby run, billed to your Apify account like any other run: the memory set for the Standby run, for as long as the server is up, idle time included, until the run stops at its idle timeout. The Apify pay-per-event documentation says so: "For runs in Standby mode, users always pay the platform usage costs in addition to the event charges."

Limits, caveats and attribution

  • Attribution. Each answer carries an attribution block: the source (TVmaze or AniList), the licence or terms (CC BY-SA 4.0 for TVmaze, the AniList API Terms of Use for AniList), the terms page, and notices with the credit line, the changes made and the non-affiliation line. Each show, episode, season, person and character comes with its TVmaze page URL, and each anime, manga and staff member with its AniList page URL (anilist_url). Keep both with the data when you pass it on.
  • Anime and manga from AniList. The six AniList tools read one AniList page of at most 50 entries per question and page through it in memory. When AniList holds more, more_on_anilist and coverage_note say so: narrow the question (a genre, a format, a country, fewer days) rather than looking for a next page. For airing windows, covered_until gives the air time of the last row, and next_steps holds the call that lists the rest. Genres must be AniList genres (Action, Romance, Slice of Life and the like): other words are refused before any call. Descriptions are excerpts of at most 300 characters, with spoiler blocks and spoiler tags removed, and no cover image is returned. Adult entries never appear: every query asks AniList to leave them out, and every entry is checked again, which also leaves out any entry of the Hentai genre. Ecchi titles are not adult on AniList, so they do appear. Past airing times may be off, since AniList only aims to keep future ones accurate.
  • Manga. Manga, manhwa and manhua are told apart by country (JP, KR, CN or TW), as AniList has no genre for them. status is AniList's newer status, so a paused series reads HIATUS. chapters and volumes are null while a series is still running. Staff are names and roles in AniList's order, at most 10, with no other personal detail. Reading links are the official sites AniList lists, never chapter text. There is no list, tracker or reading progress feature.
  • ChatGPT pair. search asks TVmaze for shows and people and AniList for anime and manga, and returns at most 8 shows, 4 anime, 4 manga and 4 people. Ids name their source (tvmaze:show-82, tvmaze:person-1, anilist:anime-1, anilist:manga-30002). fetch also accepts TVmaze and AniList page URLs, and the short show-82 and person-1 forms. When one source fails or is busy, the answer keeps the results of the other and says which part failed.
  • Summaries. Summaries are short excerpts of at most 300 characters, as plain text, with summary_truncated when cut. Lists show them in detailed mode only. media_get_show and media_get_episode show them in both modes. The full text stays on the TVmaze page of the item.
  • Images. Poster and photo fields are links to the TVmaze image server, given in detailed mode. This server never downloads or hosts an image. Posters and photos can belong to networks and studios, so check the rights before you reuse one.
  • Coverage. TVmaze lists TV and web series, anime series included (type "Animation", often with the genre "Anime"). It has no films and no manga. AniList adds anime films, OVAs, studios, scores and seasons, plus manga, manhwa, manhua, light novels and one-shots. Schedules cover what TVmaze knows for a country and a day. Global streaming services such as Netflix only appear in media_streaming_schedule. The TVmaze and AniList ids are separate, and so are AniList's anime and manga ids: a show_id is not an anime_id, and an anime_id is not a manga_id.
  • Names. show_name in media_get_show and media_get_next_episode takes TVmaze's single best match, which can be the wrong show when several share a title. The answer says so in match_note. Use media_search_shows and show_id when in doubt.
  • Rate limits. TVmaze allows at least 20 calls every 10 seconds per IP address. This server keeps to 10 per 10 seconds per instance, makes its calls one at a time, and waits and retries after a rate-limit answer. AniList allows 30 calls a minute for now. This server keeps to one AniList call every 4 seconds per instance, and a ChatGPT search makes one of them. After a rate-limit answer from AniList it sends nothing to AniList until the one-minute timeout AniList imposes is over, and the anime and manga tools say how many seconds are left. A busy period can still answer UPSTREAM_RATE_LIMITED, with the delay the source asks for when it gives one. Wait a minute and call again.
  • Freshness. TVmaze caches its own answers for an hour. This server caches show records, episode lists and dated schedules for an hour, today's schedule for five minutes, and searches, casts, crews and people for a day. AniList answers stay in memory for 30 seconds and are never written to storage, so the same anime or manga question asked a minute later goes back to AniList. The ChatGPT pair keeps the same rules for each source: up to a day for TVmaze, 30 seconds for AniList. The hours until an episode airs are worked out when the answer is built. A source that is down can be answered from an older copy, marked stale in the cache block (at most five minutes old for AniList).
  • Sizes. Lists are paged with limit and offset. Detailed mode returns at most 20 rows per page (30 for seasons, 10 for the anime and manga lists) and says so in the paging notice.

Data terms

TVmaze licenses its API data under CC BY-SA 4.0 (TVmaze licensing). What the TVmaze tools return is an adaptation of that data, shared under the same licence. By using them you agree to:

  • credit TVmaze as the source and link to the TVmaze page of each item (the tvmaze_url fields) wherever you show or publish the data,
  • share what you build from the data under CC BY-SA 4.0 as well, as the ShareAlike clause requires,
  • leave out any wording or logo that suggests TVmaze endorses you or this server,
  • check the rights of posters and photos before reusing them, since TVmaze links to images that networks and studios provide.

AniList data reaches you under the AniList API Terms of Use. They give you no licence to pass the data on, and they rule out some uses. By using the anime and manga tools, or the AniList results of search and fetch, you agree:

  • not to use the answers as a backup or a store of AniList data, and not to collect AniList data in bulk through this server,
  • not to use them in an anime or manga list or tracker, or in any other service that competes with AniList,
  • to link to the AniList page of each anime, manga or staff member (the anilist_url fields) wherever you show the data,
  • not to call your own product "AniList", and to add "UNOFFICIAL" or "for AniList" to its name if the name contains AniList.

This server is not affiliated with or endorsed by TVmaze or AniList. AniList can change or close its API at any time, and this server stops serving AniList data as soon as AniList asks. The fee for this server pays for the service (hosting, caching, normalisation), not for a licence on the data, which stays under CC BY-SA 4.0 for TVmaze and under the AniList terms for AniList.

Use cases

  • Personal TV assistant. "What's new on streaming tonight?" or "is my show still running?" answered from the schedule and the show card.
  • Anime season guide. See what airs this season and at what time, then when the next episode of a series comes out.
  • Manga discovery. Find manhwa or light novels by genre or country, and check whether an anime adaptation exists.
  • Newsletters and watch parties. Build a weekly list of premieres and finales for a country or a genre.
  • Media research. Count episodes per season, compare runtimes or trace a creator's career for an article.
  • Trivia and recommendations. Who voices whom, who else was in a cast, which shows share a writer.

FAQ

Does it cover manga and films?

Manga, manhwa or light novels: yes, through AniList. You get a search and one card per title, with chapter and volume counts plus reading links, but no chapter text. Anime films come from AniList too. Live-action films are not covered, since TVmaze lists series only.

Are adult titles included?

No. Anime and manga come the way a visitor without an 18+ account sees them on AniList: adult entries are left out on every tool, while titles AniList rates Ecchi, which it does not count as adult, stay in.

Can I reuse the data in my app?

TVmaze data, yes, under CC BY-SA 4.0: credit TVmaze, link each item back, and share derived work under the same licence. AniList data comes under the AniList API Terms of Use: no bulk collection, no backup copy, no list or tracker service, and a link to each AniList page. Posters and photos may belong to networks or studios, so clear those separately.

Why did it pick the wrong show?

A bare title takes the single closest match, which can miss when several programmes share a name. Search first, then pass the id.

What does a call cost?

Each successful tool call is one event, at the price shown on the Pricing tab for your Apify plan: tool-action for media_get_cast, media_tv_schedule, media_streaming_schedule, media_get_anime and media_get_manga, tool-read for every other tool. Paid Apify plans get lower prices. On the free plan, a read costs $0.005 and an action $0.01, so 100 reads come to $0.50 in events. On top of that, your Apify account pays the platform usage of your own Standby run while the server is up, idle minutes included. Errors are never charged, and maxTotalChargeUsd caps what one run can spend.

Why is the first call slower?

The first call after a quiet period starts a new Standby run on your Apify account, which takes a few seconds. Then it answers quickly, and it shuts down after about 5 idle minutes.

Is this server affiliated with TVmaze or AniList?

No. It reads their public APIs, and neither of them endorses it.

Your feedback

Found a bug or a show it cannot find? Tell us on the Issues tab.

More MCP servers, scrapers and data studies from the same team: mr-bridge.com.

Changelog

  • 0.2.4: Output, dataset and key-value store schemas, as Apify asks for publication: the Output tab of a run started from the Console shows the connection details and one row per tool.
  • 0.2.3: the Input tab shows the endpoint and how to connect an AI client, and a run started from the Console outputs the connection details and the tool list
  • 0.2.2: pricing events tool-read and tool-action
  • 0.2.1: an episode without an air time, as most streaming releases are, no longer gets a UTC timestamp or an hour countdown, since TVmaze fills in noon for it. The next episode then comes with its date alone. An episode summary that holds no letter or digit (TVmaze sends "." for some streaming episodes) now reads as no summary instead of a lone dot. Test fixtures now come from real TVmaze answers captured on the deployed server (private, unpublished)
  • 0.2.0: manga from AniList, with media_search_manga (title, genre, year, format, status and country of origin, so manhwa and manhua too) and media_get_manga (chapters, volumes, staff, reading links, related manga and anime adaptations). The anime card gains related_manga. The ChatGPT search and fetch pair now reads AniList anime and manga as well as TVmaze shows and people, and its ids name their source (tvmaze:show-82, anilist:manga-30002), while fetch still accepts show-82 and person-1. Entries of the Hentai genre are now left out even when AniList does not flag them adult, and Ecchi titles are still served. Server name aligned with the Store title (private, unpublished)
  • 0.1.0: initial build with TVmaze, and AniList anime tools added before the first release (private, unpublished)