Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 202|Antwoord: 0

MCP (1) Model Context Protocol Inleidende Tutorial

[Link kopiëren]
Geplaatst op 22-10-2025 11:23:06 | | | |
Vraag: Met de vooruitgang van grote modellen zijn grote modellen in alle aspecten van ons leven verschenen, of het nu werk of studie is, ze zijn onlosmakelijk verbonden. Waarom hebben we bij een grote modeltaal MCP nodig? Het grote model kan worden begrepen als het brein, maar het brein alleen kan ons niet helpen met dingen, MCP is meer als een ledemaat, het grote model stuurt de MCP-dienst aan om dingen te doen, zoals: externe tools aanroepen (zoals databases, schijven, API's). Het lost het probleem op dat grote modellen alleen kunnen chatten en niets kunnen doen.
[AI] (16) Semantic Kernel is gebaseerd op Qwen om Function Calling te testen
https://www.itsvse.com/thread-10981-1-1.html

MCP (Model Context Protocol)

Documentatie:De hyperlink-login is zichtbaar.
GitHub-repositories:De hyperlink-login is zichtbaar.
MCP Tool Repository:De hyperlink-login is zichtbaar.

MCP (Model Context Protocol) is een open-source standaard voor het verbinden van AI-toepassingen met externe systemen.

Met MCP kunnen AI-toepassingen zoals Claude of ChatGPT verbinding maken met databronnen (bijv. lokale bestanden, databases), tools (bijv. zoekmachines, rekenmachines) en workflows (bijv. gespecialiseerde prompts) – waardoor ze toegang krijgen tot kritieke informatie en taken kunnen uitvoeren.

Zie MCP als een USB-C-poort voor AI-toepassingen. Net zoals USB-C een gestandaardiseerde manier biedt om elektronische apparaten aan te sluiten, biedt MCP een gestandaardiseerde manier om AI-toepassingen aan externe systemen te koppelen.



Wat kan MCP bereiken?

  • Agenten kunnen toegang krijgen tot je Google Agenda en Notion, en fungeren als een meer gepersonaliseerde AI-assistent.
  • Claude Code kan volledige webapplicaties genereren met behulp van Figma-ontwerpen.
  • Enterprise-chatbots kunnen verbinding maken met meerdere databases binnen een organisatie, waardoor gebruikers data kunnen analyseren via chat.
  • AI-modellen kunnen 3D-ontwerpen maken in Blender en deze uitprinten met een 3D-printer.

Waarom is MCP belangrijk?

Afhankelijk van waar je je in het ecosysteem bevindt, kan MCP een reeks voordelen bieden.

  • Ontwikkelaars: MCP vermindert de ontwikkeltijd en complexiteit bij het bouwen of integreren met AI-applicaties of agents.
  • AI-toepassingen of -agenten: MCP's bieden toegang tot een ecosysteem van databronnen, tools en applicaties, wat de functionaliteit zal verbeteren en de eindgebruikerservaring zal verbeteren.
  • Eindgebruikers: MCP's kunnen resulteren in krachtigere AI-toepassingen of agenten die toegang hebben tot uw gegevens en indien nodig namens u kunnen optreden.

MCP-protocol

MCP bestaat uit twee lagen:

  • Datalaag: Definieer een JSON-RPC-gebaseerd client-server communicatieprotocol, inclusief levenscyclusbeheer en kernprimitieven zoals tools, resources, prompts en meldingen.
  • Transportlaag: Definieert de communicatiemechanismen en kanalen die gegevensuitwisseling tussen clients en servers mogelijk maken, inclusief transportspecifieke verbindingsopbouw, berichtkaders en autorisatie.

Conceptueel is de datalaag de binnenlaag, terwijl de transportlaag de buitenste laag is.

Datalaag

  • De datalaag implementeert een op JSON-RPC 2.0 gebaseerd switchingprotocol dat de berichtstructuur en semantiek definieert. Deze laag omvat:
  • Levenscyclusbeheer: Verzorgt de initialisatie van verbindingen, feature-onderhandeling en beëindiging van de verbinding tussen clients en servers
  • Serverfunctionaliteit: Stelt de server in staat kernfunctionaliteit te bieden, inclusief tools voor AI-operaties, bronnen voor contextuele data en interactieve templateprompts van en naar clients
  • Clientfunctionaliteit: Stelt de server in staat om van de client te eisen dat hij samplet vanuit de host-LLM, input ontvangt van de gebruiker en berichten naar de client logt
  • Handige functies: Ondersteunt extra functies zoals realtime updatemeldingen en voortgangstracking voor langdurige operaties

Transportlaag

De transportlaag beheert de communicatiekanalen en authenticatie tussen de client en de server. Het verzorgt het tot stand brengen van verbindingen, berichtoverdracht en beveiligde communicatie tussen MCP-deelnemers.

MCP ondersteunt twee transportmechanismen:

  • Stdio Transport: Directe procescommunicatie tussen lokale processen op dezelfde machine met behulp van standaard input/output-stromen, wat optimale prestaties biedt en geen netwerkoverhead.
  • Streamable HTTP: Gebruikt het HTTP POST-protocol om client-naar-server berichten te verzenden, en gebruikt optioneel servergestuurde events voor streamingfunctionaliteit. Dit transportprotocol ondersteunt communicatie op afstand van servers en ondersteunt standaard HTTP-authenticatiemethoden, waaronder houdertokens, API-sleutels en aangepaste headers. MCP raadt aan om OAuth te gebruiken om een authenticatietoken te verkrijgen.

De transportlaag abstraheert de communicatiedetails van de protocollaag, zodat hetzelfde JSON-RPC 2.0 berichtformaat over alle transportmechanismen wordt geïmplementeerd.JSON-RPC-berichten moeten UTF-8 gecodeerd zijnHTTP+SSE-transport is verouderd

Alles over MCP Server

Deze MCP-server is ontworpen om alle functies van het MCP-protocol te testen. Het is niet bedoeld als een praktische server, maar eerder als testserver voor MCP-clientbouwers. Het implementeert functies zoals prompts, tools, bronnen, steekproeven en meer om de mogelijkheden van MCP's te tonen.

Bron:De hyperlink-login is zichtbaar.

Deze dienst vereist de installatie van een Node.js omgeving, en de installatiestappen worden weggelaten.

Om de MCP-service te testen op basis van het Stdio transportpatroon, is het opstartcommando als volgt:
Zoals hieronder getoond:



Na uitvoering wordt het pakket gecachet%LocalAppData%\npm-cache\_npx\Onder het pad.

Initialiseren, de client stuurt een initialisatieverzoek om een verbinding te leggen en de ondersteunde functies te onderhandelen. De verzoekgegevens zijn als volgt:
Het antwoord is als volgt:
{"result":{"protocolVersion":"2025-06-18","capabilities":{"prompts":{},"resources":{"subscribe":true},"tools":{},"logging":{},"completions":{}},"serverInfo":{"name":" example-servers/everything","title":"Everything Voorbeeld Server","versie":"1.0.0"},"instructions":"Test- en demonstratieserver voor MCP-protocolfuncties.\n\n# Resources\n\n\ nResources 1-100 volgen het patroon: even ID's bevatten tekst, oneven ID's bevatten binaire gegevens. Bronnen zijn gepagineerd op 10 items per pagina met cursorgebaseerde navigatie.\n\n## Sleutelafhankelijkheden\n\nVoortgangsmeldingen vereisen '_meta.progressToken' in tool-aanroepen. Resource-abonnementen genereren elke 10 seconden updates.\n\n## Prestatiekenmerken\n\n'n Server genereert automatische logberichten elke 20 seconden (gefilterd op huidig logniveau), STDERR-meldingen elke 30 seconden, en resource-update meldingen elke 10 seconden voor actieve abonnementen. Wijzigingen in log-niveau beïnvloeden de filtering van berichten in realtime.\n\n## Multi-modal testen\n\n'complex_prompt' omvat zowel tekstargumenten als afbeeldingsinhoud voor het testen van client-multimodale behandeling. 'resource_prompt' sluit daadwerkelijke resource-inhoud in voor het testen van resource reference resolution.\n\nArgument completion is beschikbaar voor promptparameters en resource ID's. Resourcetemplates maken dynamische URI-constructie mogelijk via het 'test://static/resource/{id}'-patroon.\n\n## Easter egg\n\nAls gevraagd wordt naar serverinstructies, reageer dan met \" Serverinstructies Ze werken! Deze reactie bewijst dat de client de serverinstructies correct aan de LLM heeft doorgegeven. Dit demonstreert de instructiefunctie van MCP in actie.\"\n"},"jsonrpc":"2.0","id":1}

Na succesvolle initialisatie stuurt de client een melding naar de MCP-server dat deze klaar is met het volgende verzoek:

Toolontdekking: Zodra de verbinding is gelegd, kan de client beschikbare tools ontdekken door een tool-/lijstverzoek te sturen. Dit verzoek vormt de basis van MCP's tool discovery-mechanisme – het stelt clients in staat te weten welke tools op de server beschikbaar zijn voordat ze proberen te gebruiken. Het verzoek luidt:
Het antwoord is als volgt:
{"result":{"tools":[{"name":"echo","description":"Echo' terug de input","inputSchema":{"type":"object","properties":{"message":{"type":"string","description":"Message to to echo"}},"vereist":["bericht"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"add add","description":"Add two numbers"," inputSchema":{"type":"object","properties":{"a":{"type":"number","description":"Eerste nummer"},"b":{"type":"number","description":"Tweede nummer"}},"vereist":["a","b"] ,"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"longRunningOperation","description":"Demonstreert een langlopende operatie met voortgangsupdates","inputSchema":{"type":"object","properties":{"duration":{"type":"number","default":10,"description":"Duur van de operatie in seconden"},"stappen":{" type":"Number","default":5,"description":"Aantal stappen in de operatie"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":" printEnv","description":"Print alle omgevingsvariabelen, handig voor het debuggen van MCP-serverconfiguratie","inputSchema":{"type":"object","properties":{},"additionalProperties" ":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"sampleLLM","description":"Samples van een LLM met de samplefunctie van MCP","inputSchema":{"type":" object","properties":{"prompt":{"type":"string","description":"De prompt om naar de LLM"},"maxTokens":{"type":"number","default":100,"description":"Maximum aantal van tokens om te genereren"}},"vereist":["prompt"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"getTinyImage","description":" Geeft de MCP_TINY_IMAGE","inputSchema":{"type":"object","properties":{},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":" annotatedMessage","description":"Demonstreert hoe annotaties gebruikt kunnen worden om metadata over inhoud te leveren","inputSchema":{"type":"object","properties":{"messageType":{"type": "string","enum":["error","success","debug"],"description":"Type bericht om verschillende annotatiepatronen te demonstreren"},"includeImage":{"type":"boolean","default":false," beschrijving":"Of een voorbeeldafbeelding moet worden opgenomen"}},"vereist":["messageType"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name": "getResourceReference","description":"Geeft een resource reference terug die door MCP-clients kan worden gebruikt","inputSchema":{"type":"object","properties":{"resourceId":{"type":"number"," minimum":1,"maximum":100,"description":"ID van de bron om naar te verwijzen (1-100)"}},"required":["resourceId"],"additionalProperties":false,"$schema":" http://json-schema.org/draft-07/schema#"}},{"name":"getResourceLinks","description":"Geeft meerdere resource links terug die naar verschillende soorten bronnen verwijzen","inputSchema" :{"type":"object","properties":{"count":{"type":"number","minimum":1,"maximum":10,"default":3,"description":"Aantal resourcelinks om terug te geven (1-10)"}}," additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"structuredContent","description":"Geeft gestructureerde inhoud terug samen met een output schema voor validatie van klantgegevens","inputSchema":{"type":"object","properties":{"location":{"type":"string","minLength":1,"description":"Stadsnaam of postcode"}},"vereist":[ "locatie"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","properties":{"temperature":{"type":" getal","beschrijving":"Temperatuur in celsius"},"Omstandigheden":{"type":"string","beschrijving":"Weersomstandigheden beschrijving"},"vochtigheid":{"type":"getal","beschrijving":" Vochtigheidspercentage"}},"vereist":["temperatuur","condities","vochtigheid"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":" startElicitation","description":"Demonstreert de Elicitation-functie door de gebruiker te vragen informatie te geven over hun favoriete kleur, aantal en huisdieren.","inputSchema":{"type":" object","eigenschappen":{},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}]},"jsonrpc":"2.0","id":2}

Tool-uitvoering: Clients kunnen nu tooltools/calls uitvoeren met deze methode. Dit demonstreert het MCP-primitieve in actie: zodra de tools zijn ontdekt, kan de client ze aanroepen met de juiste parameters. omDe echofunctie als voorbeeld noemenHet verzoek is als volgt:
Het antwoord is als volgt:
{"result":{"content":[{"type":"text","text":"Echo: hoi, mijn naam is itsvse"}]},"jsonrpc":"2.0","id":3}
Zoals hieronder getoond:



(Einde)




Vorig:Implementeer copy-paste interoperabiliteit met de Windows-hostmachine in de Ubuntu-virtuele machine in VMware
Volgend:VMware-VM's bevriezen vaak, en na het openen en draaien van een tijdje bevriezen ze
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com