Model Context Protocol: Nowa Era AI

Rewolucja związana z pojawieniem się Dużych Modeli Językowych (LLM) niezaprzeczalnie odmieniła krajobraz sztucznej inteligencji. Niemniej jednak, wciąż istnieje jedno istotne wyzwanie: efektywne integrowanie tych modeli z danymi zastrzeżonymi. Chociaż LLM są biegłe w przetwarzaniu ogromnych ilości informacji pochodzących z Internetu, ich prawdziwy potencjał tkwi w pełnieniu roli interfejsów w języku naturalnym dla naszych aplikacji i danych, co pozwala nam wykorzystywać ich zdolności predykcyjne i generatywne w kontrolowanym środowisku.

Aby zapewnić wiarygodność i adekwatność wyników LLM, pojawiły się różne strategie, z których każda ma na celu zniwelowanie luki między tymi modelami a konkretnymi zbiorami danych. Strategie te obejmują tworzenie niestandardowych osadzeń (embeddings) i wykorzystywanie technik generowania rozszerzonego o wyszukiwanie (RAG) – wykorzystywanie grafowych baz danych do odkrywania złożonych relacji w danych – po wykorzystywanie LLM do destylowania i prezentowania danych uzyskanych za pomocą wywołań OpenAPI uruchamianych przez monity użytkownika. Ponadto model wtyczek spopularyzowany przez ChatGPT OpenAI oferuje kolejną drogę integracji danych. Wśród tych różnorodnych podejść Protokół Kontekstu Modelu (MCP) wyróżnia się jako obiecujące rozwiązanie do standaryzacji połączenia między LLM a zewnętrznymi źródłami danych.

Odkrywanie Protokółu Kontekstu Modelu

Protokół Kontekstu Modelu, zaprezentowany przez Anthropic pod koniec 2024 roku, stanowi znaczący krok w kierunku usprawnienia interakcji między LLM a danymi specyficznymi dla użytkownika. Protokół ten podkreśla krytyczną rolę kontekstu w aplikacjach AI, uznając, że zdolność AI do dostarczania spójnych i znaczących wyników zależy od dostępności odpowiednich informacji kontekstowych. Poleganie wyłącznie na monitach czatu w celu uzyskania rozsądnych odpowiedzi jest, w najlepszym przypadku, ćwiczeniem z optymizmu, a w najgorszym – przepisem na niedokładne lub wprowadzające w błąd wyniki. Aby zbudować solidne, półautonomiczne agenty zdolne do organizowania przepływów pracy wokół naszych danych, niezbędny jest niezawodny mechanizm dostarczania tych danych do tych agentów.

Jako inicjatywa open-source, MCP zapewnia implementacje SDK dla szerokiej gamy języków programowania, wraz z obszerną dokumentacją w swoim repozytorium GitHub. Dokumentacja ta umożliwia programistom efektywne wdrażanie lub wykorzystywanie serwerów MCP. Opis projektu MCP jako ‘portu USB-C dla aplikacji AI’ trafnie oddaje jego istotę, podkreślając jego zdolność do standaryzacji połączeń z różnymi źródłami danych. Zbudowany na ustandaryzowanej podstawie, MCP z łatwością integruje się z istniejącymi projektami, płynnie współpracując z różnymi LLM i dostawcami wnioskowania.

Architektura MCP opiera się na dobrze ugruntowanym modelu klient/serwer, w którym broker przejmuje odpowiedzialność za tłumaczenie żądań MCP na żądania lokalne lub zdalne. Konstrukcja ta odzwierciedla funkcjonalność języków definicji interfejsów, takich jak CORBA, przekształcając MCP w wszechstronną warstwę interoperacyjności, która ułatwia płynne przełączanie między źródłami informacji i aplikacjami LLM. Wykorzystując połączenie JSON RPC, MCP umożliwia precyzyjną kontrolę na poziomie poszczególnych użytkowników za pomocą narzędzi takich jak Azure API Management.

MCP wspiera rozwój generycznych interfejsów dla kodu opartego na sztucznej inteligencji, o czym świadczy jego rosnące wykorzystanie na platformach rozwoju AI firmy Microsoft. Od integracji w narzędziu do orkiestracji modeli Semantic Kernel po wdrożenie jako serwerów MCP kompatybilnych z Azure OpenAI i Azure AI Foundry, MCP szybko zyskuje na popularności. Microsoft ulepsza również Azure API Management o funkcje kontroli dostępu do danych w oparciu o dane uwierzytelniające użytkownika, co dodatkowo umacnia rolę MCP w bezpiecznych i zarządzanych wdrożeniach AI.

Azure MCP Server: Wczesna Implementacja

Otwarty kod źródłowy Azure MCP Server, niedawno udostępniony w publicznej wersji zapoznawczej, stanowi przykład wczesnej implementacji MCP na platformie Microsoft. Serwer ten służy jako wspólny broker dla dostępu AI do kluczowych usług Azure, zgodnie z zasadami open-source przyjętymi przez wiele ostatnich projektów Azure. Jego kod jest łatwo dostępny na GitHub. Azure MCP Server zapewnia dostęp do znacznej części platformy Azure, w tym do baz danych, rozwiązań pamięci masowej i usług takich jak Azure CLI.

Włączenie obsługi Azure CLI (i Developer CLI) jest szczególnie godne uwagi, ponieważ umożliwia agentom opartym na MCP interakcję z platformą Azure bezpośrednio, traktując wywołania MCP jako operatory. Ta zdolność toruje drogę do budowania agentów, które oferują interfejs samoobsługowy w języku naturalnym do platformy Azure. Na przykład, agent mógłby wziąć opis infrastruktury i automatycznie wygenerować szablony ARM wymagane do jej wdrożenia. Rozszerzając tę koncepcję, można sobie wyobrazić agenta multimodalnego, który analizuje szkic na tablicy, wyprowadza opis niezbędnych zasobów, a następnie wdraża infrastrukturę, umożliwiając natychmiastowe tworzenie kodu. Dodatkowe usługi administracji systemem dostępne za pośrednictwem Azure MCP Server obejmują listowanie bieżących grup zasobów i wykorzystywanie KQL do wykonywania zapytań dotyczących dzienników Azure Monitoring.

Integrowanie Azure MCP Server z GitHub Copilot Chat

Ponieważ przestrzega standardu MCP, Azure MCP Server bezproblemowo integruje się z każdym narzędziem AI obsługującym MCP, takim jak GitHub Copilot Agent Mode. Po prostu dodając serwer do swojej dzierżawy, możesz zacząć zadawać pytania za pośrednictwem Copilot, bezpośrednio lub za pośrednictwem integracji z Visual Studio Code. Ta ostatnia opcja stanowi skuteczny sposób na naukę wykorzystywania MCP i konstruowania monitów dla własnych aplikacji AI opartych na MCP.

Obecnie Microsoft nie udostępnił jeszcze dedykowanego narzędzia MCP dla swoich języków programowania, co wymaga użycia oficjalnych zestawów SDK do tworzenia niestandardowego kodu. Dzięki obsłudze TypeScript, C# i Python programiści mają dostęp do narzędzi niezbędnych do tworzenia własnych agentów Azure MCP. Eksperymenty można prowadzić w Visual Studio Code, wykorzystując istniejące poświadczenia Azure.

Serwer działa na Twoim komputerze deweloperskim i wymaga Node.js. Instalacja odbywa się bezpośrednio z repozytorium projektu GitHub do VS Code. Po zainstalowaniu upewnij się, że zarówno rozszerzenia GitHub Copilot, jak i GitHub Copilot Chat są skonfigurowane do używania eksperymentalnego trybu agenta (dostępnego za pośrednictwem narzędzia ustawień VS Code). Następnie otwórz okienko czatu GitHub Copilot i przełącz się do trybu agenta. Sprawdź, czy Azure MCP Server jest zainstalowany w rozwijanej liście narzędzi. Możesz teraz przesyłać zapytania, takie jak ‘Wylistuj moje subskrypcje Azure’.

Wynikające z tego narzędzie okazuje się nieocenione dla każdego, kto pracuje z Azure, i wykracza poza integrację z Copilot. Azure MCP Server można zainstalować wszędzie tam, gdzie obsługiwany jest Node.js, co umożliwia jego integrację z niestandardowymi agentami.

Rola MCP w Azure AI Foundry

Microsoft szybko rozszerza swoje portfolio narzędzi MCP, udostępniając istniejące funkcjonalności za pośrednictwem MCP lub umożliwiając ich wykorzystanie w aplikacjach agentowych. To szybkie wdrażanie obejmuje narzędzia do tworzenia agentów bez kodu Copilot Studio, ogłoszone podczas pisania tego artykułu.

Azure AI Foundry, główna platforma programistyczna firmy Microsoft do tworzenia aplikacji AI na dużą skalę, również aktywnie rozwija serwer MCP, który ma uzupełniać usługę AI Agent Service firmy Azure. Integracja ta ma na celu połączenie agentów działających w Azure AI Foundry z klientami działającymi jako część innych aplikacji AI.

Usługa ta umożliwia szybkie ponowne wykorzystanie istniejącego kodu AI i usług oraz powiązanie ich z nowymi aplikacjami. Usługi takie jak Fabric udostępniają swoje funkcje agenta jako punkty końcowe AI Agent Service, umożliwiając aplikacjom AI bezproblemowe łączenie się z podstawowymi danymi linii biznesowej, zapewniając niezbędne podstawy do ograniczenia ryzyka halucynacji i błędów.

Po zainstalowaniu serwer udostępnia zestaw akcji MCP do łączenia się z agentami i wysyłania do nich zapytań. Może również wyświetlać listę dostępnych agentów lub wykorzystywać domyślnego agenta do określonych zadań. Obsługa wątków konwersacji jest zawarta, zapewniając agentom podstawową pamięć semantyczną dla konwersacji kontekstowych. Będziesz potrzebować identyfikatorów agentów Azure AI Agent Service, aby wywołać je za pomocą MCP.

Serwer jest zaimplementowany w języku Python i można go zainstalować za pomocą Azure CLI za pośrednictwem pip. Alternatywnie, dostępna jest wersja TypeScript dla tych, którzy ją preferują. Podobnie jak Azure MCP Server, serwer ten działa poza środowiskiem AI Foundry, co pozwala na jego zainstalowanie na komputerze deweloperskim lub jako część aplikacji hostowanej w chmurze w swoim własnym kontenerze lub maszynie wirtualnej, z obsługą systemów Windows, macOS i Linux.

Wykorzystywanie Serwerów MCP z Aplikacji AI Semantic Kernel

Jako otwarty standard, MCP umożliwia kompatybilność serwera z dowolnym klientem. Repozytorium GitHub zawiera instrukcje, jak nawiązać połączenie za pomocą Claude Desktop firmy Anthropic, ale prawdziwa wartość tkwi w budowaniu niestandardowych przepływów pracy agentów w Semantic Kernel.

Microsoft udostępnia przykładowy kod demonstrujący, jak zintegrować obsługę MCP z orkiestracją Semantic Kernel, traktując ją jako wtyczkę jądra, która integruje się ze znanymi wywołaniami funkcji. Integracje te można opakować jako agenty i uzyskiwać do nich dostęp w razie potrzeby. Chociaż integracja MCP w Semantic Kernel jest wciąż w fazie rozwoju, bezproblemowo integruje się z istniejącym zestawem funkcji, wymagając minimalnego dodatkowego kodu, aby udostępnić narzędzia MCP z serwera do aplikacji AI.

Narzędzia takie jak MCP są krytycznymi elementami nowoczesnego stosu AI, zapewniając ustandaryzowane podejście do budowania wykrywalnych interfejsów zarówno dla aplikacji lokalnych, jak i zdalnych. Po zdefiniowaniu narzędzia MCP są łatwo wywoływane, a serwer udostępnia listę dostępnych narzędzi, a MCP zapewnia LLM ustandaryzowany sposób wywoływania tych narzędzi i wykorzystywania ich wyników. Takie podejście znacząco przyczynia się do zapewnienia uniwersalnego narzędzia do uzasadniania dla aplikacji AI, współpracującego ze standardowymi interfejsami API, zapytaniami do baz danych i agentami AI.