(Kliknij obrazek powyżej, aby obejrzeć wideo z tej lekcji)
Praktyczne wdrożenie to moment, w którym moc Model Context Protocol (MCP) staje się namacalna. Choć zrozumienie teorii i architektury MCP jest ważne, prawdziwa wartość pojawia się, gdy zastosujesz te koncepcje do budowy, testowania i wdrażania rozwiązań, które rozwiązują rzeczywiste problemy. Ten rozdział łączy wiedzę koncepcyjną z praktycznym rozwojem, prowadząc Cię przez proces tworzenia aplikacji opartych na MCP.
Niezależnie od tego, czy tworzysz inteligentnych asystentów, integrujesz AI z procesami biznesowymi, czy budujesz niestandardowe narzędzia do przetwarzania danych, MCP zapewnia elastyczną podstawę. Jego niezależny od języka projekt oraz oficjalne SDK dla popularnych języków programowania sprawiają, że jest dostępny dla szerokiego grona programistów. Korzystając z tych SDK, możesz szybko prototypować, iterować i skalować swoje rozwiązania na różnych platformach i w różnych środowiskach.
W kolejnych sekcjach znajdziesz praktyczne przykłady, przykładowy kod i strategie wdrażania, które pokazują, jak zaimplementować MCP w C#, Javie z Spring, TypeScript, JavaScript i Pythonie. Dowiesz się również, jak debugować i testować serwery MCP, zarządzać API oraz wdrażać rozwiązania w chmurze za pomocą Azure. Te praktyczne zasoby zostały zaprojektowane, aby przyspieszyć naukę i pomóc Ci pewnie budować solidne aplikacje MCP gotowe do produkcji.
Ta lekcja koncentruje się na praktycznych aspektach wdrażania MCP w różnych językach programowania. Zbadamy, jak korzystać z SDK MCP w C#, Javie z Spring, TypeScript, JavaScript i Pythonie, aby budować solidne aplikacje, debugować i testować serwery MCP oraz tworzyć zasoby, szablony i narzędzia wielokrotnego użytku.
Po zakończeniu tej lekcji będziesz w stanie:
- Wdrażać rozwiązania MCP za pomocą oficjalnych SDK w różnych językach programowania
- Systematycznie debugować i testować serwery MCP
- Tworzyć i używać funkcji serwera (Zasoby, Szablony, Narzędzia)
- Projektować efektywne przepływy pracy MCP dla złożonych zadań
- Optymalizować wdrożenia MCP pod kątem wydajności i niezawodności
Model Context Protocol oferuje oficjalne SDK dla wielu języków:
- C# SDK
- Java z Spring SDK Uwaga: wymaga zależności od Project Reactor. (Zobacz dyskusję w issue 246.)
- TypeScript SDK
- Python SDK
- Kotlin SDK
Ta sekcja zawiera praktyczne przykłady wdrażania MCP w różnych językach programowania. Przykładowy kod znajdziesz w katalogu samples, zorganizowanym według języka.
Repozytorium zawiera przykładowe wdrożenia w następujących językach:
Każdy przykład demonstruje kluczowe koncepcje MCP i wzorce wdrożenia dla danego języka i ekosystemu.
Serwery MCP mogą implementować dowolną kombinację tych funkcji:
Zasoby dostarczają kontekst i dane dla użytkownika lub modelu AI:
- Repozytoria dokumentów
- Bazy wiedzy
- Źródła danych strukturalnych
- Systemy plików
Szablony to wiadomości i przepływy pracy dla użytkowników:
- Predefiniowane szablony rozmów
- Wzorce interakcji prowadzących
- Specjalistyczne struktury dialogowe
Narzędzia to funkcje, które model AI może wykonać:
- Narzędzia do przetwarzania danych
- Integracje zewnętrznych API
- Zdolności obliczeniowe
- Funkcjonalność wyszukiwania
Oficjalne repozytorium SDK C# zawiera kilka przykładów wdrożeń, które pokazują różne aspekty MCP:
- Podstawowy klient MCP: Prosty przykład pokazujący, jak stworzyć klienta MCP i wywołać narzędzia
- Podstawowy serwer MCP: Minimalna implementacja serwera z podstawową rejestracją narzędzi
- Zaawansowany serwer MCP: Serwer o pełnej funkcjonalności z rejestracją narzędzi, uwierzytelnianiem i obsługą błędów
- Integracja z ASP.NET: Przykłady pokazujące integrację z ASP.NET Core
- Wzorce implementacji narzędzi: Różne wzorce implementacji narzędzi o różnym poziomie złożoności
SDK MCP dla C# jest w wersji preview i API mogą ulec zmianie. Będziemy na bieżąco aktualizować ten blog w miarę rozwoju SDK.
Pełne przykłady implementacji w C# znajdziesz w oficjalnym repozytorium przykładów SDK C#
SDK Java z Spring oferuje solidne opcje wdrożenia MCP z funkcjami klasy enterprise.
- Integracja z Spring Framework
- Silne bezpieczeństwo typów
- Obsługa programowania reaktywnego
- Kompleksowa obsługa błędów
Pełny przykład implementacji w Javie z Spring znajdziesz w Java z Spring sample w katalogu przykładów.
SDK JavaScript zapewnia lekkie i elastyczne podejście do wdrożenia MCP.
- Obsługa Node.js i przeglądarek
- API oparte na Promise
- Łatwa integracja z Express i innymi frameworkami
- Obsługa WebSocket dla strumieniowania
Pełny przykład implementacji w JavaScript znajdziesz w JavaScript sample w katalogu przykładów.
SDK Python oferuje podejście zgodne z filozofią Pythona do wdrożenia MCP z doskonałą integracją z frameworkami ML.
- Obsługa async/await z asyncio
- Integracja z FastAPI
- Prosta rejestracja narzędzi
- Natywna integracja z popularnymi bibliotekami ML
Pełny przykład implementacji w Pythonie znajdziesz w Python sample w katalogu przykładów.
Azure API Management to świetne rozwiązanie do zabezpieczenia serwerów MCP. Pomysł polega na umieszczeniu instancji Azure API Management przed serwerem MCP i pozwoleniu jej na obsługę funkcji, które mogą być potrzebne, takich jak:
- ograniczanie liczby żądań
- zarządzanie tokenami
- monitorowanie
- równoważenie obciążenia
- bezpieczeństwo
Oto przykład Azure, który pokazuje, jak stworzyć serwer MCP i zabezpieczyć go za pomocą Azure API Management.
Zobacz, jak wygląda przepływ autoryzacji na poniższym obrazku:
Na powyższym obrazku dzieje się następujące:
- Uwierzytelnianie/autoryzacja odbywa się za pomocą Microsoft Entra.
- Azure API Management działa jako brama i używa polityk do kierowania i zarządzania ruchem.
- Azure Monitor rejestruje wszystkie żądania do dalszej analizy.
Przyjrzyjmy się bardziej szczegółowo przepływowi autoryzacji:
Dowiedz się więcej o specyfikacji autoryzacji MCP
Zobaczmy, czy możemy wdrożyć wspomniany wcześniej przykład:
-
Sklonuj repozytorium
git clone https://github.com/Azure-Samples/remote-mcp-apim-functions-python.git cd remote-mcp-apim-functions-python -
Zarejestruj dostawcę zasobów
Microsoft.App.- Jeśli używasz Azure CLI, uruchom
az provider register --namespace Microsoft.App --wait. - Jeśli używasz Azure PowerShell, uruchom
Register-AzResourceProvider -ProviderNamespace Microsoft.App. Następnie uruchom(Get-AzResourceProvider -ProviderNamespace Microsoft.App).RegistrationStatepo pewnym czasie, aby sprawdzić, czy rejestracja została zakończona.
- Jeśli używasz Azure CLI, uruchom
-
Uruchom ten azd polecenie, aby przygotować usługę zarządzania API, aplikację funkcji (z kodem) i wszystkie inne wymagane zasoby Azure
azd up
To polecenie powinno wdrożyć wszystkie zasoby chmurowe na Azure.
-
W nowym oknie terminala zainstaluj i uruchom MCP Inspector
npx @modelcontextprotocol/inspector
Powinieneś zobaczyć interfejs podobny do:
-
Kliknij CTRL, aby załadować aplikację MCP Inspector z adresu URL wyświetlanego przez aplikację (np. http://127.0.0.1:6274/#resources)
-
Ustaw typ transportu na
SSE -
Ustaw URL na działający punkt końcowy SSE zarządzania API wyświetlany po
azd upi Połącz:https://<apim-servicename-from-azd-output>.azure-api.net/mcp/sse
-
Lista narzędzi. Kliknij narzędzie i Uruchom narzędzie.
Jeśli wszystkie kroki się powiodły, powinieneś być teraz połączony z serwerem MCP i być w stanie wywołać narzędzie.
Remote-mcp-functions: Ten zestaw repozytoriów to szablon szybkiego startu do budowy i wdrażania niestandardowych zdalnych serwerów MCP (Model Context Protocol) za pomocą Azure Functions z Pythonem, C# .NET lub Node/TypeScript.
Przykłady oferują kompletne rozwiązanie, które pozwala programistom na:
- Budowanie i uruchamianie lokalnie: Tworzenie i debugowanie serwera MCP na lokalnym komputerze
- Wdrażanie na Azure: Łatwe wdrażanie w chmurze za pomocą prostego polecenia azd up
- Połączenie z klientami: Połączenie z serwerem MCP z różnych klientów, w tym trybu agenta Copilot w VS Code i narzędzia MCP Inspector
- Bezpieczeństwo od podstaw: Serwer MCP jest zabezpieczony za pomocą kluczy i HTTPS
- Opcje uwierzytelniania: Obsługuje OAuth za pomocą wbudowanego uwierzytelniania i/lub zarządzania API
- Izolacja sieci: Umożliwia izolację sieci za pomocą Azure Virtual Networks (VNET)
- Architektura bezserwerowa: Wykorzystuje Azure Functions do skalowalnego, zdarzeniowego wykonania
- Rozwój lokalny: Kompleksowe wsparcie dla lokalnego rozwoju i debugowania
- Proste wdrażanie: Uproszczony proces wdrażania na Azure
Repozytorium zawiera wszystkie niezbędne pliki konfiguracyjne, kod źródłowy i definicje infrastruktury, aby szybko rozpocząć pracę z gotowym do produkcji wdrożeniem serwera MCP.
-
Azure Remote MCP Functions Python - Przykładowa implementacja MCP za pomocą Azure Functions z Pythonem
-
Azure Remote MCP Functions .NET - Przykładowa implementacja MCP za pomocą Azure Functions z C# .NET
-
Azure Remote MCP Functions Node/Typescript - Przykładowa implementacja MCP za pomocą Azure Functions z Node/TypeScript.
- SDK MCP dostarczają narzędzia specyficzne dla języka do wdrażania solidnych rozwiązań MCP
- Proces debugowania i testowania jest kluczowy dla niezawodnych aplikacji MCP
- Wielokrotnego użytku szablony interakcji umożliwiają spójne interakcje AI
- Dobrze zaprojektowane przepływy pracy mogą organizować złożone zadania za pomocą wielu narzędzi
- Wdrażanie rozwiązań MCP wymaga uwzględnienia bezpieczeństwa, wydajności i obsługi błędów
Zaprojektuj praktyczny przepływ pracy MCP, który rozwiązuje rzeczywisty problem w Twojej dziedzinie:
- Zidentyfikuj 3-4 narzędzia, które byłyby przydatne do rozwiązania tego problemu
- Stwórz diagram przepływu pracy pokazujący, jak te narzędzia współdziałają
- Zaimplementuj podstawową wersję jednego z narzędzi w preferowanym przez Ciebie języku
- Stwórz szablon interakcji, który pomoże modelowi efektywnie korzystać z Twojego narzędzia
Dalej: Zaawansowane tematy
Zastrzeżenie:
Ten dokument został przetłumaczony za pomocą usługi tłumaczenia AI Co-op Translator. Chociaż dokładamy wszelkich starań, aby zapewnić poprawność tłumaczenia, prosimy pamiętać, że automatyczne tłumaczenia mogą zawierać błędy lub nieścisłości. Oryginalny dokument w jego rodzimym języku powinien być uznawany za autorytatywne źródło. W przypadku informacji o kluczowym znaczeniu zaleca się skorzystanie z profesjonalnego tłumaczenia przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z korzystania z tego tłumaczenia.



