Ten katalog zawiera kompletne, działające przykłady klientów MCP w różnych językach programowania. Każdy klient demonstruje pełną funkcjonalność opisaną w głównym samouczku README.md.
- Transport: SSE (Server-Sent Events) przez HTTP
- Serwer docelowy:
http://localhost:8080 - Funkcje:
- Nawiązywanie połączenia i ping
- Wyświetlanie listy narzędzi
- Operacje kalkulatora (dodawanie, odejmowanie, mnożenie, dzielenie, pomoc)
- Obsługa błędów i ekstrakcja wyników
Aby uruchomić:
# Ensure your MCP server is running on localhost:8080
javac client_example_java.java
java client_example_java- Transport: Stdio (Standardowe Wejście/Wyjście)
- Serwer docelowy: Lokalny serwer MCP .NET uruchamiany za pomocą dotnet run
- Funkcje:
- Automatyczne uruchamianie serwera przez transport stdio
- Wyświetlanie listy narzędzi i zasobów
- Operacje kalkulatora
- Parsowanie wyników w formacie JSON
- Kompleksowa obsługa błędów
Aby uruchomić:
dotnet run- Transport: Stdio (Standardowe Wejście/Wyjście)
- Serwer docelowy: Lokalny serwer MCP Node.js
- Funkcje:
- Pełne wsparcie dla protokołu MCP
- Operacje na narzędziach, zasobach i promptach
- Operacje kalkulatora
- Odczyt zasobów i wykonywanie promptów
- Solidna obsługa błędów
Aby uruchomić:
# First compile TypeScript (if needed)
npm run build
# Then run the client
npm run client
# or
node client_example_typescript.js- Transport: Stdio (Standardowe Wejście/Wyjście)
- Serwer docelowy: Lokalny serwer MCP w Pythonie
- Funkcje:
- Wzorzec async/await dla operacji
- Odkrywanie narzędzi i zasobów
- Testowanie operacji kalkulatora
- Odczyt treści zasobów
- Organizacja oparta na klasach
Aby uruchomić:
python client_example_python.pyKażda implementacja klienta demonstruje:
-
Zarządzanie Połączeniem
- Nawiązywanie połączenia z serwerem MCP
- Obsługa błędów połączenia
- Odpowiednie czyszczenie i zarządzanie zasobami
-
Odkrywanie Serwera
- Wyświetlanie dostępnych narzędzi
- Wyświetlanie dostępnych zasobów (jeśli obsługiwane)
- Wyświetlanie dostępnych promptów (jeśli obsługiwane)
-
Wywoływanie Narzędzi
- Podstawowe operacje kalkulatora (dodawanie, odejmowanie, mnożenie, dzielenie)
- Komenda pomocy dla informacji o serwerze
- Prawidłowe przekazywanie argumentów i obsługa wyników
-
Obsługa Błędów
- Błędy połączenia
- Błędy podczas wykonywania narzędzi
- Łagodne awarie i informowanie użytkownika
-
Przetwarzanie Wyników
- Ekstrakcja treści tekstowej z odpowiedzi
- Formatowanie wyników dla czytelności
- Obsługa różnych formatów odpowiedzi
Przed uruchomieniem tych klientów upewnij się, że:
- Odpowiedni serwer MCP działa (z katalogu
../01-first-server/) - Zainstalowano wymagane zależności dla wybranego języka
- Masz odpowiednią łączność sieciową (dla transportów opartych na HTTP)
| Język | Transport | Uruchamianie Serwera | Model Async | Kluczowe Biblioteki |
|---|---|---|---|---|
| Java | SSE/HTTP | Zewnętrzne | Sync | WebFlux, MCP SDK |
| C# | Stdio | Automatyczne | Async/Await | .NET MCP SDK |
| TypeScript | Stdio | Automatyczne | Async/Await | Node MCP SDK |
| Python | Stdio | Automatyczne | AsyncIO | Python MCP SDK |
| Rust | Stdio | Automatyczne | Async/Await | Rust MCP SDK, Tokio |
Po zapoznaniu się z tymi przykładami klientów:
- Zmodyfikuj klientów, aby dodać nowe funkcje lub operacje
- Stwórz własny serwer i przetestuj go z tymi klientami
- Eksperymentuj z różnymi transportami (SSE vs. Stdio)
- Zbuduj bardziej złożoną aplikację, która integruje funkcjonalność MCP
- Odmowa połączenia: Upewnij się, że serwer MCP działa na oczekiwanym porcie/ścieżce
- Nie znaleziono modułu: Zainstaluj wymagane MCP SDK dla swojego języka
- Odmowa dostępu: Sprawdź uprawnienia do plików dla transportu stdio
- Nie znaleziono narzędzia: Zweryfikuj, czy serwer implementuje oczekiwane narzędzia
- Włącz szczegółowe logowanie w swoim MCP SDK
- Sprawdź logi serwera w poszukiwaniu komunikatów o błędach
- Zweryfikuj nazwy i sygnatury narzędzi, aby pasowały między klientem a serwerem
- Przetestuj za pomocą MCP Inspector, aby zweryfikować funkcjonalność serwera
Zastrzeżenie:
Ten dokument został przetłumaczony za pomocą usługi tłumaczenia AI Co-op Translator. Chociaż dokładamy wszelkich starań, aby tłumaczenie było precyzyjne, 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 wiarygodne ź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 użycia tego tłumaczenia.