Protocolul MCP reprezintă unul dintre cele mai importante puncte de cotitură în evoluția inteligenței artificiale, deoarece introduce un standard care permite aplicațiilor de tip LLM să se conecteze într-un mod unitar și eficient la diverse unelte și surse de date externe. Prin implementarea acestui protocol se elimină eforturile suplimentare de mentenanță și se oferă o arhitectură clară pentru integrarea dintre modelele LLM și servicii externe. Nevoia de a crea un astfel de protocol a apărut odată cu extinderea capabilităților LLM-urilor, care au evoluat de la sisteme capabile doar să genereze text sau imagini la aplicații ce pot efectua diverse sarcini și pot interacționa cu resurse externe. În acest articol se va prezenta succint contextul care a dus la apariția acestui protocol, analizând evoluția modelelor LLM, momentele cheie din dezvoltarea lor și modul în care protocolul MCP răspunde provocărilor identificate de-a lungul acestei evoluții.
Un eveniment important în evoluția inteligenței artificiale și a modului în care aceasta ne-a schimbat viețile este, fără îndoială, lansarea ChatGPT de către cei de la OpenAI în anul 2022, fiind bazat pe modelul LLM GPT-3.5, care a fost generat folosind 175 de miliarde de date. Acesta a fost considerat un adevărat punct de cotitură, deoarece le-a permis utilizatorilor posibilitatea ca prin intermediul NLP să pună întrebări acestuia, apoi să obțină răspunsuri. Prima limitare care a fost în cadrul acestei etape a fost aceea că toate răspunsurile folosite de ChatGPT proveneau din datele cu care acesta a fost antrenat.
Dar și această problemă a fost rezolvată prin lansarea GPT-4 în anul 2023, care pe lângă îmbunătățirea calității răspunsurilor text oferite, mai oferea posibilitatea de a primi informație multimodal (text, imagini, voce, video) sau de a genera astfel de date ca date de ieșire. Un alt aspect care a fost adăugat a fost reprezentat de posibilitatea de a căuta răspunsuri și resurse de pe internet, folosind diverse motoare de căutare.
Putem observa faptul că toate aceste îmbunătățiri ale inteligenței artificiale se bazează pe formularea unor întrebări și primirea unor răspunsuri de tip text, sub forma unei imagini sau a unui document, dar nu rezolvă propriu-zis problemele, cu alte cuvinte nu întreprind nici o acțiune. Spre exemplu, dacă folosim inteligența artificială pentru a planifica concedii, ea doar ne oferă idei și sugestii, dar nu poate face rezervări la hotel în locul nostru, nu poate oferi recenzii despre anumite hoteluri, restaurante sau obiective turistice. De asemenea, dacă folosim inteligența artificială pentru a rezolva sarcini din programare, nu putem de exemplu, să o folosim pentru a face queries într-o bază de date, pentru a manipula repos pe git sau alte situații similare.
Tocmai de aceea a apărut un nou concept în domeniul inteligenței artificiale, numit AI agent, care reprezintă sisteme software concepute folosind LLM pentru a efectua diverse sarcini de automatizare în numele unui anumit utilizator, folosind unelte externe sau calluri de API. Un aspect important de menționat când vine vorba de AI agents este acela că ele au capacitatea de a lua decizii pe cont propriu, pe baza experienței lor, a modului în care au fost antrenate.
Pentru ca un agent AI să poată folosi o unealtă externă, între cele două entități trebuie să existe o conexiune, care necesită diferiți parametri, configurări și nu în ultimul rând mentenanță. După cum putem anticipa, fiecare unealtă pe care dorim să o conectăm la un agent AI are propria implementare, propriile caracteristici și metode de conectare. Pentru una sau două conexiuni, sarcina nu este atât de grea, dar problema se pune în momentul în care dorim să conectăm un AI agent la mai multe resurse externe, principalele probleme care reies din acest fapt fiind:
Configurațiile specifice fiecărei unelte externe;
Inconsistența care apare între metodele de implementare ale fiecărei resurse externe;
"Problema N*M", care se traduce prin faptul că un client care trebuie să interacționeze cu un număr mare de servere și unelte, are nevoie de un număr ridicat de conexiuni, fiecare având propriul mod de conectare;
Astfel s-a constatat că este nevoie de apariția unui protocol standard, prin care agenții AI să se conecteze la resurse externe. Acest lucru a dus la apariția protocolului MCP, care rezolvă toate aceste probleme menționate anterior.
Protocolul MCP (Model Context Protocol) a fost dezvoltat de către cei de la Antrophic în noiembrie 2024. El reprezintă un standard open-source care facilitează modul în care agenții AI se conectează la surse externe în numele utilizatorului, pentru a putea executa diverse sarcini în numele acestuia.
Protocolul MCP se bazează pe o arhitectură de tip client-server, care se realizează între aplicația LLM și serverul extern care expune către aplicațiile LLM (agenții AI) funcționalitățile disponibile. În cadrul acestei arhitecturi se regăsesc trei actori importanți: host, client și server, fiecare dintre ei urmând a fi explicate mai jos.
MCP Host. Reprezintă aplicația LLM sau agentul AI, care se conectează la un server extern (exemplu: poate fi o aplicație Claude Code, Claude Desktop, un code assistant).
MCP Client. Se regăsește în cadrul unui MCP Host, având rolul de a menține o conexiune între MCP Host și MCP Server. Este important să menționăm faptul că între un MCP Client și un MCP Server este o relație de tip 1:1, ceea ce înseamnă că dacă un MCP Host se va conecta la mai multe instanțe de MCP Server, atunci pentru fiecare conexiune un MCP Host va crea un MCP Client, care va fi responsabil de gestionarea conexiunii respective. De asemenea, clientul invocă protocolul MCP pentru a avea acces la funcționalitățile pe care serverul le oferă.
MCP server tools pot fi privite ca funcții executabile, pe care aplicațiile LLM le pot executa pentru a realiza diverse operațiuni (Exemple: API calls, operații pe fișiere, database queries, funcții care pot executa diverse operațiuni).
MCP server resources. Reprezintă surse de date care oferă diverse date aplicațiilor LLM și sunt doar read-only (exemple: documentații, fișiere de configurare etc.)
MCP server prompts. Reprezintă structuri de templates, care sunt reutilizabile și pot fi adaptate în funcție de context (exemplu: generare de tichete, creare buguri etc.)
Buna funcționare a protocolului MCP este asigurată prin existența a două layere esențiale, fiecare având roluri și caracteristici distincte: Transport layer și Data layer.
Transport layer definește mecanismele și canalele de comunicare care permit schimbul de date între client și server. Acesta oferă două metode principale de transport: stdio și streamable HTTP transport. Mecanismul stdio utilizează fluxurile standard de intrare și ieșire, fiind potrivit pentru scenariile locale, în care MCP Server și MCP Client rulează pe aceeași mașină sau în același proces. În schimb, streamable HTTP transport facilitează conectarea la distanță între un MCP Client și un MCP Server, folosind metode standard de autentificare HTTP, cum ar fi tokenuri bearer, chei API sau headere personalizate, oferind astfel o soluție scalabilă și sigură pentru comunicații distribuite.
Data layer reprezintă componenta logică a protocolului MCP și este responsabil de structura, formatul și consistența schimbului de informații între client și server. Acest layer
implementează protocolul JSON-RPC 2.0, care asigură un mod standardizat, eficient și ușor de extins pentru transmiterea comenzilor și răspunsurilor. Prin intermediul acestui layer, mesajele sunt organizate sub formă de obiecte JSON, ceea ce facilitează interoperabilitatea între diferite limbaje de programare și medii de execuție. Data layer gestionează totodată tipurile de mesaje - cum ar fi cereri, răspunsuri și notificări - și se ocupă de validarea, rutarea și interpretarea corectă a acestora. În plus, acest strat oferă o separare clară între logica de comunicare (asigurată de transport layer) și logica de date, permițând astfel o arhitectură modulară, extensibilă și ușor de întreținut în cadrul protocolului MCP.
Putem afirma fără nici un dubiu faptul că protocolul MCP ne va schimba modul în care vom folosi inteligența artificială de acum înainte, făcându-ne viața mai simplă, dar trebuie să fim conștienți de anumite limitări și provocări pe care acest concept le are.
Prima limitare pe care acest concept o are este aceea că, datorită creșterii în popularitate pe care a avut-o într-o perioadă foarte scurtă de timp, mulți dintre furnizorii de servere MCP nu au reușit să asigure o mentenanță eficientă acestora, acest lucru ducând la apariția multor buguri sau deficiențe de funcționare, adică la funcționarea deficitară a unui astfel de server.
A doua limitare pe care o putem întâlni este reprezentată de faptul că mulți dintre furnizorii de servere MCP nu oferă suficiente clarificări cu privire la funcționalitățile pe care le oferă. Astfel, aplicațiile LLM care folosesc protocolul MCP pentru a furniza funcționalitățile acestor servere vor oferi rezultate incorecte, iar utilizatorul final va trebui să descopere care sunt cauzele care generează aceste probleme.
Un alt aspect foarte important pe care trebuie să îl luăm în considerare este reprezentat de partea de securitate. Putem anticipa faptul că, datorită creșterii importanței pe care acest concept o are, foarte mulți hackeri pot crea propriile servere de MCP, cu scopuri precum furtul unor date importante, inserarea de scripturi malițioase sau chiar atacuri de tip ransomware. De asemenea, trebuie să luăm în considerare faptul că tot mai mulți hackeri vor încerca să execute atacuri asupra serverelor de tip MCP sau chiar asupra protocolului.
Nu în ultimul rând, când ne gândim la protocolul MCP, trebuie să ne gândim la modul în care acesta va fi integrat în proiectele pe care lucrăm, ținând cont de politicile de compliance și securitate ale firmei sau clienților pentru care lucrăm. Acest lucru se traduce prin studierea tuturor acestor aspecte, prin dialog și alegerea celor mai bune soluții.
Într-o lume în care inteligența artificială devine tot mai prezentă în viața noastră, este esențial să înțelegem rolul său și modul în care poate fi utilizată responsabil. Protocolul MCP reprezintă un pas important către o integrare sigură, transparentă și etică a tehnologiilor bazate pe AI. Pentru a valorifica pe deplin potențialul său, trebuie să ne dezvoltăm gândirea critică și capacitatea de a pune întrebări corecte, astfel încât să putem filtra și interpreta corect informațiile generate de sisteme inteligente. În același timp, nu trebuie să uităm că relațiile interumane rămân fundamentale, iar încrederea deplină în răspunsurile oferite de AI trebuie înlocuită cu o abordare echilibrată, bazată pe verificare și discernământ. Implementarea cu atenție a măsurilor de securitate, conformitate și etică, precum și asigurarea transparenței în utilizarea AI sunt elemente-cheie pentru ca protocolul MCP să contribuie la construirea unui ecosistem digital sigur și de încredere.