Hangvezérelt AI asszisztens készítése - az MCP és az AWS környezet
Az AI már nemcsak szöveget értelmez, hanem már függvényeket is felismer, dokumentumokat is olvas és API hívásokat is kezdeményez. A Model Context Protocol-t (MCP) bemutatva egy hangvezérelt, Express–React alapú applikációt ismerhetsz meg a cikkben AWS-környezetben.

Proof of Concept - Mit tud a példa alkalmazás?
A cél: beszéddel vezérelhető foglalási AI asszisztens létrehozása.
Fő funkciók:
Speech-to-text: A felhasználó hangját szöveggé alakítani.
AI értelmezés: Az AI ismerje fel a szöveges parancs szándékát, és ha kell hívjon meg függvényeket.
Text-to-speech: Az AI szöveges válasz kerüljön vissza hangformában a felhasználóhoz.
Az applikációban használt függvények:
Ezeket a függvényeket az AI felismeri, ha mellé kerülnek tools nevű definiciók:
Függvény neve | Leírás |
---|---|
checkRoomAvailability | Szoba elérhetőségek lekérdezése |
createReservation | Foglalás létrehozása |
getReservationDetails | Foglalások lekérdezése |
listReservationIds | Foglalások kilistázása |
answerFromFile | Válaszok elkészítése a fájlok tartalmából |
Így néz ki a hagyományos függvény formátuma:
function checkRoomAvailability({
checkin_date,
checkout_date,
room_type = 'standard' }) {
# ide jön a függvény logikája
}
A fent megjelölt hagyományos módon elkészült függvények még local szerver környezetben futnak le. Ezekhez a függvényekhez készítettem tool definiciót is, ebből bemutatok egyet, a checkRoomAvailability-t.
const tools = [
{
type: "function",
function: {
name: "checkRoomAvailability",
description: "Check room availability for specific dates and room types",
parameters: {
type: "object",
properties: {
checkin_date: {
type: "string",
description: "Check-in date (YYYY-MM-DD)",
},
checkout_date: {
type: "string",
description: "Check-out date (YYYY-MM-DD)",
},
room_type: {
type: "string",
description: "Type of room (standard, deluxe, suite)",
},
guests: { type: "number", description: "Number of guests" },
},
required: ["checkin_date", "checkout_date"],
},
},
},
...
]
Bármilyen függvény a hozzá tartozó tool definicióval felhasználó AI-hoz előkészített kéréshez. A kérdés már csak az mire szeretnénk használni ezeket. Tovább haladva bemutatom, hogyan néz ki az applikáció szerkezeti felépítése.
A technológiai háttér
A funkciók most már ismertek. Így nézne ki a megvalósítás a monolitikus megközelítéssel:

1. Frontend – React + Web Speech API
Készítettünk egy letisztult, React alapú UI-t, ami lehetővé teszi a hangfelvételt és a visszajátszást. A böngészőben fut egy Web Speech API, ami elvégzi a hangrögzítést és a szintetizálást.

2. Backend – Express
Az Express egy gyors és rugalmas Node.js keretrendszer, ami ideális REST API-k vagy webszerverek készítésére. Ez a választás ideális volt a parancsok fogadására, az AI-hoz való csatlakozáshoz, valamint az eszközök kezeléséhez és integrálásához.
3. AI - OpenAI API - (Chat Completions API)
Az AI kommunikációhoz az OpenAI Chat Completions API-t használtuk, ami egy programozási interfész, ezzel a fejlesztők chat-alapú interakciókat küldhetnek a kijelölt modellnek. Az alábbi paramétereket használtam:
- model: pld. gpt-4.1-nano (lásd egyéb elérhető OpenAI modellek)
- tools: pld. függvények (lásd egyéb elérhető OpenAI tool-ok)
- kontextus: pld. “Ön egy professzionális szállodai recepciós mesterséges intelligencia asszisztens a budapesti XYZ Hotelben”
- szerepkörök: pld. felhasználó és rendszer.
- input: “Van szabad szállás 2025 Június 17-n, két személyre deluxe csomagra?”
Így néz ki az összeállított OpenAI chat completions API-hívás:
const completion = await openai.chat.completions.create({
model: 'gpt-4.1-nano',
messages,
tools,
tool_choice: 'auto',
temperature: 0.7,
max_tokens: 100,
});
A fent összeállított kérés elküldésre került és válaszolt az AI. Az OpenAI API log-ban közben ez olvasható ki:

A képen látható, hogy az AI felismerte a checkRoomAvailability függvényt.
Az AI visszaküldi a választ paramétereket is megjelölve (arguments), majd várja a visszacsatolást a megjelölt függvénytől.
A local backend szerveren lefut a checkRoomAvailability függvény, levéve a terhet az OpenAI API-ról, majd a válasz visszaküldére kerül az AI-nak. Lásd alábbi kódrészlet ahol az AI által küldött függvény neve társul a local függvénnyel és megvárja a választ:
switch (functionName) {
case "checkRoomAvailability":
functionResult = checkRoomAvailability(args);
break;
...
}
toolMessages.push({
role: "tool",
tool_call_id: toolCall.id,
content: JSON.stringify(functionResult),
});
A local függvény az alábbiakat válaszolta (ez Tool néven jelenik meg a log-ban):

Az AI a függvény válaszát átalakította szöveggé és válaszul megküldte a kérésünkre. Így néz ki a végeredmény a UI felületen! Tádám.. :)

A bemutatott példán keresztül láthatjuk, hogy miként lehet hangalapú kérdéseket és feladatokat adni AI-nak, függvényeket használva.
Nézzük meg, hogyan nézne ki ez AWS-ben.
Architektúra – AWS alapú megvalósítás (MCP nélkül)
Az AWS felépítéshez a korábbi állapothoz képest még hozzáadtam az autentikáció-t és a session kezelés-t is:
- Frontend: S3 + Cloudfront
- Autentikáció (+validáció) és session kezelés: Cognito + DynamoDB (Session Store)
- Később bővíthető API: Rest API Gateway
- Backend:
- egy Router Lambda + egy DynamoDB (Session Store)
- több tool Lambda + egy DynamoDB (Database)
- AI: a router lambda meghívja az OpenAI API-t.

Itt a lambdák bevezetésével a válasz idő megnőtt, viszont már skálázható lett a rendszer! Az OpenAI alternatívájaként lehetne használni az AWS Bedrock API-t is, viszont a magyar nyelv támogatása jelenleg elég korlátos. A Bedrock modell listáján az OpenAI modellek nem szerepelnek, viszont számos más modell megtalálható. Az alábbi képen látható, milyen AWS szolgáltatásokkal lehetne a meglévő funkciókat kiváltani:

A példa foglalási AI asszisztens teljesen kiépíthető kizárólag csak AWS szolgáltatásokkal, amennyiben csak angolul akarjuk használni az eszközöket.
És akkor jöjjön a várva várt MCP!
Ha szeretnél egy rövid gyorstalpalót azzal kapcsolatosan, hogy mit jelent az LLM, FM, LM, DL, vagy mik azok a modelltípusok? javaslom olvasd el ezt először: AI alapfogalmak
Mi az MCP?
Az MCP (Model Context Protocol) egy új ipari szabvány 2025-ben, amely lehetővé teszi, hogy a különböző LLM-ek és alkalmazások környezetfüggő információkat (pl. felhasználói kontextus, rendszerparaméterek, jogosultságok) szabványos módon kapjanak meg. Íme egy kép mi mindent foglal magába:

Az MCP előtt ..
Az MCP bevezetése előtt, ha egy szolgáltató eszközeihez, adataihoz szerettünk volna csatlakozni (pld: Google, Slack, Gmail, WeatherAPI etc..), akkor külön kapcsolodási mintázatokat kellett nekünk implementálni. Ez kihívás volt az érintett szereplőknek, mert minden kapcsolatot külön-külön ismerni és követni kellett!

Az MCP megjelenése után ..
Egységessé vált a kommunikációs mintázat, így mostmár a rendszerek egy nyelvet tudnak beszélni. Az MCP itt egy új rétegként jelenik meg, mint egy egységes fordító. Az MCP például segíteni tud abban, hogy a modell tudja: éppen egy naptáralkalmazással beszél, vagy egy emailt kell megírnia – ez jelentősen javítja a válaszok relevanciáját és pontosságát.

Jelenleg csak egy AI alapú szolgáltatás van a példa alkalmazásunkban, így az MCP-nek nincs nagy jelentősége, viszont már most megéri bevezetni, mert így lehetőséget biztosít, hogy később könnyedén bővíteni lehessen a kiépült architektúránkat!
Jelenlegi problémák (fájdalom pontok) MCP nélkül:
- Monolitikus Router Lambda: Minden AI kérés egy központi lambdán keresztül megy.
- Közvetlen OpenAI API hívás: Nincs egységes interfész különböző AI szolgáltatásokhoz.
- Korlátozott eszközhozzáférés: A Tool Lambda-k izoláltan működnek.
- Nehézkes bővíthetőség: Új funkciók hozzáadása komplex.
Megvizsgálva a MCP előnyeit, a jelenlegi AWS architektúrámat több helyen is át tudtam alakítani!
Architektúra – MCP-vel, AWS környezetben
- Probléma: OpenAI lambda function calling kaotikus és nem biztonságos, új funkciók, más szolgáltatások bevezetése időigényes.
- Megoldás: Bevezetni a Model Context Protocol-t
- Eredmény:
- 3 külön Lambda: 1 MCP Client + 2 MCP Server
- JSON-RPC kommunikáció közöttük
- Biztonságos tool isolation
- Skálázható architektúra

Sima Function Calling vs. MCP:
Aspektus | Sima Function Calling | MCP |
---|---|---|
Biztonság | Az AI-t közvetlenül hívja | Protokoll szintű izoláció |
Skálázás | Monolitikus | Külön skálázható szerverek |
Standard | OpenAI specifikus | Univerzális protokoll |
Hibakezelés | Manuális | Beépített MCP szabványok |
Előnyök az MCP bevezetése után
- Egységes interfész: Minden tool ugyanazon protokollon keresztül müködik
- Validáció: Automatikus argument ellenőrzés bevezetése került
- Error handling: Strukturált hibakezelés bevezetésre került
- Extensibility: Új tools egyszerűen hozzáadható
- Monitoring: Centralizált tool hívás naplózható
A fenti előnyöket megismerve, kipróbáltam valóban ennyire jó ez az új protokoll? A válaszom IGEN! Sikerült pár apró modosítással egy teljesen különálló harmadik WeatherAPI MCP szervert hozzáadnom a meglévő architektúrához! Nézd csak:

Mostmár foglaláskor még az időjárásra is rákérdezhetünk (a használt API csak Amerika területére vonatkozóan tud adatokat szolgálni), nyilván ezt csak a példa kedvéért tettem be:
Question: What is the current weather at Hampton Beach?
App Answer: The current temperature at Hampton Beach is 22°C.
Itt megtalálható az AWS hivatalos MCP szerver listája: link.
Az MCP integrációja hol tart?

- Claude jelenleg is a legjobb MCP-támogatást nyújtja.
- A ChatGPT is már hozzáadta az MCP-csatlakozókat, ez működik a csevegés közbeni keresés vagy a mélyreható kutatási mód során (Plus csomaggal). Most már képes a ChatGPT is olvasni és elemezni az eszközeid adatait, de nem tud semmit létrehozni, szerkeszteni vagy elküldeni még.
- Ami a Geminit illeti, a jelenlegi MCP-támogatás csak a Google Gemini API használatán keresztül érhető el, a saját SDK-jukon belül.
- A Windsurf és a Cursor esetében, hasonló módon mint a Claude-nál az eszközök folyamatosan elérhetővé válnak.
Várhatóan az AI-cégek egyre több támogatást fognak kiadni az MCP-hez, ez csak idő kérdése! Érdemes követni őket!
Mivel érdemes számolni, ha hasonló projeknek fognál neki?
ASR nehézségek: Amikor egy számot és betűt tartalmazó azonosítót kell bediktálni nem mindig sikerült ez zökkenő mentesen, ez a kérés elküldésekor félreértésekhez vezetett.
Autentikáció: session és jogosultság integrációja Cognitóval nem triviális.
AI improvizál: ha nem mondasz pontos dátumot, improvizál – alapértelmezett dátum ajánlott.
Optimalizálás: minden file újraolvasása elkerülhető cache-sel, ami többlet költség de még mindig olcsóbb mint állandóan újra betölteni az adatokat a kontextusba.
TTS korlát: magyar nyelvű hangfelolvasás csak fizetős opcióval érhető el.
Limitációk: bár a megjelölt architektúra működik lambdával, viszont ha az MCP cliens vagy a szerver mérete megnő számolni szükséges EC2 példányok bevezetésével is.
Kategóriák Lambda limitációk Runtime Max 15 perc Memory 10 GB-t ig CPU egészen 6 vCPU-ig Storage 512 MB ephemeral /tmp
Concurrency Jól skálázódik, de van hideg indulás Lambda-Cold-Start: az első kérés megválaszolása több mint 3 másodpercet is igénybe vehet. Itt még van lehetőség fejlődésre!
Összegzés
A bemutatott foglalási AI asszisztens példája jól szemlélteti, hogyan lehet ma egy hang-vezérelt, valós funkciókat ellátó mesterséges intelligencia rendszert építeni – akár már pár napos fejlesztéssel is. Az egyszerű monolit architektúrától eljutottunk egy jól skálázható, AWS-alapú, MCP-kompatibilis rendszerig, amely már nemcsak beszédet ért és generál, hanem valódi üzleti logikát is képes kiszolgálni és bővíthető!
A legfontosabb tanulságok:
Az AI megfelelő kontextussal és jól definiált funkciókkal (tools) már nemcsak válaszol, de aktívan részt vesz a munkavégzésben.
Az AWS és OpenAI integrációja lehetővé teszi az éles környezetbe való átültetést, de a rendszer skálázása és biztonságos működtetése komoly tervezést igényel.
Az MCP egy új szintre emeli a többmodulos AI alkalmazásokat, és megnyitja az utat az interoperábilis, moduláris jövő felé.
Ez csak a kezdet. A jövőben olyan AI-asszisztensek jöhetnek létre, amelyek nem csupán egy szállodában dolgoznak, hanem egész ökoszisztémákat szolgálnak ki – kontextusban gondolkodnak, tanulnak, reagálnak és együttműködnek más rendszerekkel.
Ha ma elkezded építeni, holnap már ott lehet a saját iparágadban is.
A bemutatott példán túl számos más formában is kialakítható az MCP Cliens és az MCP szerver. Ha kíváncsi vagy milyen további lehetőségek vannak, javaslom kezd itt.
Kíváncsi vagy mire használható még a MCP? Ugrás az Ötletekhez
Alapfogalmak az AI modellekkel kapcsolatosan
1. Milyen halmazok vannak AI (Mesterséges Intelligencia)-n belül?
Az AI-on belül érdemes három meghatározó halmazt megnevezni: a gépi tanulás, a mély-tanulás és a generatív AI.

A különbségek röviden:
Machine Learning (ML) – Gépi tanulás: A gépi tanulás az a mesterséges intelligencia (AI) területe, amely lehetővé teszi a gépek számára, hogy adatok alapján tanuljanak és döntéseket hozzanak anélkül, hogy kifejezetten programoznánk őket.
Deep Learning (DL) – Mély-tanulás: A deep learning a gépi tanulás egyik speciális ága, amely többrétegű (ún. neurális hálózatokon alapuló) modelleket használ, hogy komplex mintákat ismerjen fel nagy mennyiségű adatban.
Generative AI – Generatív mesterséges intelligencia: A generatív AI olyan modelleket takar, amelyek új tartalmat képesek előállítani (szöveg, kép, zene, videó stb.) a meglévő tanulási minták alapján. A hétköznapokban legelterjedtebb ez a típus. Példák:
ChatGPT – Új szövegeket generál kérdések vagy parancsok alapján.
DALL·E – Képek generálása szöveges leírásból.
2. Mik a Foundation Modellek (Alapmodellek) ?
Olyan nagyméretű gépi tanulási modellek, amelyeket hatalmas mennyiségű adaton képeztek ki, és általános célra használhatók. Ezek az alapok lehetnek alapjai sokféle feladatnak – például szövegalkotás, beszédfelismerés vagy képelemzés –, és utólag finomhangolhatók specifikus feladatokra.
3. Mik a finomhangolt vagy specializált modellek?
Azok, amiket egy alapmodellből kiindulva egy speciális feladatra szabtak (pl. Codex a kód generálásra, GPT-4 multimodális funkciókkal).
4. Mik a kísérleti modellek vagy új generációk?
pl. Sora, ami egy multimodális videó generáló AI, de még nem annyira általános vagy széles körben elterjedt.
5. Mit jelent az Large Language Modell (LLM)?
A Large Language Modell egy mesterséges intelligencia-alapú modell, amelyet nagy mennyiségű szöveges adat alapján tanítanak meg a természetes nyelv megértésére és generálására, statisztikai mintázatok felismerésével. Mi ezt fogjuk használni a cikkben bemutatott példában!
6. Milyen modelltípusok vannak és melyik alapmodellhez tartoznak?
Modell típus | Alapmodell vagy specializált? | Magyarázat |
---|---|---|
Szöveggenerálás (GPT-4, GPT-4o, o4-mini) | Foundation modell | Nagy nyelvi modellek, általános célú nyelvi képességekkel. |
Hang → Szöveg (Whisper, Whisper V3) | Foundation modell | Nagy, általános beszédfelismerő modell, sokféle hanganyagon tanítva. |
Szöveg → Hang (TTS-1, GPT-4o audio) | Többnyire speciális generatív modell vagy finomhangolt alapmodell | Speciális generatív modellek beszédszintézishez, lehet alapmodell vagy kisebb specializált modell. |
Kép → Szöveg (GPT-4o, CLIP) | Alapmodell (CLIP), finomhangolt modell (GPT-4o) | CLIP egy alapvető multimodális modell; GPT-4o multimodális képességekkel finomhangolt. |
Szöveg → Kép (DALL·E 3) | Foundation modell | Nagy generatív alapmodell képgenerálásra. |
Szöveg → Videó (Sora) | Kísérleti, előzetes multimodális alapmodell | Egyelőre kevésbé kiforrott, de alapmodell jellegű, multimodális generatív AI. |
Kódgenerálás (Codex, GPT-4) | Foundation modell vagy finomhangolt LLM | Codex a GPT speciális finomhangolása programkódra, GPT-4 általános, nagy nyelvi modell. |
7. Mik azok a Datasetek?
Az AI modellek tanításához használt adathalmazok. Ezek lehetnek nyílt szöveges korpuszok, hangfelvételek, képek vagy bármilyen strukturált adat. A modellek pontossága, rugalmassága és megbízhatósága nagymértékben függ a datasetek méretétől és minőségétől. Ugrás az MCP részhez
Ime néhány ötlet, hogy az MCP hol hasznosítható!
A szálláshelyfoglaláson és az ügyfélszolgálati lehetőségeken túl, számtalan területen alkalmazhatóak még ezek az új funkciók:
- Ügyfélkezelés és CRM: “Hozd fel Kovács János ügyfél adatait, az utolsó megbeszélésünk jegyzeteit, és emlékeztetőt állíts be a jövő heti követésre.” Az app a CRM rendszerből lekéri az információkat és automatikusan frissíti az ügyfél státuszát.
- Projektmenedzsment: “Milyen feladatok vannak késésben a marketing projektnél, és küldd el a státusz jelentést a csapatnak.” Integrálódik a Trello/Asana-val, elemzi a határidőket és automatikusan generál jelentéseket.
- Számlalogisztika: “Készítsd el a számlát a XY Kft-nek a múlt heti munkáért, és küldd el nekik emailben.” Az app a munkaórák alapján generál számlát, PDF-et készít és elküld az ügyfélnek.
- Értékesítési folyamat: “Ellenőrizd a mai ajánlatokat, frissítsd az eladási pipeline-t, és emlékeztetőt állíts be a holnapi follow-up hívásokra.” Összeköti a CRM-et a naptárral és automatizálja a sales folyamatokat.
- Raktárkezelés: “Mennyire áll a készlet, rendeljek-e új alapanyagot, és küldd el a beszállítónak a megrendelést.” Real-time készletadatok alapján automatikusan kezel beszerzési folyamatokat.
- HR és munkaidő nyilvántartás: “Rögzítsd a mai 8 órát a X projektre, küldd el a heti timesheet-et, és ellenőrizd a csapat szabadságkérelmeit.” Integrálódik az HR rendszerekkel és automatizálja a adminisztrációt.
- Pénzügyi elemzés: “Mutasd a havi bevételt kategóriánként, hasonlítsd össze a tavalyi adatokkal, és készíts Excel riportot.” Könyvelési szoftverekkel kapcsolódik és dinamikus jelentéseket készít.
- Ügyfélszolgálat: “Van új support ticket? Kategorizáld fontosság szerint és válaszolj az egyszerű kérdésekre automatikusan.” AI-alapú ticket routing és automatikus válaszgenerálás.
- Marketing kampányok: “Indítsd el a Facebook hirdetést az új termékre, kövesd a teljesítményt, és állítsd be a költségvetés riasztásokat.” Közösségi média API-kkal dolgozik és optimalizálja a kampányokat.
- Meetingek és ütemezés: “Foglalj meetinget a befektetőkkel jövő hétre, küldd el az agenda-t, és készítsd elő a pitch deck-et a legfrissebb adatokkal.” Naptár integrációval, dokumentum automatizálással és prezentáció frissítéssel.
Köszönjük, hogy elolvastad ezt a cikket!
Érdekel a téma? Szeretnél saját MCP szervert, vagy kérdés merült fel a cikkel kapcsolatosan? Foglalj egy ingyenes konzultációt és nézzük meg, hogy a Code Factory csapata miben tud segíteni neked / nektek! A szolgáltatásaink listáját itt találod meg!