Povpraševanje: Z razvojem velikih modelov so se veliki modeli pojavili na vseh področjih našega življenja, ne glede na to, ali gre za delo ali študij, so neločljivi. Pri velikem modelnem jeziku, zakaj sploh potrebujemo MCP? Velik model lahko razumemo kot možgane, vendar nam možgani sami ne morejo pomagati pri določenih stvareh; MCP je bolj podoben okončini, veliki model usmerja storitev MCP k opravljanju nalog, kot so: klicanje zunanjih orodij (kot so baze podatkov, diski, API-ji). Reši problem, da lahko veliki modeli samo klepetajo in ne morejo ničesar.
MCP (Model Context Protocol)
Dokumentacija:Prijava do hiperpovezave je vidna. GitHub repozitoriji:Prijava do hiperpovezave je vidna. MCP orodni repozitorij:Prijava do hiperpovezave je vidna.
MCP (Model Context Protocol) je odprtokodni standard za povezovanje aplikacij UI z zunanjimi sistemi.
Z MCP se lahko aplikacije umetne inteligence, kot sta Claude ali ChatGPT, povežejo z viri podatkov (npr. lokalne datoteke, baze podatkov), orodji (npr. iskalniki, kalkulatorji) in delovnimi procesi (npr. specializirani pozivi) – kar jim omogoča dostop do ključnih informacij in izvajanje nalog.
MCP si predstavljajte kot USB-C priključek za AI aplikacije. Tako kot USB-C zagotavlja standardiziran način povezovanja elektronskih naprav, MCP zagotavlja standardiziran način povezovanja aplikacij UI z zunanjimi sistemi.
Kaj lahko MCP doseže?
- Agentje lahko dostopajo do vašega Google Koledarja in Notiona, ki deluje kot bolj personaliziran AI asistent.
- Claude Code lahko generira celotne spletne aplikacije z uporabo Figma dizajnov.
- Poslovni klepetalni roboti se lahko povežejo z več bazami podatkov znotraj organizacije, kar uporabnikom omogoča analizo podatkov prek klepeta.
- AI modeli lahko ustvarijo 3D dizajne v Blenderju in jih natisnejo s 3D tiskalnikom.
Zakaj je MCP pomemben?
Glede na to, kje se nahajate v ekosistemu, lahko MCP prinese številne koristi.
- Razvijalci: MCP zmanjšuje čas razvoja in kompleksnost pri gradnji ali integraciji z AI aplikacijami ali agenti.
- AI aplikacije ali agenti: MCP-ji omogočajo dostop do ekosistema podatkovnih virov, orodij in aplikacij, kar bo izboljšalo funkcionalnost in izboljšalo uporabniško izkušnjo.
- Končni uporabniki: MCP-ji lahko prinesejo zmogljivejše AI aplikacije ali agente, ki dostopajo do vaših podatkov in ukrepajo v vašem imenu, kadar je to potrebno.
MCP protokol
MCP je sestavljen iz dveh plasti:
- Podatkovna plast: Definirajte komunikacijski protokol, ki temelji na JSON-RPC, vključno z upravljanjem življenjskega cikla in osnovnimi primitivami, kot so orodja, viri, pozivi in obvestila.
- Transportna plast: Opredeljuje komunikacijske mehanizme in kanale, ki omogočajo izmenjavo podatkov med odjemalci in strežniki, vključno z vzpostavitvijo povezav, specifičnimi za transport, okviri sporočil in avtorizacijo.
Konceptualno je podatkovna plast notranja plast, medtem ko je transportna plast zunanja plast.
Podatkovna plast
- Podatkovna plast implementira protokol preklapljanja na osnovi JSON-RPC 2.0, ki določa strukturo sporočil in semantiko. Ta plast vključuje:
- Upravljanje življenjskega cikla: Upravlja inicializacijo povezave, pogajanja o funkcijah in prekinitev povezave med odjemalci in strežniki
- Funkcionalnost strežnika: Omogoča strežniku zagotavljanje osnovnih funkcionalnosti, vključno z orodji za operacije z UI, viri za kontekstualne podatke in interaktivnimi predlogami pozivov od strank in do strank
- Funkcionalnost odjemalca: Omogoča strežniku, da zahteva, da odjemalec vzorči iz gostiteljskega LLM, prejme vhod od uporabnika in beleži sporočila odjemalcu
- Uporabne funkcije: Podpira dodatne funkcije, kot so obvestila o posodobitvah v realnem času in spremljanje napredka za dolgotrajne operacije
Transportna plast
Transportna plast upravlja komunikacijske kanale in avtentikacijo med odjemalcem in strežnikom. Skrbi za vzpostavljanje povezave, prenos sporočil in varno komunikacijo med udeleženci MCP.
MCP podpira dva transportna mehanizma:
- Stdio Transport: Neposredna komunikacija procesov med lokalnimi procesi na istem računalniku z uporabo standardnih vhodno/izhodnih tokov, kar zagotavlja optimalno zmogljivost in brez obremenitve omrežja.
- Pretočni HTTP: Uporablja protokol HTTP POST za pošiljanje sporočil med odjemalcem in strežnikom, po želji pa uporablja dogodke, ki jih pošilja strežnik, za funkcionalnost pretakanja. Ta transportni protokol podpira komunikacijo z oddaljenim strežnikom in standardne metode HTTP avtentikacije, vključno z žetoni imetnikov, API ključi in prilagojenimi glavami. MCP priporoča uporabo OAuth za pridobitev avtentikacijskega žetona.
Transportna plast abstrahira komunikacijske podrobnosti iz protokolne plasti, tako da je isti format sporočil JSON-RPC 2.0 implementiran v vseh transportnih mehanizmih.JSON-RPC sporočila morajo biti kodirana v UTF-8。HTTP+SSE prenos je bil opuščen!
Vse o MCP strežniku
Ta MCP strežnik je zasnovan za testiranje vseh funkcij MCP protokola. Ni namenjen praktičnemu strežniku, temveč testnemu strežniku za graditelje MCP odjemalcev. Implementira funkcije, kot so pozivi, orodja, viri, vzorčenje in še več, da pokaže zmogljivosti MCP-jev.
Izvir:Prijava do hiperpovezave je vidna.
Ta storitev zahteva namestitev Node.js okolja, pri čemer so postopki namestitve izpuščeni.
Za testiranje storitve MCP na podlagi transportnega vzorca Stdio je zagonski ukaz naslednji:
Kot je prikazano spodaj:
Po zagonu se paket shrani v predpomnilnik%LocalAppData%\npm-cache\_npx\Pod potjo.
Pri inicializaciji odjemalec pošlje zahtevo za vzpostavitev povezave in pogajanje o podprtih funkcijah. Podatki o zahtevkih so naslednji:
Odgovor je naslednji:
{"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"},"instructions":"Testing and demonstration server for MCP protocol features.\n\n## Resources\n\ nViri 1-100 sledijo vzorcu: sodi ID-ji vsebujejo besedilo, lihi ID-ji vsebujejo binarne podatke. Viri so oštevilčeni z 10 elementi na stran z navigacijo na osnovi kazalec.\n\n## Ključne odvisnosti\n\nObvestila o napredku zahtevajo '_meta.progressToken' v klicih orodij. Naročnine na vire generirajo posodobitve vsakih 10 sekund.\n\n## Značilnosti zmogljivosti\n\nServer samodejno generira sporočila v dnevniku vsakih 20 sekund (filtrirana po trenutni ravni dnevnika), STDERR obvestila vsakih 30 sekund in obvestila o posodobitvi virov vsakih 10 sekund za aktivne naročnine. Spremembe na ravni dnevnika vplivajo na filtriranje sporočil v realnem času.\n\n## Multimodalno testiranje\n\n'complex_prompt' vključuje tako besedilne argumente kot slikovno vsebino za testiranje večmodalnega testiranja odjemalca prekladanje. 'resource_prompt' vgradi dejansko vsebino virov za testiranje ločljivosti referenčnih virov virov.\n\nDopolnjevanje argumentov je na voljo za parametre pozivov in ID-je virov. Predloge virov omogočajo dinamično gradnjo URI po vzorcu 'test://static/resource/{id}'.\n\n## Velikonočno jajce\n\nČe vprašate o navodilih strežnika, odgovorite z \" Navodila strežnika delujejo! Ta odgovor dokazuje, da je odjemalec pravilno posredoval strežniška navodila LLM-ju. To prikazuje funkcijo ukazov MCP v praksi.\"\n"},"jsonrpc":"2.0","id":1} Po uspešni inicializaciji odjemalec pošlje MCP strežniku obvestilo, da je pripravljen, z naslednjo zahtevo:
Odkrivanje orodij: Ko je povezava vzpostavljena, lahko odjemalec odkrije razpoložljiva orodja s pošiljanjem zahteve za orodje/seznam. Ta zahteva je osnova mehanizma za odkrivanje orodij MCP – omogoča odjemalcem, da vedo, katera orodja so na voljo na strežniku, preden jih poskusijo uporabiti. Prošnja se glasi:
Odgovor je naslednji:
{"result":{"tools":[{"name":"echo","description":"Odjeci nazaj vhod","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":"Added two numbers"," 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":"Demonstrira dolgo delujočo operacijo s posodobitvami napredka","inputSchema":{"type":"object","properties":{"duration":{"type":"number","default":10,"description":"Duration of the operation in seconds"},"steps":{" type":"number","default":5,"description":"Number of steps in the operation"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":" printEnv","description":"Izpisuje vse okoljske spremenljivke, koristno za odpravljanje napak pri konfiguraciji MCP strežnika","inputSchema":{"type":"object","properties":{},"additionalProperties" ":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"sampleLLM","description":"Vzorci iz LLM z uporabo MCP-jeve funkcije vzorčenja","inputSchema":{"type":" object","properties":{"prompt":{"type":"string","description":"The prompt to send na LLM"},"maxTokens":{"type":"number","default":100,"description":"Maksimalno število žetoni za generiranje"}},"required":["prompt"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"getTinyImage","description":" Vrne MCP_TINY_IMAGE","inputSchema":{"type":"object","properties":{},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":" annotatedMessage","description":"Prikazuje, kako se lahko anotacije uporabijo za zagotavljanje metapodatkov o vsebini","inputSchema":{"type":"object","properties":{"messageType":{"type": "string","enum":["error","success","debug"],"description":"Tip sporočila za prikaz različnih vzorcev označevanja"},"includeImage":{"type":"boolean","default":false," description":"Ali vključiti primer slike"}},"required":["messageType"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name": "getResourceReference","description":"Vrne referenco na vir, ki jo lahko uporabljajo MCP odjemalci","inputSchema":{"type":"object","properties":{"resourceId":{"type":"number"," minimum":1,"maximum":100,"description":"ID vira za referenco (1-100)"}},"required":["resourceId"],"additionalProperties":false,"$schema":" http://json-schema.org/draft-07/schema#"}},{"name":"getResourceLinks","description":"Vrne več povezav do virov, ki se sklicujejo na različne vrste virov","inputSchema" :{"type":"object","properties":{"count":{"type":"number","minimum":1,"maximum":10,"default":3,"description":"Number of resource links, to return (1-10)"}}," additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"structuredContent","description":"Vrne strukturirano vsebino skupaj z izhodom schema za validacijo podatkov odjemalca","inputSchema":{"type":"object","properties":{"location":{"type":"string","minLength":1,"description":"ime mesta ali poštna številka"}},"required":[ "location"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","properties":{"temperature":{"type":" število","opis":"Temperatura v celziju"},"pogoji":{"tip":"niz","opis":"opis vremenskih razmer"},"vlažnost":{"tip":"številka","opis":" Odstotek vlažnosti"}},"required":["temperature","condition","humidity"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":" startElicitation","description":"Prikazuje funkcijo Elicitation tako, da uporabnika prosi, naj posreduje informacije o svoji najljubši barvi, številki in hišnih ljubljenčkih.","inputSchema":{"type":" objekt","properties":{},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}]},"jsonrpc":"2.0","id":2} Izvajanje orodij: Odjemalci lahko zdaj izvajajo orodja/klice orodij s to metodo. To prikazuje MCP primitiva v akciji: Ko so orodja odkrita, jih odjemalec lahko pokliče z ustreznimi parametri. da biKot primer imenujemo odmevno funkcijoZahteva je naslednja:
Odgovor je naslednji:
{"result":{"content":[{"type":"text","text":"Echo: živjo, moje ime je itsvse"}]},"jsonrpc":"2.0","id":3} Kot je prikazano spodaj:
(Konec) |