Model Context Protocol (MCP) AI tətbiqləri ilə xarici alətlər və data mənbələri arasında standart əlaqə yaratmaq üçün açıq bir protokoldur. Bunu AI üçün USB-C portu kimi düşünmək olar — bir dəfə standarta uyğun yazılan kod, fərqli AI modelləri və alətlər arasında problemsiz işləyir.
Yeni bir nümunə layihədə Spring AI, Google Gemini və MCP birlikdə istifadə edilərək hava haqqında suallara real mənbələrdən cavab verən bir chat tətbiqi qurulub. Sistem üç əsas hissədən ibarətdir: MCP tool serveri (Spring Boot — hava və geocoding alətlərini təqdim edir), AI agenti (Spring AI + Gemini ilə işləyir və lazım olduqda MCP alətlərini çağırır) və React chat interfeysi.
Alətlər sadəcə Spring bean metodlarıdır
Spring AI ilə bir aləti tool'a çevirmək üçün sadəcə bir Spring bean metoduna @McpTool annotasiyası əlavə etmək kifayətdir. Məsələn, hava məlumatı aləti get_current_weather adı ilə təyin olunur və DWD stansiya ID-si və ya en/boy koordinatlarını qəbul edir. Eyni şəkildə, şəhər adını koordinatlara çevirən geocode_city aləti də mövcuddur.
Hər iki alət arxa planda xarici API-lərə müraciət edir: hava üçün Bright Sky, geocoding üçün OpenStreetMap Nominatim istifadə olunur. Cavablar keşlənir və strukturlaşdırılmış formada qaytarılır — uğur statusu, xəta kodu və xəta mesajı ilə birlikdə.
Agent: nə vaxt alət çağıracağını qərar verir
AI agenti hər bir istifadəçi mesajını təhlil edir. Əgər mesajda "hava" kimi açar sözlər varsa, agent alət dəstəkli rejimə keçir və Gemini modelini MCP serverinə yönləndirir. Əks halda, sadə söhbət davam edir. Bu yanaşma agentin MCP serveri offline olsa belə işə düşməsinə imkan verir — alət dəstəyi yalnız lazım olduqda aktivləşir.
Söhbət tarixçəsi yaddaşda LRU keşində saxlanılır (hər sessiyada 20 tur, ümumən 500 sessiya). Virtual thread ilə model çağırışına vaxt məhdudiyyəti qoyulur ki, Gemini gecikərsə, sorğu sonsuz gözləməsin.
İşə salmaq üçün sadəcə üç addım
Layihəni işə salmaq üçün əvvəlcə GEMINI_API_KEY və MCP_API_KEY mühit dəyişənlərini təyin etmək, sonra MCP serverini, ardınca agenti və nəhayət React UI-nı başlatmaq kifayətdir. İstifadəçi "Berlin'də hava necədir?" yazdıqda, agent geocode_city aləti ilə koordinatları tapır, sonra get_current_weather ilə məlumatı çəkir və Gemini nəticəyi təbii dillə qaytarır.
Mənbə kod GitHub'da açıq şəkildə yerləşdirilib. Gələcəkdə Docker Compose, PostgreSQL, OAuth2 və WebSocket dəstəyi kimi genişləndirmələr planlaşdırılır. Layihə MCP və Spring AI ilə işə başlamaq üçün möhkəm bir təməl təklif edir.
Mənbə: Dev.to (https://dev.to/ykpraveen/building-an-ai-chat-agent-with-mcp-spring-ai-f0n)


