Skip to content

Latest commit

 

History

History
311 lines (232 loc) · 15.8 KB

File metadata and controls

311 lines (232 loc) · 15.8 KB

Johdanto Model Context Protocoliin (MCP): Miksi se on tärkeä skaalautuville tekoälysovelluksille

Generatiiviset tekoälysovellukset ovat merkittävä askel eteenpäin, sillä ne usein mahdollistavat käyttäjän vuorovaikutuksen sovelluksen kanssa luonnollisella kielellä annettujen kehotteiden avulla. Kuitenkin, kun tällaisiin sovelluksiin investoidaan enemmän aikaa ja resursseja, haluat varmistaa, että voit helposti integroida toiminnallisuuksia ja resursseja siten, että sovellusta on helppo laajentaa, se pystyy tukemaan useamman mallin käyttöä ja käsittelemään erilaisia mallien erityispiirteitä. Lyhyesti sanottuna, generatiivisten tekoälysovellusten rakentaminen on aluksi helppoa, mutta niiden kasvaessa ja monimutkaistuessa on tarpeen alkaa määritellä arkkitehtuuria ja todennäköisesti tukeutua standardiin, joka varmistaa sovellusten rakentamisen johdonmukaisesti. Tässä kohtaa MCP astuu kuvaan järjestämään asioita ja tarjoamaan standardin.


🔍 Mikä on Model Context Protocol (MCP)?

Model Context Protocol (MCP) on avoin, standardoitu rajapinta, joka mahdollistaa suurten kielimallien (LLM) saumattoman vuorovaikutuksen ulkoisten työkalujen, API:en ja tietolähteiden kanssa. Se tarjoaa yhtenäisen arkkitehtuurin, joka laajentaa tekoälymallien toiminnallisuutta niiden koulutusdatan ulkopuolelle, mahdollistaen älykkäämmät, skaalautuvat ja reagoivammat tekoälyjärjestelmät.


🎯 Miksi standardisointi tekoälyssä on tärkeää

Generatiivisten tekoälysovellusten monimutkaistuessa on välttämätöntä omaksua standardeja, jotka takaavat skaalautuvuuden, laajennettavuuden ja ylläpidettävyyden. MCP vastaa näihin tarpeisiin:

  • Yhdistelemällä mallien ja työkalujen integraatiot
  • Vähentämällä hauraita, kertaluonteisia räätälöityjä ratkaisuja
  • Mahdollistamalla useiden mallien rinnakkaisen käytön yhdessä ekosysteemissä

📚 Oppimistavoitteet

Tämän artikkelin lopussa osaat:

  • Määritellä Model Context Protocolin (MCP) ja sen käyttötapaukset
  • Ymmärtää, miten MCP standardisoi mallin ja työkalun välisen viestinnän
  • Tunnistaa MCP-arkkitehtuurin keskeiset osat
  • Tutkia MCP:n käytännön sovelluksia yritys- ja kehitysympäristöissä

💡 Miksi Model Context Protocol (MCP) on mullistava

🔗 MCP ratkaisee tekoälyn vuorovaikutuksen pirstaloitumisen

Ennen MCP:tä mallien integrointi työkaluihin vaati:

  • Räätälöityä koodia jokaista työkalu-malli-paria varten
  • Ei-standardisoituja API-rajapintoja jokaiselta toimittajalta
  • Usein katkoksia päivitysten vuoksi
  • Huonoa skaalautuvuutta työkalujen määrän kasvaessa

✅ MCP-standardisoinnin hyödyt

Hyöty Kuvaus
Yhteensopivuus LLM:t toimivat saumattomasti eri toimittajien työkalujen kanssa
Johdonmukaisuus Tasainen käyttäytyminen eri alustoilla ja työkaluissa
Uudelleenkäytettävyys Kerran rakennettuja työkaluja voi käyttää useissa projekteissa ja järjestelmissä
Kehityksen nopeutuminen Kehitysaikaa säästyy standardoitujen, plug-and-play-rajapintojen ansiosta

🧱 MCP-arkkitehtuurin yleiskatsaus

MCP perustuu asiakas-palvelin-malliin, jossa:

  • MCP Hosts ajavat tekoälymalleja
  • MCP Clients tekevät pyyntöjä
  • MCP Servers tarjoavat kontekstin, työkalut ja ominaisuudet

Keskeiset osat:

  • Resurssit – Staattista tai dynaamista dataa malleille
  • Kehotteet – Ennalta määriteltyjä työnkulkuja ohjattuun generointiin
  • Työkalut – Suoritettavia toimintoja, kuten haku, laskenta
  • Näytteenotto – Agenttikäyttäytyminen rekursiivisten vuorovaikutusten kautta

Miten MCP-palvelimet toimivat

MCP-palvelimet toimivat seuraavasti:

  • Pyyntöjen kulku:

    1. MCP Client lähettää pyynnön AI-mallille, joka toimii MCP Hostissa.
    2. AI-malli tunnistaa, milloin se tarvitsee ulkoisia työkaluja tai dataa.
    3. Malli kommunikoi MCP-palvelimen kanssa standardoidun protokollan avulla.
  • MCP-palvelimen toiminnot:

    • Työkalurekisteri: Pitää kirjaa saatavilla olevista työkaluista ja niiden ominaisuuksista.
    • Autentikointi: Varmistaa käyttöoikeudet työkalujen käyttöön.
    • Pyyntöjen käsittelijä: Käsittelee mallilta tulevat työkalupyyntöjä.
    • Vastausten muotoilija: Jäsentää työkalujen tuottamat tulokset mallin ymmärtämään muotoon.
  • Työkalujen suoritus:

    • Palvelin ohjaa pyynnöt oikeille ulkoisille työkaluilla
    • Työkalut suorittavat erikoistuneet tehtävänsä (haku, laskenta, tietokantakyselyt jne.)
    • Tulokset palautetaan mallille yhtenäisessä muodossa.
  • Vastauksen viimeistely:

    • AI-malli yhdistää työkalujen tulokset vastaukseensa.
    • Lopullinen vastaus lähetetään takaisin asiakassovellukselle.
---
title: MCP Server Architecture and Component Interactions
description: A diagram showing how AI models interact with MCP servers and various tools, depicting the request flow and server components including Tool Registry, Authentication, Request Handler, and Response Formatter
---
graph TD
    A[AI Model in MCP Host] <-->|MCP Protocol| B[MCP Server]
    B <-->|Tool Interface| C[Tool 1: Web Search]
    B <-->|Tool Interface| D[Tool 2: Calculator]
    B <-->|Tool Interface| E[Tool 3: Database Access]
    B <-->|Tool Interface| F[Tool 4: File System]
    
    Client[MCP Client/Application] -->|Sends Request| A
    A -->|Returns Response| Client
    
    subgraph "MCP Server Components"
        B
        G[Tool Registry]
        H[Authentication]
        I[Request Handler]
        J[Response Formatter]
    end
    
    B <--> G
    B <--> H
    B <--> I
    B <--> J
    
    style A fill:#f9d5e5,stroke:#333,stroke-width:2px
    style B fill:#eeeeee,stroke:#333,stroke-width:2px
    style Client fill:#d5e8f9,stroke:#333,stroke-width:2px
    style C fill:#c2f0c2,stroke:#333,stroke-width:1px
    style D fill:#c2f0c2,stroke:#333,stroke-width:1px
    style E fill:#c2f0c2,stroke:#333,stroke-width:1px
    style F fill:#c2f0c2,stroke:#333,stroke-width:1px    
Loading

👨‍💻 Miten rakentaa MCP-palvelin (esimerkkien kera)

MCP-palvelimet mahdollistavat LLM-kyvykkyyksien laajentamisen tarjoamalla dataa ja toiminnallisuutta.

Valmis kokeilemaan? Tässä esimerkkejä yksinkertaisen MCP-palvelimen luomisesta eri kielillä:

🌍 MCP:n käytännön sovellukset

MCP mahdollistaa laajan kirjon sovelluksia laajentamalla tekoälyn kyvykkyyksiä:

Sovellus Kuvaus
Yritysdatan integrointi Yhdistää LLM:t tietokantoihin, CRM-järjestelmiin tai sisäisiin työkaluihin
Agenttipohjaiset tekoälyjärjestelmät Mahdollistaa autonomiset agentit työkalujen käytöllä ja päätöksenteon työnkuluilla
Monimodaaliset sovellukset Yhdistää teksti-, kuva- ja ääni työkalut yhteen yhtenäiseen tekoälysovellukseen
Reaaliaikainen dataintegraatio Tuottaa elävää dataa tekoälyvuorovaikutuksiin tarkempien ja ajantasaisempien tulosten saamiseksi

🧠 MCP = Yleinen standardi tekoälyn vuorovaikutuksille

Model Context Protocol (MCP) toimii yleisenä standardina tekoälyn vuorovaikutuksille, aivan kuten USB-C standardisoi laitteiden fyysiset liitännät. Tekoälyn maailmassa MCP tarjoaa yhtenäisen rajapinnan, jonka avulla mallit (asiakkaat) voivat integroitua saumattomasti ulkoisten työkalujen ja datan tarjoajien (palvelimien) kanssa. Tämä poistaa tarpeen erilaisille, räätälöidyille protokollille jokaiselle API:lle tai tietolähteelle.

MCP-yhteensopiva työkalu (jota kutsutaan MCP-palvelimeksi) noudattaa yhtenäistä standardia. Nämä palvelimet voivat listata tarjoamansa työkalut tai toiminnot ja suorittaa ne, kun tekoälyagentti pyytää. MCP:tä tukevat agenttialustat pystyvät löytämään palvelimien tarjoamat työkalut ja kutsumaan niitä tämän standardoidun protokollan kautta.

💡 Helpottaa tiedon saatavuutta

Työkalujen tarjoamisen lisäksi MCP helpottaa tiedon saatavuutta. Se mahdollistaa sovellusten tarjoavan kontekstia suurille kielimalleille (LLM) yhdistämällä ne erilaisiin tietolähteisiin. Esimerkiksi MCP-palvelin voi edustaa yrityksen dokumenttivarastoa, jolloin agentit voivat hakea tarpeellista tietoa pyynnöstä. Toinen palvelin voi hoitaa tiettyjä toimintoja, kuten sähköpostien lähettämistä tai tietueiden päivittämistä. Agentin näkökulmasta nämä ovat vain työkaluja, joista osa palauttaa dataa (tietokontekstia) ja toiset suorittavat toimintoja. MCP hallinnoi molempia tehokkaasti.

Agentti, joka yhdistyy MCP-palvelimeen, oppii automaattisesti palvelimen saatavilla olevat ominaisuudet ja käytettävissä olevan datan standardoidun muodon kautta. Tämä standardisointi mahdollistaa työkalujen dynaamisen saatavuuden. Esimerkiksi uuden MCP-palvelimen lisääminen agentin järjestelmään tekee sen toiminnot heti käytettäväksi ilman, että agentin ohjeita tarvitsee muuttaa.

Tämä virtaviivainen integraatio vastaa mermaid-kaaviossa kuvattua työnkulkua, jossa palvelimet tarjoavat sekä työkaluja että tietoa, varmistaen saumattoman yhteistyön järjestelmien välillä.

👉 Esimerkki: Skaalautuva agenttiratkaisu

---
title: Scalable Agent Solution with MCP
description: A diagram illustrating how a user interacts with an LLM that connects to multiple MCP servers, with each server providing both knowledge and tools, creating a scalable AI system architecture
---
graph TD
    User -->|Prompt| LLM
    LLM -->|Response| User
    LLM -->|MCP| ServerA
    LLM -->|MCP| ServerB
    ServerA -->|Universal connector| ServerB
    ServerA --> KnowledgeA
    ServerA --> ToolsA
    ServerB --> KnowledgeB
    ServerB --> ToolsB

    subgraph Server A
        KnowledgeA[Knowledge]
        ToolsA[Tools]
    end

    subgraph Server B
        KnowledgeB[Knowledge]
        ToolsB[Tools]
    end
Loading

🔄 Edistyneet MCP-skenaariot, joissa LLM:t ovat myös asiakkaalla

Perus MCP-arkkitehtuurin lisäksi on olemassa edistyneempiä skenaarioita, joissa sekä asiakas että palvelin sisältävät LLM-malleja, mahdollistaen monipuolisemmat vuorovaikutukset:

---
title: Advanced MCP Scenarios with Client-Server LLM Integration
description: A sequence diagram showing the detailed interaction flow between user, client application, client LLM, multiple MCP servers, and server LLM, illustrating tool discovery, user interaction, direct tool calling, and feature negotiation phases
---
sequenceDiagram
    autonumber
    actor User as 👤 User
    participant ClientApp as 🖥️ Client App
    participant ClientLLM as 🧠 Client LLM
    participant Server1 as 🔧 MCP Server 1
    participant Server2 as 📚 MCP Server 2
    participant ServerLLM as 🤖 Server LLM
    
    %% Discovery Phase
    rect rgb(220, 240, 255)
        Note over ClientApp, Server2: TOOL DISCOVERY PHASE
        ClientApp->>+Server1: Request available tools/resources
        Server1-->>-ClientApp: Return tool list (JSON)
        ClientApp->>+Server2: Request available tools/resources
        Server2-->>-ClientApp: Return tool list (JSON)
        Note right of ClientApp: Store combined tool<br/>catalog locally
    end
    
    %% User Interaction
    rect rgb(255, 240, 220)
        Note over User, ClientLLM: USER INTERACTION PHASE
        User->>+ClientApp: Enter natural language prompt
        ClientApp->>+ClientLLM: Forward prompt + tool catalog
        ClientLLM->>-ClientLLM: Analyze prompt & select tools
    end
    
    %% Scenario A: Direct Tool Calling
    alt Direct Tool Calling
        rect rgb(220, 255, 220)
            Note over ClientApp, Server1: SCENARIO A: DIRECT TOOL CALLING
            ClientLLM->>+ClientApp: Request tool execution
            ClientApp->>+Server1: Execute specific tool
            Server1-->>-ClientApp: Return results
            ClientApp->>+ClientLLM: Process results
            ClientLLM-->>-ClientApp: Generate response
            ClientApp-->>-User: Display final answer
        end
    
    %% Scenario B: Feature Negotiation (VS Code style)
    else Feature Negotiation (VS Code style)
        rect rgb(255, 220, 220)
            Note over ClientApp, ServerLLM: SCENARIO B: FEATURE NEGOTIATION
            ClientLLM->>+ClientApp: Identify needed capabilities
            ClientApp->>+Server2: Negotiate features/capabilities
            Server2->>+ServerLLM: Request additional context
            ServerLLM-->>-Server2: Provide context
            Server2-->>-ClientApp: Return available features
            ClientApp->>+Server2: Call negotiated tools
            Server2-->>-ClientApp: Return results
            ClientApp->>+ClientLLM: Process results
            ClientLLM-->>-ClientApp: Generate response
            ClientApp-->>-User: Display final answer
        end
    end
Loading

🔐 MCP:n käytännön hyödyt

Tässä MCP:n käytännön hyödyt:

  • Ajantasaisuus: Mallit pääsevät käsiksi päivitettyyn tietoon koulutusdatan ulkopuolelta
  • Kyvykkyyksien laajennus: Mallit voivat hyödyntää erikoistuneita työkaluja tehtäviin, joihin niitä ei ole koulutettu
  • Harhojen vähentäminen: Ulkoiset tietolähteet tarjoavat faktapohjan
  • Tietosuoja: Arkaluonteinen data voi pysyä suojatuissa ympäristöissä sen sijaan, että se upotettaisiin kehotteisiin

📌 Keskeiset opit

Tärkeimmät opit MCP:n käytöstä:

  • MCP standardisoi tekoälymallien vuorovaikutuksen työkalujen ja datan kanssa
  • Edistää laajennettavuutta, johdonmukaisuutta ja yhteensopivuutta
  • MCP auttaa vähentämään kehitysaikaa, parantamaan luotettavuutta ja laajentamaan mallien kyvykkyyksiä
  • Asiakas-palvelin-arkkitehtuuri mahdollistaa joustavat, laajennettavat tekoälysovellukset

🧠 Harjoitus

Mieti tekoälysovellusta, jonka haluaisit rakentaa.

  • Mitkä ulkoiset työkalut tai data voisivat parantaa sen kyvykkyyksiä?
  • Miten MCP voisi tehdä integraatiosta yksinkertaisempaa ja luotettavampaa?

Lisäresurssit

Mitä seuraavaksi

Seuraavaksi: Luku 1: Keskeiset käsitteet

Vastuuvapauslauseke:
Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua Co-op Translator. Vaikka pyrimme tarkkuuteen, huomioithan, että automaattikäännöksissä saattaa esiintyä virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen alkuperäiskielellä tulee pitää virallisena lähteenä. Tärkeissä asioissa suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä aiheutuvista väärinymmärryksistä tai tulkinnoista.