Poprzedni przykład pokazuje, jak używać lokalnego projektu .NET z typem stdio oraz jak uruchomić serwer lokalnie w kontenerze. To dobre rozwiązanie w wielu sytuacjach. Jednak czasami przydatne jest, aby serwer działał zdalnie, na przykład w środowisku chmurowym. Właśnie tutaj przydaje się typ http.
Patrząc na rozwiązanie w folderze 04-PracticalImplementation, może wydawać się ono znacznie bardziej skomplikowane niż poprzednie. W rzeczywistości tak nie jest. Jeśli przyjrzymy się projektowi src/Calculator, zobaczymy, że to w większości ten sam kod co wcześniej. Jedyną różnicą jest użycie innej biblioteki ModelContextProtocol.AspNetCore do obsługi żądań HTTP. Zmieniamy też metodę IsPrime na prywatną, aby pokazać, że w kodzie można mieć metody prywatne. Reszta kodu pozostaje bez zmian.
Pozostałe projekty pochodzą z .NET Aspire. Obecność .NET Aspire w rozwiązaniu poprawia komfort pracy programisty podczas tworzenia i testowania oraz pomaga w obserwowalności. Nie jest to wymagane do uruchomienia serwera, ale warto mieć to w swoim projekcie.
-
W VS Code (z rozszerzeniem C# DevKit) przejdź do katalogu
04-PracticalImplementation/samples/csharp. -
Wykonaj następujące polecenie, aby uruchomić serwer:
dotnet watch run --project ./src/AppHost
-
Gdy w przeglądarce otworzy się pulpit nawigacyjny .NET Aspire, zanotuj adres URL
http. Powinien wyglądać mniej więcej tak:http://localhost:5058/.
Jeśli masz Node.js w wersji 22.7.5 lub wyższej, możesz użyć MCP Inspector do testowania serwera.
Uruchom serwer i w terminalu wpisz następujące polecenie:
npx @modelcontextprotocol/inspector http://localhost:5058- Wybierz
Streamable HTTPjako typ transportu. - W polu Url wpisz wcześniej zanotowany adres serwera i dopisz
/mcp. Powinno to byćhttp(niehttps), na przykładhttp://localhost:5058/mcp. - Kliknij przycisk Connect.
Zaletą Inspector jest dobra widoczność tego, co się dzieje.
- Spróbuj wyświetlić listę dostępnych narzędzi
- Przetestuj kilka z nich, powinny działać tak jak wcześniej.
Aby użyć transportu Streamable HTTP z GitHub Copilot Chat, zmień konfigurację serwera calc-mcp utworzonego wcześniej, aby wyglądała tak:
Przeprowadź kilka testów:
- Poproś o „3 liczby pierwsze po 6780”. Zauważ, że Copilot użyje nowych narzędzi
NextFivePrimeNumbersi zwróci tylko pierwsze 3 liczby pierwsze. - Poproś o „7 liczb pierwszych po 111”, aby zobaczyć, co się stanie.
- Zapytaj „John ma 24 lizaki i chce rozdać je równo swoim 3 dzieciom. Ile lizaków dostanie każde dziecko?”, aby zobaczyć wynik.
Wdróżmy serwer do Azure, aby więcej osób mogło z niego korzystać.
W terminalu przejdź do folderu 04-PracticalImplementation/samples/csharp i uruchom następujące polecenie:
azd upPo zakończeniu wdrożenia powinieneś zobaczyć komunikat podobny do tego:
Skopiuj adres URL i użyj go w MCP Inspector oraz w GitHub Copilot Chat.
// .vscode/mcp.json
{
"servers": {
"calc-mcp": {
"type": "http",
"url": "https://calc-mcp.gentleriver-3977fbcf.australiaeast.azurecontainerapps.io/mcp"
}
}
}Przetestowaliśmy różne typy transportu i narzędzia testowe. Wdrożyliśmy też serwer MCP do Azure. A co jeśli nasz serwer musi mieć dostęp do zasobów prywatnych? Na przykład bazy danych lub prywatnego API? W kolejnym rozdziale zobaczymy, jak możemy poprawić bezpieczeństwo naszego serwera.
Zastrzeżenie:
Niniejszy dokument został przetłumaczony przy użyciu usługi tłumaczenia AI Co-op Translator. Mimo że dążymy do dokładności, prosimy mieć na uwadze, że automatyczne tłumaczenia mogą zawierać błędy lub nieścisłości. Oryginalny dokument w języku źródłowym powinien być uznawany za źródło autorytatywne. W przypadku informacji o kluczowym znaczeniu zalecane jest skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z korzystania z tego tłumaczenia.


