Vissza az eszközökhöz

Hermes Agent

MCP

Az MCP nyílt szabvány, amely egységesen köti össze az AI alkalmazásokat a külső adatforrásokkal és eszközökkel. Nálunk ez adja az ügynökök eszközrétegét.

3 perc olvasás

A Model Context Protocol (MCP) nyílt szabvány, amely egységesíti, hogyan érnek el az AI alkalmazások külső rendszereket: adatforrásokat, eszközöket és előre elkészített munkafolyamatokat. Nem modell és nem szolgáltatás, hanem interfész-leírás, amelyhez a kliens és a szerver oldalán egymástól függetlenül lehet csatlakozni.

A szabvány JSON-RPC 2.0 üzenetekkel dolgozik, és három szereplőt különböztet meg. A host az a futtató alkalmazás, amely a kapcsolatokat kezdeményezi, a kliensek a hoston belüli csatlakozók, a szerverek pedig azok a szolgáltatások, amelyek a kontextust és a képességeket adják. Egy host több klienst is futtathat, de minden kliens egyetlen szerverhez kapcsolódik, saját munkamenetben. Ez a felosztás nem díszítés: a biztonsági határok is itt húzódnak, és a host felel azért, hogy egy szerver ne lássa a teljes beszélgetést, se a többi szervert.

Mit kínál egy szerver?

A szerverek három primitívet adhatnak, és ezeket másképp irányítja a rendszer:

  • Erőforrások (resources): kontextus és adat URI-val azonosítva, például fájlok, adatbázissémák, dokumentumok. Alkalmazás-vezéreltek: a host dönti el, hogyan kerülnek a kontextusba.
  • Promptok (prompts): sablonos üzenetek és munkafolyamatok, amelyeket a felhasználó választ ki.
  • Eszközök (tools): JSON Schemával leírt függvények, amelyeket a modell hív meg. Modell-vezéreltek, ezért itt a legszigorúbb a felügyelet.

Az, hogy ezek közül mi érhető el, az inicializáláskor lezajló képesség-egyeztetésen dől el: amit egyik fél sem jelentett be, az nem használható. Az eszközlistát a kliens tools/list kéréssel kérdezi le, híváskor pedig tools/call megy a szervernek. Az erőforrásokra előfizetni is lehet, így a kliens értesítést kap, ha egy erőforrás tartalma vagy a lista megváltozik.

Hogyan kapcsolódnak össze?

Két standard átvitel van, mindkettő JSON-RPC üzeneteket továbbít:

  • stdio: a kliens helyi alfolyamatként indítja a szervert, az üzenetek soronként, a szabványos be- és kimeneten mennek.
  • Streamable HTTP: a szerver önálló folyamat, egyetlen HTTP végpontot ad POST és GET metódusra, és opcionálisan SSE-folyamot nyit a szerver-oldali üzenetekhez. Ez váltotta fel a korábbi HTTP+SSE átvitelt.

A protokoll átvitel-független, saját átvitel is írható hozzá, de ilyenkor is meg kell tartani a JSON-RPC üzenetformát és az életciklus szabályait. A kapcsolat elején a felek verziót és képességeket egyeztetnek, HTTP esetén pedig a protokollverzió fejlécben is megjelenik, amit a szervernek el kell utasítania, ha nem támogatja.

Hol van a helye nálunk?

Nálunk az MCP az eszközréteg nyelve. A Hermes Agent ezen keresztül kapja a képességeit, a szervereket pedig a MCPHub fogja össze egy belépési pontba, ahol látszik, melyik szerver mit tud, és a hozzáférés is szabályozható. Ahol inkább folyamatot kell összekötni, ott n8n a ragasztó, a szervereket pedig konténerben futtatjuk.

Ez akkor működik jól, ha a szerverek kicsik és egy dolgot tudnak, mert így a jogosultság is szűken adható.

Amire figyelni kell

Az MCP saját dokumentációja mondja ki, hogy a szabvány nem tudja kikényszeríteni a biztonsági elveket: a hozzájárulás, a jogosultság és a naplózás az implementáció felelőssége.

  • Az eszközleírás nem megbízható. Az annotációkat és a leírásokat megbízhatatlanként kell kezelni, kivéve, ha a szerver megbízható. A döntést nem hozhatja meg a leírás szövege.
  • Ember a körben. Az eszközhívás tetszőleges kódvégrehajtás lehet, ezért a szabvány azt kéri, hogy a felhasználó előzetesen, kifejezetten járuljon hozzá, és lássa, mi fog lefutni.
  • Helyi szerver, valódi kockázat. A helyben, a felhasználó jogosultságaival futó szerver kompromittálódása kódvégrehajtást jelent, és a felhasználónak nincs rálátása arra, mi fut.
  • Engedélyezés. A dokumentált támadások között szerepel a confused deputy, a token-átengedés (token passthrough), az SSRF, a state handle eltérítése és a mix-up támadás. A közös minta az, hogy egy közvetítő szerver rossz hatáskörben jár el, ezért szűk hatókör, pontos redirect URI egyeztetés és kliensenkénti hozzájárulás kell.
  • HTTP-nél külön szabályok. Az Origin fejléc ellenőrzése kötelező, helyben csak localhostra érdemes kötni a szervert, és hitelesítés kell minden kapcsolatra.

Ha ezek megvannak, az MCP nem varázslat, hanem kiszámítható szerződés a modell és a rendszereink között. Nálunk a CyberElectro minden eszközintegrációja ezen a szabványon keresztül kapcsolódik az ügynökökhöz: a képesség egyszer van leírva, és onnan használja a rendszer.

Tovább olvasás

Címkék
  • szabvány
  • protokoll
  • eszközök
  • MCP szerver
  • JSON-RPC