Kysyntä: Suurten mallien kehittyessä suuria malleja on ilmestynyt kaikilla elämän osa-alueilla, olipa kyse työstä tai opiskelusta, ne ovat erottamattomat. Miksi tarvitsemme MCP:tä suurella mallikielellä? Suurta mallia voidaan ymmärtää aivoina, mutta aivot yksin eivät voi auttaa meitä tekemään asioita, MCP on enemmänkin raaja, suuri malli ohjaa MCP-palvelua tekemään asioita, kuten: kutsumaan ulkoisia työkaluja (kuten tietokantoja, levyjä, API-rajapintoja). Se ratkaisee ongelman, että suuret mallit voivat vain jutella eivätkä pysty tekemään asioita.
MCP (Model Context Protocol)
Dokumentaatio:Hyperlinkin kirjautuminen on näkyvissä. GitHub-repositoriot:Hyperlinkin kirjautuminen on näkyvissä. MCP-työkaluvarasto:Hyperlinkin kirjautuminen on näkyvissä.
MCP (Model Context Protocol) on avoimen lähdekoodin standardi tekoälysovellusten yhdistämiseen ulkoisiin järjestelmiin.
MCP:n avulla tekoälysovellukset kuten Claude tai ChatGPT voivat yhdistää tietolähteisiin (esim. paikallisiin tiedostoihin, tietokantoihin), työkaluihin (esim. hakukoneet, laskimiet) ja työnkulkuihin (esim. erikoistuneet kehotteet) – mahdollistaen kriittisen tiedon pääsyn ja tehtävien suorittamisen.
Ajattele MCP:tä USB-C-porttina tekoälysovelluksiin. Aivan kuten USB-C tarjoaa standardoidun tavan yhdistää elektronisia laitteita, MCP tarjoaa standardoidun tavan yhdistää tekoälysovelluksia ulkoisiin järjestelmiin.
Mitä MCP voi saavuttaa?
- Agentit voivat käyttää Google-kalenteriasi ja Notionia, jotka toimivat henkilökohtaisempana tekoälyavustajana.
- Claude Code voi luoda kokonaisia web-sovelluksia Figma-suunnitelmien avulla.
- Yrityschatbotit voivat yhdistää useisiin organisaation tietokantoihin, jolloin käyttäjät voivat analysoida dataa chatin kautta.
- Tekoälymallit voivat luoda 3D-suunnitelmia Blenderillä ja tulostaa ne 3D-tulostimella.
Miksi MCP on tärkeä?
Riippuen siitä, missä päin ekosysteemiä olet, MCP voi tarjota monia etuja.
- Kehittäjät: MCP vähentää kehitysaikaa ja monimutkaisuutta, kun sitä rakennetaan tai integroidaan tekoälysovellusten tai agenttien kanssa.
- Tekoälysovellukset tai agentit: MCP:t tarjoavat pääsyn tietolähteiden, työkalujen ja sovellusten ekosysteemiin, mikä parantaa toiminnallisuutta ja loppukäyttäjäkokemusta.
- Loppukäyttäjät: MCP:t voivat johtaa tehokkaampiin tekoälysovelluksiin tai agentteihin, jotka voivat päästä käsiksi tietoihisi ja toimia puolestasi tarvittaessa.
MCP-protokolla
MCP koostuu kahdesta kerroksesta:
- Tietokerros: Määrittele JSON-RPC-pohjainen asiakas-palvelin-viestintäprotokolla, mukaan lukien elinkaaren hallinta sekä ydinelementit kuten työkalut, resurssit, kehotteet ja ilmoitukset.
- Kuljetuskerros: Määrittelee viestintämekanismit ja kanavat, jotka mahdollistavat tiedonvaihdon asiakkaiden ja palvelimien välillä, mukaan lukien kuljetuskohtainen yhteys, viestikehykset ja valtuutuksen.
Käsitteellisesti datakerros on sisempi kerros, kun taas siirtokerros on ulompi kerros.
Tietokerros
- Tietokerros toteuttaa JSON-RPC 2.0 -pohjaisen kytkentäprotokollan, joka määrittelee viestirakenteen ja semantiikan. Tämä kerros sisältää:
- Elinkaaren hallinta: Hoitaa yhteyden alustamisen, ominaisuuksien neuvottelun ja yhteyden päättämisen asiakkaiden ja palvelimien välillä
- Palvelintoiminnallisuus: Mahdollistaa palvelimelle ydintoimintojen, mukaan lukien työkalut tekoälytoimintoihin, resurssit kontekstuaalisille datalle sekä interaktiivisia mallipohjakehotuksia asiakkailta ja asiakkaille
- Asiakastoiminnallisuus: Mahdollistaa palvelimen vaatia asiakasta ottamaan näytteen isäntä-LLM:stä, saamaan käyttäjältä syötteen ja lokimaan viestejä asiakkaalle
- Hyödylliset ominaisuudet: Tukee lisäominaisuuksia, kuten reaaliaikaisia päivitysilmoituksia ja edistymisen seurantaa pitkäaikaisissa toiminnoissa
Kuljetuskerros
Kuljetuskerros hallinnoi viestintäkanavia ja autentikointia asiakkaan ja palvelimen välillä. Se hoitaa yhteyden muodostamisen, viestinsiirron ja turvallisen viestinnän MCP-osallistujien välillä.
MCP tukee kahta siirtomekanismia:
- Stdio Transport: Suora prosessiviestintä paikallisten prosessien välillä samalla koneella käyttäen standardeja syöttö-/lähtövirtoja, tarjoten optimaalisen suorituskyvyn ilman verkon ylikuormitusta.
- Suoratoistettava HTTP: Käyttää HTTP POST -protokollaa asiakas-palvelimelle -viestien lähettämiseen ja käyttää tarvittaessa palvelimen lähettämiä tapahtumia suoratoistotoimintoihin. Tämä siirtoprotokolla tukee etäpalvelinviestintää ja tukee standardeja HTTP-tunnistautumismenetelmiä, kuten holder-tokenit, API-avaimet ja mukautetut otsikot. MCP suosittelee OAuthia tunnistautumistokenin saamiseksi.
Kuljetuskerros abstrahoi viestintätiedot protokollakerroksesta, jolloin sama JSON-RPC 2.0 -viestimuoto toteutetaan kaikissa siirtomenetelmissä.JSON-RPC-viestien on oltava UTF-8-koodattuja。HTTP+SSE-siirto on poistettu käytöstä!
Kaikki MCP-palvelin
Tämä MCP-palvelin on suunniteltu testaamaan kaikkia MCP-protokollan ominaisuuksia. Sen ei ole tarkoitus olla käytännöllinen palvelin, vaan testipalvelin MCP-asiakasrakentajille. Se toteuttaa ominaisuuksia kuten kehotteet, työkalut, resurssit, näytteenotto ja paljon muuta esitelläkseen MCP:iden kykyjä.
Lähde:Hyperlinkin kirjautuminen on näkyvissä.
Tämä palvelu vaatii Node.js-ympäristön asentamisen, ja asennusvaiheet jätetään pois.
MCP-palvelun testaamiseksi Stdio-siirtokuvion perusteella käynnistyskomento on seuraava:
Kuten alla on esitetty:
Suorituksen jälkeen paketti välimuistitetaan%LocalAppData%\npm-cache\_npx\Polun alapuolella.
Initialize, asiakas lähettää alustuspyynnön yhteyden muodostamiseksi ja tuettujen ominaisuuksien neuvottelemiseksi. Pyyntötiedot ovat seuraavat:
Vastaus on seuraava:
{"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":"MCP-protokollan ominaisuuksien testaus- ja demonstraatiopalvelin.\n\n## Resurssit\n\n\ nResources 1-100 noudattaa kaavaa: parilliset ID:t sisältävät tekstiä, parittomat ID:t binääridataa. Resurssit on sivutettu 10 kohdetta per sivu kohdistimen avulla navigoinnilla.\n\n## Avainten riippuvuudet\n\nEdistymisilmoitukset vaativat '_meta.progressToken' työkalukutsuissa. Resurssitilaukset tuottavat päivityksiä 10 sekunnin välein.\n\n## Suorituskykyominaisuudet\n\nPalvelin generoi automaattisia lokiviestejä 20 sekunnin välein (suodatettuna nykyisen lokitason mukaan), STDERR-ilmoitukset 30 sekunnin välein ja resurssipäivitykset 10 sekunnin välein aktiivisille tilauksille. Lokitason muutokset vaikuttavat viestin suodatukseen reaaliajassa.\n\n## Multimodaalinen testaus\n\n'complex_prompt' sisältää sekä tekstiargumentteja että kuvasisältöä asiakasmultimodaalin testaamiseen käsittely. 'resource_prompt' upottaa todellisen resurssisisällön resurssiviitteiden resoluution testaamiseen.\n\nArgumenttien täydentäminen on saatavilla prompt-parametreille ja resurssitunnisteille. Resurssipohjat mahdollistavat dynaamisen URI-rakentamisen 'test://static/resource/{id}' -mallin avulla.\n\n## Pääsiäismuna \n\nJos kysytään palvelinohjeista, vastaa \" Palvelinohjeilla toimii! Tämä vastaus todistaa, että asiakas välitti palvelinkäskyt oikein LLM:lle. Tämä havainnollistaa MCP:n ohjetoimintoa toiminnassa.\"\n"},"jsonrpc":"2.0","id":1} Onnistuneen alustuksen jälkeen asiakas lähettää MCP-palvelimelle ilmoituksen, että se on valmis seuraavalla pyynnöllä:
Työkalujen löytäminen: Kun yhteys on muodostettu, asiakas voi löytää saatavilla olevat työkalut lähettämällä työkalu- tai listapyynnön. Tämä pyyntö on MCP:n työkalujen löytömekanismin perusta – se antaa asiakkaille mahdollisuuden tietää, mitä työkaluja palvelimella on ennen niiden käyttöä. Pyyntö kuuluu:
Vastaus on seuraava:
{"result":{"tools":[{"name":"echo","description":"Echoes back the 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":"Lisää kaksi numeroa", 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":"Demonstroi pitkän operaation edistymispäivityksillä","inputSchema":{"type":"object","properties":{"duration":{"type":"number","default":10,"description":"Operaation kesto sekunteina"},"steps":{" type":"number","default":5,"description":"Vaiheiden määrä operaatiossa"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":" printEnv","description":"Tulostaa kaikki ympäristömuuttujat, hyödyllistä MCP-palvelimen konfiguraatioiden debuggauksessa", "inputSchema":{"type":"object","properties":{},"additionalProperties ":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"sampleLLM","description":"Näytteitä LLM:stä MCP:n näytteenottoominaisuuden avulla","inputSchema":{"type":" object","properties":{"prompt":{"type":"string","description":"The prompt to send to the LLM"},"maxTokens":{"type":"number","default":100,"description":"Maximum number of tokenit generointiin"}},"required":["prompt"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"getTinyImage","description":" Palauttaa MCP_TINY_IMAGE","inputSchema":{"type":"object","properties":{},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":" annotatedMessage","description":"Näyttää, miten annotaatioita voidaan käyttää sisällön metatietojen tuottamiseen", "inputSchema":{"type":"object","properties":{"messageType":{"type": "string","enum":["error","success","debug"],"description":"Type of message to demonstration different annotation patterns"},"includeImage":{"type":"boolean","default":false," description":"Sisällytetäänkö esimerkkikuva"}},"required":["messageType"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name": "getResourceReference","description":"Palauttaa resurssiviitteen, jota MCP-asiakkaat voivat käyttää","inputSchema":{"type":"object","properties":{"resourceId":{"type":"number"," minimum":1,"maximum":100,"description":"viitattavan resurssin ID (1-100)"}},"required":["resourceId"],"additionalProperties":false,"$schema":" http://json-schema.org/draft-07/schema#"}},{"name":"getResourceLinks","description":"Palauttaa useita resurssilinkkejä, jotka viittaavat erilaisiin resurssityyppeihin", "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":"Palauttaa rakenteellista sisältöä yhdessä tuloksen kanssa skeema asiakasdatan validointiin","inputSchema":{"type":"object","properties":{"location":{"type":""string","minLength":1,"description":"Kaupungin nimi tai postinumero"}},"required":[ "location"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","properties":{"temperature":{"type":" number","description":"Lämpötila celsius"},"conditions":{"type":"string","description":"Weather conditions description"},"humidity":{"type":"number","description":" Kosteusprosentti"}},"required":["temperature","conditions","moisture"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":" startElicitation","description":"Esittelee Elicitation-ominaisuuden pyytämällä käyttäjää antamaan tietoa suosikkiväristään, numerostaan ja lemmikeistään.","inputSchema":{"type":" object","properties":{},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}]},"jsonrpc":"2.0","id":2} Työkalun suoritus: Asiakkaat voivat nyt suorittaa työkalutyökaluja/kutsuja tällä menetelmällä. Tämä havainnollistaa MCP-primitiivin toiminnassa: Kun työkalut on löydetty, asiakas voi kutsua niitä oikeilla parametreilla. jottaKaikufunktion kutsuminen esimerkkinäPyyntö on seuraava:
Vastaus on seuraava:
{"result":{"content":[{"type":"text","text":"Echo: hei, nimeni on itsvse"}]},"jsonrpc":"2.0","id":3} Kuten alla on esitetty:
(Loppu) |