Tietopankki

Model Context Protocol (MCP) – Mikä se on ja miksi haluamme ottaa sen käyttöön?

8. syyskuuta 2025

Model Context Protocol (MCP) on avoin standardi tekoälysovellusten yhdistämiseen ulkoisiin järjestelmiin tietojen lukemista tai toimintojen suorittamista varten. MCP:n avulla käyttäjän konteksti säilyy, jolloin voi hakea vain sellaista dataa, johon itsellä on pääsy, ja suorittaa vain sellaisia toimintoja, joihin itsellä on oikeus.

Tekoälyjärjestelmien kehitys etenee nopeasti. Suuri osa kehityksestä johtuu parempien kielimallien ansiosta, mutta kehitystä ajavat ensisijaisesti muut tekijät. MCP on yksi tällainen tekijä, joka on saanut viime aikoina jonkin verran huomiota.

Vaikka kielimalleja voi sellaisenaan käyttää monien tehtävien ratkaisemiseen, niillä on joitakin rajoituksia:

  1. Ne ovat vain esitys koulutusdatasta, eivät todellisuudesta. Kielimalleilla itsellään ei ole pääsyä reaaliaikaiseen dataan, ja kaikki datapohjan virheet heijastuvat malliin. Kielimallit eivät ole faktamalleja.
  2. Kielimallit on koulutettu vain julkisesti saatavilla olevalla datalla. Kielimallit eivät tiedä yrityksesi datasta eikä niillä ole siihen pääsyä.
  3. Kielimallit eivät voi olla vuorovaikutuksessa ulkomaailman kanssa.

Et välttämättä tunne näitä rajoituksia, koska olet kokenut, että esimerkiksi ChatGPT voi hakea verkosta. ChatGPT ei ole kielimalli vaan keskustelupalvelu. Internetistä ei hae kielimalli, vaan chat-sovellus. Markkinoille on tullut myös useita muita palveluita, jotka antavat vaikutelman, että kielimallit olisivat saaneet täysin uusia ja läpimurtavia kykyjä. Yhteinen nimittäjä on täysin uusi protokolla nimeltä Model Context Protocol, MCP. MCP:n ymmärtämiseksi katsotaan tekoälytyökalujen kehitystä marraskuusta 2023 tähän päivään.

Yksinkertainen vuorovaikutus kielimallin kanssa

MCP-infografiikka, joka näyttää, miten chat-asiakasohjelmat lähettävät kehotteita LLM:lle ja saavat tietoa takaisin

Lähes kaikki tekoälychat-palvelut noudattivat alussa tätä suhteellisen yksinkertaista arkkitehtuuria. Chat-palvelu, kuten esimerkiksi Intility GPT, koostui kahdesta pääkomponentista:

  1. Chat-asiakasohjelma: Hallinnoi käyttäjän syötettä, viestihistoriaa jne.
  2. Large Language Model (LLM): Vastaanottaa syötteen (prompt) ja tuottaa tulosteen (completion).

Tällaiset palvelut toimivat erinomaisesti esimerkiksi kääntämiseen, tiivistämiseen, suurten tekstimäärien analysointiin ja koodin vianmääritykseen. Monet tehtävät ratkaistaan nykyään ja tulevaisuudessa tällaisella palvelulla.

On kuitenkin useita tehtäviä, joita näin yksinkertainen palvelu ei pysty ratkaisemaan. Kysymykset, jotka edellyttävät pääsyä yksityisiin, omistettuihin tietoihin, internet-hakuja reaaliaikaista tietoa varten tai toimintojen suorittamista ulkoisessa ympäristössä, eivät olleet mahdollisia. Ratkaisuksi tuli arkkitehtuurin laajentaminen työkaluilla.

Kielimalli + työkalut

Sama infografiikka kuin aiemmin, mutta eri työkalut ja palvelut tuottavat syötettä chat-asiakasohjelmille

Työkalujen käyttöönotolla ei aluksi ollut mitään tekemistä kielimallin kanssa; se oli chat-asiakasohjelmien laajennus. Pelkän chat-asiakasohjelman ja kielimallin välisen viestinnän sijaan meillä on tämä kulku:

  1. Käyttäjän syöte: Voitko auttaa minua asiassa XYZ?
  2. Kielimalli vastaa jommallakummalla tavalla:
    1. En voi vastata tähän, mutta käytä työkalua XXX syötteellä YYY ja lähetä tulos takaisin minulle, jotta voin auttaa sinua
    2. Totta kai voin auttaa sinua asiassa XYZ.
  3. Edellisen vaiheen tuloksesta riippuen chat-asiakasohjelma joko:
    1. Kutsuu työkalua XXX syötteellä YYY ja lähettää tuloksen takaisin kielimallille. Kielimalli tuottaa vastauksen, joka esitetään käyttäjälle.
    2. Esittää vastauksen käyttäjälle

Tämän laajennuksen ansiosta chat-palvelulla on enemmän käyttötarkoituksia ja se voi ratkaista yhä useampia ongelmia. Yleisesti käytettyjä työkaluja ovat esimerkiksi:

  • Verkkohaku
  • Dokumenttien haku ja käsittely
  • Koodin suoritus
  • Kuvien luonti

Teoriassa ei ole rajoja sille, mitä työkaluja voidaan luoda ja tarjota chat-asiakasohjelman käyttöön. Voit liittää niin monta dokumenttia, erikoissovellusta ja yksityistä tietolähdettä kuin haluat, kunhan kehittäjä voi kirjoittaa niihin koodin.

Vaikka tämä kuulostaa erittäin lupaavalta, siinä on joitakin tärkeitä rajoituksia:

  1. Luomasi työkalut ovat tiiviisti sidoksissa asiakasohjelmaan. Näitä työkaluja ei voi jakaa muiden asiakasohjelmien kanssa, mikä johtaa koodin päällekkäisyyteen.
  2. Pääsy- ja käyttöoikeuksien hallintaan laajassa mittakaavassa ei ole yksinkertaista tapaa. Vastuu päänhallinnan toteuttamisesta jää asiakasohjelman kehittäjälle. Tämä on tietoturvariski.

Nämä rajoitukset ovat johtaneet siihen, että ammattimaisia sovelluksia ei ole voitu integroida saumattomasti esimerkiksi Intility GPT:n kaltaisiin palveluihin. Tässä MCP astuu kuvaan ratkaisemaan nämä haasteet.

Kielimalli + MCP

Sama infografiikka kuin aiemmin, mutta MCP:t on lisätty työkalujen ja chat-asiakasohjelmien väliin, ja käyttäjä myöntää MCP:ille ja chat-asiakasohjelmille identiteetin ja käyttöoikeudet

MCP:tä käyttävä arkkitehtuuri on melko samankaltainen, mutta kaaviossamme on uusi komponentti: MCP-palvelin. MCP-palvelin toimii standardoituna siltana asiakasohjelman ja ulkoisten järjestelmien välillä. Muita tärkeitä muutoksia yllä olevassa kaaviossa:

  1. Chat-asiakasohjelmasta MCP-asiakasohjelmiksi: Asiakasohjelman on tuettava protokollaa, ja kaikkia sitä tukevia asiakasohjelmia kutsutaan MCP-asiakasohjelmiksi. MCP-asiakasohjelma voi kommunikoida mininkä tahansa MCP-palvelimen kanssa.
  2. Käyttäjä: Olemme ottaneet mukaan käyttäjän ja sen, miten käyttäjän identiteettiä hyödynnetään MCP-palvelimen ja ulkoisen palvelun välillä. On erittäin tärkeää, että MCP-palvelin käyttää käyttäjän kontekstia käyttäjän oikeuksien säilyttämiseksi.

MCP:n voima on siinä, että jos sinulla on MCP-asiakasohjelma, voit käyttää mitä tahansa MCP-palvelinta.

Kuka luo MCP-palvelimen?

Teoriassa kuka tahansa voi luoda MCP-palvelimen. Ainoa vaatimus on ohjelmallinen pääsy järjestelmään tai tietolähteeseen, jonka kanssa työskennellään. Tyypillisesti näkee 3 muunnelmaa:

  1. Sovellustoimittaja luo MCP-palvelimen omalle sovellukselleen. Tänään olemassa olevia esimerkkejä ovat GitHub, PayPal ja Stripe.
  2. Yhteisö/MCP as a Service: Avoimena lähdekoodina on saatavilla laaja valikoima MCP-palvelimia, joita voi ajaa omalla infrastruktuurilla ilman kustannuksia. On myös MCP-palvelimien tarjoajia, jotka tarjoavat tätä maksua vastaan.
  3. Luo se itse. Kunhan kohdejärjestelmällä on API, voit luoda MCP-palvelimia itse. Näin voit räätälöidä sen omiin tarpeisiisi.

Rakenna tulevaisuutta varten ja vältä toimittajasidonnaisuus (”vendor lock-in”)

MCP on avoin standardi, joka erottaa itse integraation (MCP-palvelimen) sekä asiakasohjelmasta että kielimallista. Tämä tarkoittaa, ettei yhteyksiä järjestelmiisi ole upotettu yhteen tiettyyn chat-palveluun tai toimittajakohtaiseen rajapintaan. Lyhyesti: rakennat kerran ja käytät uudelleen eri työkaluissa ja ympäristöissä.

MCP-palvelinta voi käyttää eri MCP-asiakasohjelmista ja eri malleilla. MCP-palvelimia voi myös ajaa siellä, missä data sijaitsee (on-prem, sovereign, public cloud, edge), ja ne voidaan tarjota turvallisesti protokollan kautta.