Denne mappe indeholder komplette, fungerende eksempler på MCP-klienter i forskellige programmeringssprog. Hver klient demonstrerer den fulde funktionalitet, der er beskrevet i hovedvejledningen README.md.
- Transport: SSE (Server-Sent Events) over HTTP
- Målserver:
http://localhost:8080 - Funktioner:
- Oprettelse af forbindelse og ping
- Liste over værktøjer
- Regnefunktioner (plus, minus, gange, dividere, hjælp)
- Fejlhåndtering og resultatudtrækning
Sådan køres:
# Ensure your MCP server is running on localhost:8080
javac client_example_java.java
java client_example_java- Transport: Stdio (Standard Input/Output)
- Målserver: Lokal .NET MCP-server via dotnet run
- Funktioner:
- Automatisk serverstart via stdio-transport
- Liste over værktøjer og ressourcer
- Regnefunktioner
- JSON-resultatparsing
- Omfattende fejlhåndtering
Sådan køres:
dotnet run- Transport: Stdio (Standard Input/Output)
- Målserver: Lokal Node.js MCP-server
- Funktioner:
- Fuld MCP-protokolunderstøttelse
- Værktøjs-, ressource- og promptoperationer
- Regnefunktioner
- Læsning af ressourcer og udførelse af prompts
- Robust fejlhåndtering
Sådan køres:
# First compile TypeScript (if needed)
npm run build
# Then run the client
npm run client
# or
node client_example_typescript.js- Transport: Stdio (Standard Input/Output)
- Målserver: Lokal Python MCP-server
- Funktioner:
- Async/await-mønster til operationer
- Opdagelse af værktøjer og ressourcer
- Test af regnefunktioner
- Læsning af ressourceindhold
- Klassebaseret organisering
Sådan køres:
python client_example_python.pyHver klientimplementering demonstrerer:
-
Forbindelseshåndtering
- Oprettelse af forbindelse til MCP-serveren
- Håndtering af forbindelsesfejl
- Korrekt oprydning og ressourcehåndtering
-
Serveropdagelse
- Liste over tilgængelige værktøjer
- Liste over tilgængelige ressourcer (hvor understøttet)
- Liste over tilgængelige prompts (hvor understøttet)
-
Værktøjsanvendelse
- Grundlæggende regnefunktioner (plus, minus, gange, dividere)
- Hjælpekommando for serverinformation
- Korrekt argumentoverførsel og resultathåndtering
-
Fejlhåndtering
- Forbindelsesfejl
- Fejl ved værktøjsudførelse
- Graciøs fejlhåndtering og brugerfeedback
-
Resultatbehandling
- Udtrækning af tekstindhold fra svar
- Formatering af output for læsbarhed
- Håndtering af forskellige svarformater
Før du kører disse klienter, skal du sikre dig:
- Den tilsvarende MCP-server kører (fra
../01-first-server/) - Nødvendige afhængigheder er installeret for det valgte sprog
- Korrekt netværksforbindelse (for HTTP-baserede transporter)
| Sprog | Transport | Serverstart | Async-model | Nøglebiblioteker |
|---|---|---|---|---|
| Java | SSE/HTTP | Ekstern | Synkron | WebFlux, MCP SDK |
| C# | Stdio | Automatisk | Async/Await | .NET MCP SDK |
| TypeScript | Stdio | Automatisk | Async/Await | Node MCP SDK |
| Python | Stdio | Automatisk | AsyncIO | Python MCP SDK |
| Rust | Stdio | Automatisk | Async/Await | Rust MCP SDK, Tokio |
Efter at have udforsket disse klienteksempler:
- Tilpas klienterne for at tilføje nye funktioner eller operationer
- Opret din egen server og test den med disse klienter
- Eksperimentér med forskellige transporter (SSE vs. Stdio)
- Byg en mere kompleks applikation der integrerer MCP-funktionalitet
- Forbindelse nægtet: Sørg for, at MCP-serveren kører på den forventede port/sti
- Modul ikke fundet: Installer det nødvendige MCP SDK for dit sprog
- Adgang nægtet: Tjek filrettigheder for stdio-transport
- Værktøj ikke fundet: Bekræft, at serveren implementerer de forventede værktøjer
- Aktivér detaljeret logning i dit MCP SDK
- Tjek serverlogfiler for fejlmeddelelser
- Bekræft værktøjsnavne og signaturer stemmer overens mellem klient og server
- Test med MCP Inspector først for at validere serverfunktionalitet
Ansvarsfraskrivelse:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten Co-op Translator. Selvom vi bestræber os på nøjagtighed, skal det bemærkes, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi er ikke ansvarlige for eventuelle misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.