===== 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]]