Model Context Protocol a gyakorlatban · Lecke 04

Az első saját szerver

Egy MCP szerver megírása kevesebb munka, mint elsőre látszik. Ez a lecke a gondolatmenetet mutatja, nem a kódot, mert a lényeg nem a nyelv, hanem a tervezés.

Vissza a tananyaghoz


Mit kell eldönteni, mielőtt kódot írnál

A legtöbb rossz MCP szerver azért lesz rossz, mert a fejlesztő rögtön a meglévő API-ját tükrözi le eszközökké. Ha az API-nak negyven végpontja van, akkor negyven eszköz lesz belőle, és a modell elveszik köztük.

Négy kérdést érdemes előre megválaszolni.

1
Milyen feladatot fog megoldani a modell ezzel? Nem azt, milyen adatot tárol a rendszer, hanem hogy a felhasználó mit akar elérni.
2
Melyik rész adat és melyik művelet? Az adat erőforrás legyen, a művelet eszköz. Ez a szétválasztás a szerver gerince.
3
Mi az, ami visszafordíthatatlan? Törlés, küldés, fizetés. Ezeket vagy ki sem adjuk, vagy jóváhagyáshoz kötjük.
4
Mekkora a válasz? Ha egy eszköz több ezer sort adhat vissza, akkor lapozásra vagy szűrésre van szükség, különben a kontextus megtelik.

A szerver váza

Egy MCP szerver három dolgot csinál. Bejelenti, mit tud. Kiszolgálja a listázó kéréseket. Végrehajtja a hívásokat és visszaadja az eredményt.

A hivatalos SDK-k ezt a három dolgot néhány sorban elintézik Pythonban vagy TypeScriptben. A tényleges munka nem itt van, hanem abban, hogy jól válaszd meg az eszközöket és jól írd meg a leírásukat.

Érdemes egyetlen eszközzel kezdeni és azt működésbe hozni, mielőtt bővítenél. Egy működő szerver egy eszközzel többet ér, mint egy félkész húsz eszközzel, mert a hibakeresés az első esetben egyszerű.


A tesztelés legjobb módja nem az, hogy elolvasod a naplót. Kérdezd meg a modellt a gazdaalkalmazásból úgy, ahogy a felhasználó tenné, és nézd meg, melyik eszközhöz nyúl. Ha rosszhoz nyúl, akkor nem a kód hibás, hanem a leírás.


A gyakori első hibák

Túl sok eszköz. A modellnek minden eszközleírás helyet foglal a kontextusban, és minden további választási lehetőség rontja a találati arányt. Kezdd kevéssel.

Homályos nevek. Egy get_data nevű eszköz semmit nem mond. A név és a leírás együtt döntse el, mikor kell használni és mikor nem.

Nyers hibaüzenet. Ha a szerver egy adatbázis hibát ad vissza változtatás nélkül, a modell nem tud vele mit kezdeni. Fordítsd le arra, hogy mit tehet a modell ezután.

Túl nagy válasz. A teljes tábla visszaadása megtölti a kontextust, és utána a modell a saját válaszára sem figyel rendesen. Adj vissza keveset, és tegyél mellé lehetőséget a továbblépésre.


← Előző lecke Következő lecke →

Workshop

AI Transformation Day

Egésznapos, vezetőknek szóló program. Feltérképezzük, hol tart a szervezet, mi az első reális lépés, és milyen belső feltételek szükségesek a sikerhez. A nap végén konkrét, prioritizált cselekvési lista.

Érdekel a program →