DOMOVINA.ai

Podržani alati

Trenutno Domovina MCP poslužitelj nudi sljedeće alate za pretraživanje i pregled korpusa. Dodatni alati u izradi navedeni su pod „Planirano".

Aktivni alati

AlatOpisParametri
search_podcasts Semantičko pretraživanje korpusa hrvatskih katoličkih i političkih podcasta. Vraća do 50 chunkova transkripta s ocjenom relevantnosti, imenom govornika, vremenom u epizodi i dubokim linkom na YouTube na točnu sekundu. Podržava hibridno pretraživanje (semantika + leksički filter) za vlastita imena gdje sami vektori imaju slabosti.
query (string, obavezan): prirodno jezični upit, 2–500 znakova
limit (broj, neobavezan): 1–25, zadano 10
channel (string, neobavezan): slug kanala (npr. podcast_cuspajz)
speaker (string, neobavezan): filter na govornika — case-insensitive partial match (npr. Miletić)
min_upload_date, max_upload_date (YYYY-MM-DD, neobavezno): filter po datumu objave
include_summaries (bool, zadano true): ako false, isključuje AI sažetke (samo direktni citati)
lexical_terms (popis stringova, neobavezan): hibridni filter — chunk mora sadržavati SVE navedene tokene; do 10 tokena
get_episode Dohvati metapodatke, popis poglavlja i (po želji) cijeli transkript jedne epizode prema YouTube ID-u. Vraća naslov, govornike, trajanje, popis poglavlja (outline chunkovi) i transkript po segmentima s timestamp-ima. Za duge epizode (preko ~80 000 znakova) bez parametra view_range, transkript je izostavljen uz uputu da se dohvati po dijelovima. Koristi za doktrinarnu i temeljnu analizu cijele epizode kada search_podcasts daje preslab obuhvat.
youtube_id (string, obavezan): 11-znakovni YouTube video ID (npr. 5J9GQ0sFe3M)
include_transcript (bool, neobavezan): zadano true; false vraća samo meta + poglavlja
view_range (popis dvaju brojeva, neobavezan): [start_sec, end_sec] — filtriraj chunkove na vremenski raspon (npr. [0, 600] = prvih 10 min). Bypassira soft limit.
chapter_index (broj, neobavezan): 1-based indeks u chapters[] — convenience nad view_range-om. Mutually exclusive s njim.
list_channels Vraća popis svih kanala u korpusu sa statistikama (broj epizoda i chunkova, datum prvog i zadnjeg uploada). Koristi za pregled korpusa i za biranje validnog slug-a kanala u channel filterima drugih alata.
sort_by (neobavezno): episodes (default), chunks, channel (abecedno)
list_episodes Vraća listu epizoda korpusa (distinct po YouTube ID-u) s metapodacima: naslov, kanal, datum objave, trajanje, govornici, broj chunkova. Komplementarno search_podcasts — koristi za browsing korpusa bez specifičnog upita, npr. „tko sve gostuje u kanalu X", „najnovije epizode iz svibnja", „epizode govornika Y".
channel (string, neobavezan): slug kanala
speaker (string, neobavezan): partial match na govornika
min_upload_date, max_upload_date (YYYY-MM-DD, neobavezno)
sort_by: upload_date_desc (default), upload_date_asc, chunks_desc, duration_desc
limit (broj, neobavezno): 1–100, zadano 20
count_mentions Agregator: vraća top N grupa (kanal, govornik ili mjesec) po broju chunkova koji semantički matchaju upit. Vraća samo brojeve, ne sadržaj — drastično manji odgovor od search_podcasts. Idealan za statistička pitanja: „u kojem kanalu najviše govore o X", „tko najčešće spominje Y", „u kojem mjesecu najviše rasprava o Z".
query (string, obavezan): semantic upit za relevantne chunkove
group_by (obavezan): channel | speaker | month
relevance_threshold (0–1, zadano 0.4): cosine similarity prag
limit (broj, neobavezno): 1–50, zadano 20
min_upload_date, max_upload_date, channel (filteri)
get_person Profil govornika: agregira sve epizode u kojima jedna osoba govori, kroz sve kanale, iza stabilnog sluga (npr. zeljka-markic, don-tomislav-lukac). Vraća broj kanala i epizoda, raspodjelu po kanalima, mjesečni timeline i popis epizoda s dubinskim poveznicama. Granica: „govori" (govornik u transkriptu), ne „spominje se u tekstu".
slug (string, obavezan): ASCII-slug imena (č→c, ć→c, š→s, ž→z, đ→d, razmak→-)
find_in_transcript Doslovna pretraga transkripta s točnom sekundom: gdje je izgovorena riječ, ime ili fraza. Jedinica je segment od nekoliko sekundi, ne poglavlje. Unutar jedne epizode vraća sve pogotke kronološki, inače najrelevantnije grupirane po epizodi. Tolerira greške prepoznavanja govora i hrvatske padeže („Matija" pogađa i „Matijom"). Svaki pogodak je označen kao exact ili typo i ima poveznicu na točnu sekundu. Za pitanja „u kojem trenutku X kaže Y"; za značenje koristi search_podcasts.
query (string, obavezan): riječ, ime ili fraza; u dvostrukim navodnicima = točan slijed riječi
youtube_id (string, neobavezan): samo ova epizoda, svi pogoci po vremenu
channel, speaker (neobavezno): filter na kanal ili na govornika koji izgovara segment
word_forms (bool, zadano true): zadnju riječ traži i u drugim padežima
context (bool, zadano true): dodaj prethodni i sljedeći segment
limit (broj, neobavezno): 1–200, zadano 100 unutar epizode, inače 20
server_info Vraća metapodatke o MCP servisu i stanju korpusa: verziju, build info, statistiku dataset-a (broj kanala, epizoda, chunkova, datum najnovije i najstarije epizode), popis dostupnih alata. Koristi za debug, provjeru svježine podataka i otkrivanje koje su verzije/funkcionalnosti trenutno dostupne.
Nema parametara.

Planirano (TBD)

Sljedeći alati su u planu ali nisu još implementirani na produkciji. Prati napredak na GitHub Issues.

AlatOpisStatus
get_speaker Dohvati profil govornika prema imenu — popis pojavljivanja po epizodama, glavne teme, link na entity resolution. Zahtijeva završetak ensemble speaker pipeline-a (TitaNet + pyannote-wespeaker34). planirano (Faza 3)
chat (Q&A) Cjelokupni Q&A cjevovod: tvoje pitanje → retrieval → reranker → Gemini 2.5 Flash generacija s citatima iz transkripta. Resursno zahtjevnija operacija — vlastiti rate-limit bazen (vidi Ograničenja). planirano (Faza 2)

Stil odgovora

Svi alati vraćaju strukturirani JSON unutar MCP content bloka tipa text (JSON-stringified). Vremenski timestamp-i su u sekundama od početka videa; datumi u YYYY-MM-DD formatu (ISO 8601). Hrvatska slova zadržana su u UTF-8 bez transliteracije.