rotv-mcp Personal Entertainment Concierge pentru ChatGPT — live Romanian TV + streaming.

Endpoint: https://tv.madeinro.eu/mcp Protocol: Model Context Protocol Auth: None (public read-only)
Version
Uptime
EPG cache
Tools12

Ce face

rotv-mcp conectează ChatGPT (și orice alt client MCP) la grila live a ~254 canale TV din România și la cataloagele de streaming disponibile aici: Netflix, HBO Max, Disney+, Prime Video, Apple TV+, SkyShowtime. 13 tool-uri pentru căutare, recomandare, planificare seară și — cel mai important — decizie unică contextuală.

Tool-ul principal tv_concierge răspunde la întrebarea care contează cu adevărat: „Am 2 ore din viață. Care e cea mai bună utilizare a lor din tot ce e disponibil acum?"

Cum lucrează concierge-ul

Conectează serverul la asistentul tău AI

Server public, read-only, fără cheie și fără cont — orice client MCP compatibil se poate conecta. Rețetele de mai jos sunt testate pe acest server sau pe serverele-surori din aceeași familie.

Gemini CLI

  1. Instalează CLI-ul: npm install -g @google/gemini-cli
  2. Adaugă serverul în ~/.gemini/settings.json:
    {
      "mcpServers": {
        "rotv": { "httpUrl": "https://tv.madeinro.eu/mcp" }
      }
    }
  3. Pornește gemini și întreabă: „ce e important diseară la TV?" — Gemini alege singur tv_important_today / tv_concierge (testat pe 10 iul 2026, apeluri vizibile în log-urile serverului)
Aplicația Gemini (gemini.google.com/apps → custom app link) acceptă și ea MCP-uri custom, dar momentan doar în SUA, cu abonament Ultra — în EEA folosește Gemini CLI.

Claude Code / claude.ai

  1. În Claude Code, o singură comandă: claude mcp add --transport http rotv https://tv.madeinro.eu/mcp
  2. Pe claude.ai: SettingsConnectorsAdd custom connector → URL-ul de mai sus, fără autentificare

ChatGPT

  1. Deschide ChatGPT și mergi la SettingsConnectors (sau Apps & Connectors, în funcție de versiune)
  2. Click pe Add custom connector (sau + New connector)
  3. În câmpul Server URL introdu: https://tv.madeinro.eu/mcp
  4. În Authorization: lasă pe None (server-ul e public read-only)
  5. Click Connect. La aprobare ar trebui să vezi 13 tool-uri disponibile, inclusiv tv_concierge
Dacă tool-urile par cache-uite (vezi mai puține sau lipsește tv_important_today): Disconnect + Reconnect cu aceeași URL — clientul face fresh tools/list la reconectare.

Cele 13 tool-uri

Numele, versiunea și descrierea vin direct din definițiile serverului — exact ce primește agentul la tools/list (de aceea descrierile sunt în engleză).

ToolCe face
tv_concierge v3 Personal Entertainment Concierge — decide for me. You have a window of free time — decide for me what to watch right now. Returns ONE primary decision (TV program OR streaming title) with confidence percentage, full reasoning breakdown, and up to 3 diverse alternatives with explicit trade-offs (pros/cons, reason not picked). Picks across live Romanian TV EPG AND streaming catalog (Netflix, HBO Max, Disney+, Prime Video, Apple TV+, SkyShowtime). Built-in anti-noise filter automatically removes news, political talk, reality shows, talk-shows (NO manual filtering needed by the model). Built-in title dedup (handles ~46% duplicate-airing ratio in TV EPG). Built-in opportunity-cost lookahead (flags better options just outside the window). Event-aware: major broadcasts (World Cup / Euro / Champions League / finals) get an importance boost in ranking AND are always listed in the important_today field, even when the mood-based pick is something else — for questions like "what is important today?", prefer tv_important_today. PREFER THIS TOOL over tv_recommend_by_mood, tv_plan_evening, and tv_recommend_today whenever the user wants ONE answer / a single decision / a plan for a specific window — those tools return ranked LISTS for browsing, this tool returns a DECISION. Routes any mood internally (obosit / vesel / concentrat / romantic / familie / captivant + EN aliases tired/happy/focused/romantic/family/thrilling). Trigger phrases: "what should I do", "decide for me", "pick for me", "I have X hours", "ce să fac", "am 2 ore", "alege tu", "mood X durată Y", "o singură decizie", "fii consilierul meu", "what to watch", "concierge me".
tv_important_today v3.1 Today's important broadcasts (major events). What actually matters on Romanian TV today: World Cup / Euro / Champions League matches, finals, knockout games, national-team fixtures. Detected from real EPG text (titles + descriptions) with quoted evidence — the EPG has no structured event metadata, so detection is keyword-based and honest about it. Use this FIRST for questions like "what's important to watch today?".
tv_now_on_tv v1 What is on TV right now. Returns the programs currently broadcasting on Romanian TV channels. Use this for "What is on TV now?" type questions. Default scope is the 14 main channels; pass scope="all" for the full 254-channel list.
tv_search_program v1 Search Romanian TV programs. Search programs across all 254 Romanian TV channels by free-text title, channel, category, and time window. Use for queries like "documentaries on Discovery tomorrow", "football on Saturday", "what is on Antena 1 right now". Time references accepted: now, tonight, tomorrow, weekend, primetime, today, YYYY-MM-DD, ISO instant, or ISO range "A/B".
tv_get_prime_time v1 Prime-time TV lineup. Returns the prime-time lineup (20:00–23:00 Europe/Bucharest) for a given date, grouped by channel. Use for queries like "what is on prime time tonight" or "tomorrow night TV". By default, news channels are excluded.
tv_recommend_today v1 Recommend something to watch on Romanian TV. Returns up to N ranked program recommendations for a given timeframe. Uses a deterministic scorer that rewards films / documentaries / generalist channels, penalises news, and boosts programs starting within the next hour. Use for queries like "recommend me something for tonight", "ce e bun la TV diseară".
tv_get_title_details v1 Lookup a title across TV and streaming. Looks up a title across upcoming Romanian TV airings (next N hours, default 48) and the live streaming catalog for Romania (Netflix, HBO Max, Prime Video, Disney+, Apple TV+). Use for queries like "is Avatar on Netflix?", "when does Game of Thrones air next?".
tv_recommend_by_mood v2 Recommend by mood. Returns top-N Romanian TV programs ranked for a given mood (obosit/vesel/concentrat/romantic/familie/captivant — RO/EN aliases accepted). Combines: channel category, mood-fit (genre + duration + keywords), time proximity, and streaming cross-reference. Output includes mood_parts breakdown and freshness embedded.
tv_plan_evening v2 Plan an evening. Builds a coherent TV watching plan for an evening — either one long program filling the budget or 2-3 segments with small gaps. Accepts start time, duration budget, mood, and channel preferences. Output: ordered timeline + alternatives dropped + totals.
tv_compare_options v2 Compare TV options side-by-side. Compares 2-5 program titles by scoring each against the chosen mood, finding the next TV airing (next 48h by default) and looking each up in the streaming catalog. Returns side-by-side breakdown and a winner with reasoning.
tv_find_for_couple v2 Find content for a couple. Finds TV programs that satisfy two people with different moods/preferences. Default fairness=strict (min(scoreA,scoreB) >= threshold — no veto). Auto-falls-back to fairness=average if strict returns empty, marked with degraded:true. Returns per-person score breakdown + compromise note when one side wins by >1.5 points.
tv_explain_recommendation v2 Explain why a program was recommended. Returns a full score breakdown for a specific program in a given mood/context: per-component value + reason, extracted genres, streaming cross-ref, freshness, sources used, and a list of alternatives that were not picked (with the specific reason each was dropped). Use to understand or debug a recommendation.
tv_check_freshness v2 Check data freshness. Reports the last-updated time of each underlying data source (EPG normalized, EPG homepage, streaming catalog), the age in minutes, the expected next refresh, and whether any source is stale (older than 1.5× the expected refresh interval).

Exemple de prompt-uri

Iată tipuri de întrebări pe care le poți pune ChatGPT-ului după ce e conectat:

Decizie unică (rutează automat la tv_concierge)

Decide unic
Am 2 ore diseară, sunt obosit dar nu vreau să adorm. Decide tu — un singur titlu cu motivare și procentaj de încredere.
Streaming + filtru rating
90 minute, mood captivant, minim 7.5 pe TMDB, doar streaming, fără alternative — o decizie fermă.
Date night
Sâmbătă 20:00–22:30, mood romantic, decide pentru noi și dă-mi 3 alternative cu pro/contra.
Familie + restricții
Familie cu copii, 75 minute, exclude știri, reality și horror. Decide tu.
Concentrat, fără reluări
3 ore, mood concentrat, exclude cuvintele „retransmisie" și „best of". Spune-mi și ce a fost filtrat ca zgomot.

Browsing & listare

Now on TV
Ce se uită chiar acum pe canalele principale, exclude știrile?
Search
Caută documentare despre spațiu sâmbătă pe Discovery sau National Geographic.
Prime time
Ce e la prime time mâine seară pe canalele generaliste?
Title lookup
E Avatar pe Netflix sau alt streaming? Și când se mai difuzează la TV?

Comparații & planificare

Compare
Compară Pulp Fiction, Inception și Interstellar pentru mood captivant. Cine câștigă?
Couple
Eu vreau captivant, partenera vrea romantic. Găsește ceva OK pentru ambii diseară.
Plan evening
Plănuiește-mi seara 20:00 la 23:30 cu mood concentrat, max 3 segmente.
Explain
De ce ai recomandat acel program pentru mood-ul meu? Dă-mi breakdown-ul complet.

Diagnostice live

Endpoint-ul /mcp/health returnează JSON cu starea curentă a serverului:

curl https://tv.madeinro.eu/mcp/health
{
  "ok": true,
  "service": "rotv-mcp",
  "version": "3.0.x",
  "uptime_s": 1234,
  "cache_loaded_at": "2026-06-05T18:00:00.000Z"
}

Pentru a verifica freshness-ul datelor direct (fără ChatGPT):

curl -X POST https://tv.madeinro.eu/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"tv_check_freshness","arguments":{}}}'

Arhitectură pe scurt

De ce există

rotv-mcp începe cu observația simplă: utilizatorul tipic petrece 30 de minute alegând între TV, Netflix, HBO, Disney+, YouTube. Problema nu e lipsa de conținut. E excesul.

Concierge-ul nu e un ghid TV. Nu listează. Nu sugerează 10 opțiuni. Devine filtru personal de zgomot și răspunde la întrebarea practică: „Având tot ce e disponibil acum, ce alegi pentru următoarele X minute din viața mea?"

Și o spune cu confidence%, anti-noise count, dedup transparent și alternative care nu sunt doar „următoarele pe listă", ci aleasă pe buckets (sursă diferită / mai lung / mai scurt cu rating mai mare / gen diferit).