===== MCP: elérhető funkciók ===== Az [[evir:rendszer:ai_mcp|MCP szerver]] nem szabad adatbázis-hozzáférést ad az AI-nak, hanem egy **rögzített funkciólistát**. Az AI ezek közül választ, a többihez nem fér hozzá — szabad SQL, tömeges export és törlés nincs. Ez az oldal azt írja le, mit tud pontosan kérdezni és mit tud rögzíteni az AI. ==== Mitől függ, hogy egy funkció elérhető-e ==== Egy funkció akkor jelenik meg az AI-alkalmazásban, ha **mindhárom** teljesül: - a hozzá tartozó eVIR **modul telepítve van** ezen a példányon, - a felhasználónak van **menü-jogosultsága** a megfelelő menüponthoz, - írási funkciónál a hozzáférés **''read write'' jogosultsági körrel** lett engedélyezve. Ezért ugyanaz az eVIR **más-más funkciólistát mutat két különböző felhasználónak** — ez nem hiba, hanem maga a működési elv. Ha valami hiányzik, a menü-jogosultságot kell megnézni, nem az MCP beállításait. Az AI-nak érdemes az ''evir_info'' funkcióval kezdenie: az megmutatja, mi érhető el egyáltalán az adott munkamenetben. Bizonylatoknál ugyanezt a szerepet a ''bizonylat_tipusok'' tölti be. ==== Lekérdező funkciók ==== ^ Funkció ^ Mit ad vissza ^ Ehhez a menüponthoz kell jog ^ | ''evir_info'' | A példány és a hívó felhasználó adatai: cégnév, verzió, telepített modulok, a felhasználó neve, telephelye, privilégiumai, és a ténylegesen elérhető funkciók listája. | — (mindig elérhető) | | ''partner_kereses'' | Partnerek keresése név-, adószám- vagy településtöredékre. Alapból csak az aktívak. | Partnerlista | | ''partner_adatok'' | Egy partner részletes adatai: törzsadatok, címek, e-mail címek, megjegyzés. | Partnerlista | | ''cikk_kereses'' | Keresés a cikktörzsben cikkszám- vagy megnevezéstöredékre. Alapból csak az aktívak. | Terméklista | | ''cikk_adatok'' | Egy cikk törzsadatai, érvényes árai és raktárankénti készlete. | Terméklista | | ''keszlet_lekerdezes'' | Aktuális készlet cikkenként és raktáranként. Alapból csak a nem nulla sorok. | Raktár-cikk összesítő | | ''raktar_lista'' | A raktárak kódja, neve, típusa. | Raktár-cikk összesítő | | ''bizonylat_tipusok'' | Melyik bizonylatfajtákat lehet ezen a példányon lekérdezni, és a hívó melyikhez fér hozzá. Azt is megmondja, honnan kerülhet tétel az adott bizonylatra, hogy a hívó **felveheti-e**, és milyen fejmezőt kötelező megadnia hozzá. | bármelyik bizonylat-lista | | ''bizonylat_kereses'' | Bizonylatok keresése partner, bizonylatszám, időszak vagy altípus szerint. **Mind a 13 bizonylatfajtát kiszolgálja**, a ''tipus'' paraméter dönti el, melyiket (lásd lentebb). | a keresett típus listája | | ''bizonylat_adatok'' | Egy bizonylat feje és összes tétele, pontos bizonylatszám alapján. Ugyanúgy típus-paraméteres. | a keresett típus listája | | ''rendeles_teljesitheto'' | Mely vevői rendelések teljesíthetők, és melyikből mi hiányzik. Rendelésenként állapot, tételszám, hiányos tételek száma; egy konkrét rendelésszámra tételenként a rendelt / teljesített / raktáron lévő / hiányzó mennyiség. Kétféle készletből tud számolni, lásd lentebb. | Rendelések → Összes | | ''folyoszamla'' | Folyószámla-tételek: bizonylat, határidő, összeg, teljesített rész, hátralék, késedelmes napok. Alapból csak a rendezetlenek. | Folyószámla | | ''kintlevoseg'' | Partnerenként összesített, korosított kintlévőség (0-30 / 31-60 / 61-90 / 90+ nap). | Folyószámla | | ''dokumentum_kereses'' | Keresés a dokumentumtárban. **Csak a dokumentumok adatait adja vissza, a fájlok tartalmát nem.** A privátnak jelöltek nem jelennek meg. | Lista (dokumentumok) | | ''tms_feladat_kereses'' | TMS feladatok keresése tárgy, státusz, intéző, munkacsoport vagy partner szerint. | Összes taszk | | ''tms_feladat_adatok'' | Egy TMS feladat részletei és naplóbejegyzései. | Összes taszk | | ''ajanlat_kereses'' | Ajánlatok keresése partner, ajánlatszám vagy időszak szerint. | Ajánlatlista | A ''rendeles_teljesitheto'' válaszában a **„raktáron" a rendelés saját rendelési raktárára** vonatkozik — vagyis a rendeléshez már odakészített árura, **nem** az összes raktárkészletre. A funkció ezt a válaszában ki is mondja, hogy az AI ne olvassa általános készletnek. === Melyik készletből számol === A „teljesíthető-e ez a rendelés" kérdés valójában **kettő**, és a ''keszlet_forras'' paraméter választ közülük: ^ ''keszlet_forras'' ^ Mit jelent a „raktáron" ^ Melyik kérdésre válaszol ^ | ''rendelesi_raktar'' (alapértelmezés) | A rendelés **saját rendelési raktára**: a rendeléshez már odakészített áru. | „Ki lehet-e szállítani, ami már össze van készítve?" | | ''foraktar'' | A **főraktárnak jelölt raktár** szabad készlete. | „Kijönne-e egyáltalán a raktárkészletből?" | A ''foraktar'' ág **rendelésenként függetlenül** számol: ugyanazt a készletet több rendelésnél is elszámolja, tehát a teljesíthetőnek jelzett rendelések nem feltétlenül teljesíthetők **egyszerre**. Foglalás ettől nem történik. Ha a rendszeren **egyetlen raktár sincs főraktárnak jelölve**, a ''foraktar'' ág nem tippel és nem ad üres listát, hanem hibaüzenetben kimondja, hogy ez a beállítás hiányzik — különben az AI azt olvasná ki, hogy semmi nem teljesíthető. A jelölés helye a raktár-telephely beállításokban van. ==== A bizonylattípusok ==== A ''bizonylat_kereses'' és a ''bizonylat_adatok'' egyetlen funkció, amely **típus-paraméterrel** szolgálja ki az összes bizonylatfajtát. A ''tipus'' elhagyása esetén a kimenő számlát keresi. ^ ''tipus'' ^ Bizonylat ^ Modul ^ Ehhez a menüponthoz kell jog ^ | ''szamla'' | Számla | Számlázás | Számlalista | | ''szallitolevel'' | Szállítólevél | Szállítólevél | Szállítólevél lista | | ''rendeles'' | Vevői rendelés | Rendelés | Rendelések → Összes | | ''berendeles'' | Beszerzési rendelés | Rendelés | Beszerzési rendelések → Összes | | ''munkalap'' | Munkalap | Munkalap | Munkalapok → Összes | | ''ajanlat'' | Ajánlat | Ajánlat | Ajánlatlista | | ''szerzodes'' | Szerződés | Szerződés | Szerződéslista (részletes) | | ''szamlazando'' | Számlázandó tétel | Számlázandók | Számlázandók listája | | ''proforma'' | Proforma számla | Proforma | Proforma lista | | ''bevetelezes_szamlarol'' | Bevételezés számláról | Raktár | Bevét. számláról lista | | ''bevetelezes_szallitorol'' | Bevételezés szállítólevélről | Raktár | Bevét. szállítólevélről lista | | ''raktarkozi_mozgas'' | Raktárközi mozgás | Raktár | Raktármozgás-lista | | ''leltar'' | Leltárív | Raktár | Leltárívek listája | A lista **példányonként eltér**: csak az a típus jelenik meg, amelynek a modulja telepítve van, és amelyhez a hívó felhasználónak van menü-jogosultsága. Ezért érdemes ''bizonylat_tipusok''-szal kezdeni, nem találgatni. ==== Honnan kerülhet tétel egy bizonylatra ==== Ahol a bizonylat tételt is kaphat, ott háromféle forrás lehetséges — hogy melyik, az bizonylatfajtánként eltér, és a ''bizonylat_tipusok'' meg is mondja: * **katalógus** — a cikktörzsből, készlettől függetlenül (pl. ajánlat, proforma, beszerzési rendelés), * **raktár** — raktári készletről, készletfoglalással (pl. számla, szállítólevél, munkalap, raktárközi mozgás, leltár), * **szolgáltatás** — nem készletezett tétel (a legtöbb bizonylaton). Az **ajánlaton nem lehet raktárat választani**: az eVIR készlet-keresője itt mindig a rendszer főraktárát használja. A funkció a megadott raktárat ezért hibával utasítja vissza — enélkül a hiba néma lenne (találat nélküli, mégis „sikeres" keresés). ==== Írási funkciók ==== Csak ''read write'' [[evir:rendszer:ai_mcp:engedelyezes|jogosultsági körrel]] érhetők el. ^ Funkció ^ Mit csinál ^ Ehhez a menüponthoz kell jog ^ | ''partner_megjegyzes'' | Bejegyzést ír a partner naplójába a hívó nevében. A partner **törzsadatait nem módosítja**. | Partnerlista | | ''tms_megjegyzes'' | Megjegyzést fűz egy meglévő TMS feladathoz. **A státuszt nem változtatja meg.** | Új taszk | | ''tms_feladat_letrehozas'' | Új TMS feladatot hoz létre tárggyal, leírással, munkacsoporttal, opcionálisan intézővel, határidővel, partnerrel. | Új taszk | | ''bizonylat_letrehozas'' | **Valódi bizonylatot vesz fel** tételekkel, és visszaadja a bizonylatszámot és a linkjét. A ''tipus'' paraméter dönti el, melyik bizonylatfajta készül — ugyanaz a 13 típus, mint a lekérdezésnél. A tétel a cikktörzsből, raktári készletről vagy szolgáltatásként kerülhet rá. | a felvenni kívánt típus **készítő** menüpontja | A ''bizonylat_letrehozas'' **nem piszkozatot készít**: a bizonylat az eVIR saját bizonylat-motorján megy át, szabályos bizonylatszámot kap (pl. ''AJ2026000123''), és megjelenik a listákban — ugyanúgy, mintha a felületen vették volna fel. Az árazás, az ÁFA és a számozás is ugyanonnan jön. \\ Amit **nem** tesz: nem nyomtat, nem küld ki e-mailt, nem könyvel, nem ad NAV-adatszolgáltatást, nem sztornóz és nem töröl. A továbbiakat a felhasználó végzi a felületen. === Az írás jogosultsága külön jog === A bizonylat **listázása** és a **felvétele** két külön menüpont, tehát két külön jogosultság. Aki lát egy bizonylatlistát, még nem feltétlenül állíthat ki olyan bizonylatot — az MCP is így viselkedik: a ''bizonylat_tipusok'' minden típusnál külön kiírja, hogy a hívó **felveheti-e**. === Kötelező fejmezők === Egyes bizonylatoknak van olyan fejmezője, ami nélkül nem menthetők. Ezek két csoportba esnek: ^ Mit csinál az MCP ^ Mely mezők ^ Miért így ^ | **Kitölti**, és a válaszban kiírja, mivel | fizetési mód (a törzs első eleme), érvényességi határidő és szállítási határidő (ma + 30 nap) | Van értelmes alapértelmezés, de a csendes kitöltés félrevezetné a felhasználót is, az AI-t is | | **Kéri** a hívótól | raktárközi mozgás **célraktára**, a bevételezések **beszállítói bizonylatszáma**, a szerződés **számlázási módja** | Üzleti döntés: rossz értékkel a bizonylat nem hibás lenne, hanem *más* — és ez nem derülne ki | Hogy egy adott típusnál mi kötelező, azt a ''bizonylat_tipusok'' is kiírja. **Amit egyetlen funkció sem tud:** törölni (semmit, semmilyen formában), számlát kiállítani, bizonylatot könyvelni, e-mailt kiküldeni, törzsadatot módosítani, jogosultságot változtatni, felhasználót létrehozni, beállítást átírni. ==== Korlátok minden hívásra ==== * **Sorlimit.** Minden lekérdezésre kötelező limit kerül (alapértelmezés: 100 sor). A hívó kérhet kevesebbet, **többet nem** — így nem lehet a funkciókkal adatbázist másolni. * **Méretlimit.** A válasz mérethatár felett csonkolódik, és a csonkolás ténye ki is íródik, hogy az AI ne hiányos adatra alapozzon. * **Hívásszám-korlát** percenként, hozzáférésenként. * **Naplózás.** Minden hívás — a sikertelen is — bekerül a [[evir:rendszer:ai_mcp:audit|hívásnaplóba]]. A határértékek a [[evir:rendszer:beallitasok:ai_mcp|beállításokban]] módosíthatók. ==== A válaszokban lévő linkek ==== A funkciók a találatokhoz **eVIR-linket** is visszaadnak. Ezek a szokásos, bejelentkezést igénylő felületre mutatnak: az AI válaszából egy kattintással a rendes eVIR-képernyőn lehet folytatni. A link önmagában nem ad hozzáférést senkinek. ---- Kapcsolódó oldalak: * [[evir:rendszer:ai_mcp|eVIR MCP szerver (áttekintés)]] * [[evir:rendszer:ai_mcp:adatbiztonsag|Adatbiztonság]] * [[evir:rendszer:ai_mcp:audit|MCP hívásnapló]] * [[evir:rendszer:felhasznalok:jogosultsagi_rendszer|Jogosultsági rendszer]]