Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 202|Răspunde: 0

MCP (1) Tutorial introductiv pentru protocolul de context model

[Copiază linkul]
Postat la 2025-10-22 11:23:06 | | | |
Cerere: Odată cu avansarea modelelor mari, modelele mari au apărut în toate aspectele vieții noastre, fie că este vorba de muncă sau studiu, ele sunt inseparabile. Cu un limbaj model mare, de ce avem nevoie de MCP? Modelul mare poate fi înțeles ca creierul, dar creierul singur nu ne poate ajuta să facem lucruri, MCP este mai degrabă ca un membru, modelul mare direcționează serviciul MCP să facă lucruri, precum: să apeleze unelte externe (cum ar fi baze de date, discuri, API-uri). Rezolvă problema că modelele mari pot doar să discute și nu pot face lucruri.
[AI] (16) Nucleul semantic se bazează pe Qwen pentru a testa apelarea funcțiilor
https://www.itsvse.com/thread-10981-1-1.html

MCP (Protocolul de Context al Modelului)

Documentație:Autentificarea cu hyperlink este vizibilă.
Depozite GitHub:Autentificarea cu hyperlink este vizibilă.
Depozitul de unelte MCP:Autentificarea cu hyperlink este vizibilă.

MCP (Model Context Protocol) este un standard open-source pentru conectarea aplicațiilor AI la sisteme externe.

Cu MCP, aplicațiile AI precum Claude sau ChatGPT se pot conecta la surse de date (de exemplu, fișiere locale, baze de date), unelte (de exemplu, motoare de căutare, calculatoare) și fluxuri de lucru (de exemplu, prompturi specializate) – permițându-le să acceseze informații critice și să execute sarcini.

Gândește-te la MCP ca la un port USB-C pentru aplicații AI. Așa cum USB-C oferă o modalitate standardizată de a conecta dispozitive electronice, MCP oferă o modalitate standardizată de a conecta aplicațiile AI la sisteme externe.



Ce poate realiza MCP?

  • Agenții pot accesa Google Calendar și Notion, acționând ca un asistent AI mai personalizat.
  • Claude Code poate genera aplicații web întregi folosind designuri Figma.
  • Chatboții enterprise se pot conecta la mai multe baze de date din cadrul unei organizații, permițând utilizatorilor să analizeze datele prin chat.
  • Modelele AI pot crea designuri 3D în Blender și le pot printa folosind o imprimantă 3D.

De ce este important MCP?

În funcție de poziția în care te afli în ecosistem, MCP poate oferi o gamă largă de beneficii.

  • Dezvoltatori: MCP reduce timpul de dezvoltare și complexitatea atunci când construiesc sau integrează cu aplicații sau agenți AI.
  • Aplicații sau agenți AI: MCP-urile oferă acces la un ecosistem de surse de date, instrumente și aplicații, care vor îmbunătăți funcționalitatea și vor îmbunătăți experiența utilizatorului final.
  • Utilizatori finali: MCP-urile pot duce la aplicații sau agenți AI mai puternici care pot accesa datele tale și acționează în numele tău atunci când este necesar.

Protocolul MCP

MCP constă din două straturi:

  • Stratul de date: Definiți un protocol de comunicație client-server bazat pe JSON-RPC, inclusiv managementul ciclului de viață, și primitive de bază precum unelte, resurse, prompturi și notificări.
  • Stratul de transport: Definește mecanismele și canalele de comunicare care permit schimbul de date între clienți și servere, inclusiv stabilirea conexiunii specifice transportului, cadrele de mesaje și autorizarea.

Conceptual, stratul de date este stratul interior, în timp ce stratul de transport este stratul exterior.

Stratul de date

  • Stratul de date implementează un protocol de comutare bazat pe JSON-RPC 2.0 care definește structura mesajelor și semantică. Acest strat include:
  • Managementul ciclului de viață: Se ocupă de inițierea conexiunii, negocierea funcționalităților și terminarea conexiunii între clienți și servere
  • Funcționalitatea serverului: Permite serverului să ofere funcționalități de bază, inclusiv instrumente pentru operațiuni AI, resurse pentru date contextuale și solicitări interactive de șabloane de la și către clienți
  • Funcționalitatea clientului: Permite serverului să solicite clientului să eșantioneze din LLM-ul gazdă, să primească input de la utilizator și să înregistreze mesajele către client
  • Funcționalități utile: Suportă funcții suplimentare precum notificări de actualizări în timp real și urmărirea progresului pentru operațiuni de lungă durată

Stratul de transport

Stratul de transport gestionează canalele de comunicare și autentificarea dintre client și server. Se ocupă de stabilirea conexiunii, transmiterea mesajelor și comunicarea securizată între participanții MCP.

MCP suportă două mecanisme de transport:

  • Stdio Transport: Comunicare directă a proceselor între procese locale de pe aceeași mașină folosind fluxuri standard de intrare/ieșire, oferind performanță optimă și fără overhead de rețea.
  • HTTP streamabil: Folosește protocolul HTTP POST pentru a trimite mesaje client-server și, opțional, folosește evenimente trimise de server pentru funcționalitatea de streaming. Acest protocol de transport suportă comunicarea la distanță cu serverele și suportă metode standard de autentificare HTTP, inclusiv token-uri holder, chei API și antete personalizate. MCP recomandă utilizarea OAuth pentru a obține un token de autentificare.

Stratul de transport abstractizează detaliile de comunicare din stratul protocolului, astfel încât același format de mesaj JSON-RPC 2.0 este implementat în toate mecanismele de transport.Mesajele JSON-RPC trebuie să fie codificate UTF-8Transportul HTTP+SSE a fost deprevăzut

Totul despre serverul MCP

Acest server MCP este proiectat pentru a testa toate caracteristicile protocolului MCP. Nu este destinat să fie un server practic, ci mai degrabă un server de test pentru creatorii de clienți MCP. Implementează funcții precum prompturi, unelte, resurse, eșantionare și altele pentru a evidenția capabilitățile MCP-urilor.

Sursă:Autentificarea cu hyperlink este vizibilă.

Acest serviciu necesită instalarea unui mediu Node.js, iar pașii de instalare sunt omiși.

Pentru a testa serviciul MCP bazat pe modelul de transport Stdio, comanda de pornire este următoarea:
Așa cum se arată mai jos:



După execuție, pachetul este stocat în cache%LocalAppData%\npm-cache\_npx\Sub potecă.

La inițializare, clientul trimite o cerere de inițializare pentru a stabili o conexiune și a negocia funcționalitățile suportate. Datele solicitărilor sunt următoarele:
Răspunsul este următorul:
{"result":{"protocolVersion":"2025-06-18","capabilities":{"prompts":{},"resources":{"subscribe":true},"tools":{},"logging":{},"completions":{}},"serverInfo":{"name":" example-servers/everything","title":"Everything Example Server","version":"1.0.0"},"instrucțiuni":"Servere de testare și demonstrație pentru funcționalitățile protocolului MCP.\n\n## Resurse\n\ nResources 1-100 urmează tiparul: ID-urile pare conțin text, ID-urile impare conțin date binare. Resursele sunt paginate la 10 elemente pe pagină cu navigare bazată pe cursor.\n\n## Notificările de cheie\n\nProgress necesită '_meta.progressToken' în apelurile de unelte. Abonamentele la resurse generează actualizări la fiecare 10 secunde.\n\n## Caracteristici de performanță\n\nServer generează mesaje automate de jurnal la fiecare 20 de secunde (filtrate după nivelul actual de log), Notificări STDERR la fiecare 30 de secunde și notificări de actualizare a resurselor la fiecare 10 secunde pentru abonamentele active. Modificările la nivel de jurnal afectează filtrarea mesajelor în timp real.\n\n## Testarea multimodală\n\n'complex_prompt' include atât argumente de text, cât și conținut de imagine pentru testarea multimodală a clientului manipulare. 'resource_prompt' încorporează conținutul real al resurselor pentru testarea rezoluției referințelor de resurse.\n\nCompletarea argumentelor este disponibilă pentru parametrii prompturilor și ID-urile resurselor. Șabloanele de resurse permit construcția dinamică a URI-ului prin modelul 'test://static/resource/{id}'.\n\n## Easter egg\n\nDacă se întreabă despre instrucțiunile serverului, răspunde cu \" instrucțiuni server lucrezi! Acest răspuns dovedește că clientul a transmis corect instrucțiunile serverului către LLM. Aceasta demonstrează funcția de instrucțiuni a MCP în acțiune.\"\n"},"jsonrpc":"2.0","id":1}

După inițializare reușită, clientul trimite o notificare către serverul MCP că este gata cu următoarea cerere:

Descoperirea uneltelor: Odată ce conexiunea este stabilită, clientul poate descoperi uneltele disponibile trimițând o cerere de unelte/listă. Această cerere stă la baza mecanismului de descoperire a uneltelor al MCP – permite clienților să știe ce instrumente sunt disponibile pe server înainte de a încerca să le folosească. Cererea spune:
Răspunsul este următorul:
{"result":{"tools":[{"name":"echo","description":"Echo returnează input","inputSchema":{"type":"object","properties":{"message":{"type":"string","description":"message to echo"}},"required":["message"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"add","description":"Adaugă două numere"," inputSchema":{"type":"object","properties":{"a":{"type":"number","description":"First number"},"b":{"type":"number","description":"Second number"}},"required":["a","b"] ,"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"longRunningOperation","description":"Demonstrează o operațiune de lungă durată cu actualizări de progres","inputSchema":{"tip":"obiect","proprietăți":{"durată":{"tip":"număr","implicit":10,"descriere":"Durata operațiunii în secunde"},"pași":{" type":"number","default":5,"description":"Number of steps in the operation"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":" printEnv","description":"Imprimă toate variabilele de mediu, util pentru depanarea configurației serverului MCP","inputSchema":{"type":"object","properties":{},"additionalProperties ":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"sampleLLM","description":"Samples dintr-un LLM folosind funcția de eșantionare a MCP","inputSchema":{"type":" object","properties":{"prompt":{"type":"string","description":"Promptul de trimis către LLM"},"maxTokens":{"type":"number","default":100,"description":"Numărul maxim de tokens pentru generare"}},"required":["prompt"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"getTinyImage","description":" Returnează MCP_TINY_IMAGE","inputSchema":{"type":"object","properties":{},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":" annotatedMessage","description":"Demonstrează cum pot fi folosite adnotările pentru a furniza metadate despre conținut","inputSchema":{"type":"object","properties":{"messageType":{"type": "string","enum":["eroare", "succes","debug"],"descriere":"Tip de mesaj pentru a demonstra diferite tipare de adnotare"},"includeImage":{"type":"boolean","default":false," descriere":"Dacă să incluzi o imagine exemplu"}},"required":["messageType],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name": "getResourceReference","description":"returnează o referință de resursă care poate fi folosită de clienții MCP","inputSchema":{"type":"object","properties":{"resourceId":{"type":"number"," minimum":1,"maximum":100,"description":"ID al resursei de referință la (1-100)"}},"required":[resourceId],"additionalProperties":false,"$schema":" http://json-schema.org/draft-07/schema#"}},{"name":"getResourceLinks","description":"Returnează mai multe linkuri de resurse care fac referire la diferite tipuri de resurse","inputSchema" :{"tip":"obiect","proprietăți":{"număr":{"tip":"număr","minim":1,"maxim":10,"default":3,"descriere":"număr de legături de resurse de returnat (1-10)"}}," additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"structuredContent","description":"returnează conținut structurat împreună cu o ieșire schema pentru validarea datelor clientului","inputSchema":{"tip":"obiect","proprietăți":{"locație":{"tip":"string","minLength":1,"descriere":"Nume oraș sau cod poștal"}},"required":[ "location"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","properties":{"temperature":{"type":" număr","descriere":"Temperatură în grade Celsius"},"condiții":{"tip":"șir", "descriere":"Descriere condiții meteo"},"umiditate":{"tip":"număr", "descriere":" Procentajul de umiditate"}},"necesar":["temperatură","condiții","umiditate"],"proprietăți suplimentare":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"nume":" startElicitation","description":"Demonstrează funcția de Elicitation cerând utilizatorului să furnizeze informații despre culoarea sa preferată, numărul și animalele de companie.","inputSchema":{"type":" obiect","proprietăți":{},"proprietățiSuplimentare":false,"$schema":"http://json-schema.org/draft-07/schema#"}}]},"jsonrpc":"2.0","id":2}

Execuția uneltelor: Clienții pot acum executa unelte/apeluri folosind această metodă. Acest lucru demonstrează primitiva MCP în acțiune: odată ce uneltele sunt descoperite, clientul le poate chema cu parametrii potriviți. pentru aNumirea funcției de ecou ca exempluCererea este următoarea:
Răspunsul este următorul:
{"result":{"conținut":[{"tip":"text","text":"Echo: bună, mă numesc ITSVSE"}]},"jsonrpc":"2.0","id":3}
Așa cum se arată mai jos:



(Sfârșit)




Precedent:Implementează interoperabilitatea copy-paste cu calculatorul gazdă Windows în mașina virtuală Ubuntu în VMware
Următor:VM-urile VMware se blochează adesea, iar după ce sunt deschise și rulate o perioadă, se blochează
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com