
Model Context Protocol (MCP) on avoin standardi, joka tarjoaa tekoälymalleille yleisen tavan yhdistyä ulkoisiin työkaluihin, tietolähteisiin ja palveluihin. Sen sijaan, että kirjoittaisit räätälöityä integraatiokoodia jokaiseen malli-työkaluyhdistelmään, kirjoitat yhden MCP-palvelimen, jota kaikki yhteensopivat mallit voivat käyttää. Anthropic loi MCP:n loppuvuodesta 2024, Linux Foundation hallinnoi sitä nykyään, ja OpenAI, Google sekä muu agenttinen tekoälyekosysteemi ovat ottaneet sen käyttöön. Tässä on kaikki, mitä sinun tarvitsee tietää MCP:n ymmärtämiseksi, rakentamiseksi ja käyttöönotoksi.
MCP pähkinänkuoressa
Jos haluat nopean version ennen kuin sukellat 6 000 sanan yksityiskohtiin, tässä se on.
| Attribuutti | Yksityiskohdat |
|---|---|
| Koko nimi | Model Context Protocol (MCP) |
| Luonut | Anthropic (marraskuu 2024), nyt hallinnoi Linux Foundation / AAIF (joulukuu 2025) |
| Mitä se tekee | Yleinen standardi tekoälymallien yhdistämiseksi työkaluihin, dataan ja palveluihin |
| Ratkaistu ongelma | Poistaa M x N määrä räätälöityjä integraatioita, kuten USB-C tekoälylle |
| Ydinprimitiivit | Työkalut (Tools), Resurssit (Resources), Kehotteet (Prompts) ja Näytteenotto (Sampling) |
| Kuljetuskerros | stdio (paikallinen kehitys), Streamable HTTP (tuotanto) |
| Todennus | OAuth 2.1 (vaadittu HTTP-kuljetukselle) |
| SDK:t | Python (FastMCP), TypeScript, Java, Kotlin, C# |
| Ekosysteemin koko | Yli 10 000 aktiivista palvelinta (Linux Foundationin mukaan, joulukuu 2025) |
| Tärkeimmät adoptoijat | Claude, ChatGPT, Gemini, Cursor, VS Code Copilot, Windsurf |
| Spesifikaation tila | Avoin standardi, aktiivisesti kehittyvä (vuoden 2026 tiekartta meneillään) |
| Paras käyttötarkoitus | Tekoälyagentit, jotka tarvitsevat vuorovaikutusta todellisen maailman työkalujen ja datan kanssa |
Nyt pureudutaan kuhunkin näistä, aloittaen siitä, mikä MCP oikeastaan on ja mikä ongelma teki siitä välttämättömän.
Mikä on Model Context Protocol?
Model Context Protocol on avoin, JSON-RPC-pohjainen protokolla, joka standardoi tavan, jolla tekoälymallit löytävät ja ovat vuorovaikutuksessa ulkoisten työkalujen ja datan kanssa. Ajattele sitä HTTP:nä tekoälyintegraatioille – yhteisenä kielenä, jota mikä tahansa malli ja mikä tahansa työkalu voi puhua.
Olet todennäköisesti kuullut USB-C-analogian, ja se on hyödyllinen tiettyyn pisteeseen asti: ennen USB-C:tä jokainen laite tarvitsi oman kaapelinsa. MCP tekee saman tekoälylle, mutta analogia aliarvioi sen merkityksen. USB-C kuljettaa vain dataa ja virtaa. MCP kuljettaa työkalumäärityksiä, datan hakumalleja, uudelleenkäytettäviä kehotemalleja ja antaa jopa palvelinten pyytää valmisteluja (completions) mallilta. Se on rikkaampi protokolla kuin kaapelimetafora antaa ymmärtää.
M x N -ongelma, jonka MCP ratkaisee
Ilman MCP:tä M mallin yhdistäminen N työkaluun vaatii M x N määrä räätälöityjä integraatioita. Oletetaan, että tuet viittä suurta kielimallia (Claude, GPT-4, Gemini, Llama, Mistral) ja niiden tarvitsee päästä käsiksi kymmeneen työkaluun (GitHub, Postgres, Slack, Jira ja niin edelleen). Tämä tarkoittaa 50 räätälöityä integraatiokerrosta, joista jokaisella on oma todennuksensa, virheenkäsittelynsä ja datan muotoilunsa.
MCP:n avulla jokainen malli toteuttaa MCP-asiakasprotokollan kerran, ja jokainen työkalu toteuttaa MCP-palvelimen kerran. Nyt meillä on 5 + 10 = 15 toteutusta 50:n sijaan. Lisäätkö uuden mallin? Se toimii välittömästi kaikkien 10 työkalun kanssa. Lisäätkö uuden työkalun? Kaikki 5 mallia voivat käyttää sitä.
Lyhyt historia MCP:stä
Anthropic julkaisi MCP:n avoimena lähdekoodina marraskuussa 2024 yhdessä Python- ja TypeScript-SDK:iden sekä Claude Desktop -liittimien kanssa. Adoptio eteni nopeasti. OpenAI lisäsi MCP-tuen ChatGPT:hän maaliskuussa 2025. Google seurasi perässä Geminin osalta huhtikuussa 2025. Joulukuuhun 2025 mennessä Anthropic lahjoitti MCP:n Linux Foundationin uudelle Agentic AI Foundationille (AAIF), joka perustettiin yhdessä Blockin ja OpenAI:n kanssa, tehden MCP:stä toimittajariippumattoman standardin, jota hallinnoidaan toimialakohtaisesti.
Mitä MCP EI ole:
- Ei malli eikä tekoälykehys (se on protokolla, kuten HTTP)
- Ei korvaaja LangChainille tai LlamaIndexille (ne ovat orkestrointikerroksia; MCP sijaitsee niiden alapuolella)
- Ei rajoitettu Anthropiciin tai Claudeen (se on suunniteltu malliriippumattomaksi)
- Ei sama asia kuin funktiokutsut (lisää tästä vertailuosiossa)
Miten MCP toimii? Syvällinen katsaus arkkitehtuuriin
MCP:ssä on kolme roolia, ja niiden sekoittaminen on yleisin aloittelijan virhe. Selvennetään ero.
<!-- IMAGE: MCP arkkitehtuurikaavio, joka näyttää isäntä-, asiakas- ja palvelinroolit todellisilla esimerkeillä kuten Claude Desktop, GitHub MCP Server, Postgres MCP Server -->Isäntä, asiakas ja palvelin – mikä on ero?
| Komponentti | Rooli | Esimerkkejä | Mitä se tekee |
|---|---|---|---|
| Isäntä (Host) | Sovellus, jonka kanssa käyttäjä on vuorovaikutuksessa | Claude Desktop, Cursor, VS Code | Tarjoaa käyttöliittymän, hallinnoi asiakasinstansseja |
| Asiakas (Client) | Protokollankäsittelijä isännän sisällä | Sisäänrakennettu isäntäsovellukseen | Ylläpitää 1:1-yhteyttä yhteen MCP-palvelimeen |
| Palvelin (Server) | Paljastaa työkalut ja datan MCP:n kautta | GitHub-palvelin, Postgres-palvelin, Slack-palvelin | Kietoo ulkoiset API:t/datat MCP-yhteensopiviin päätepisteisiin |
Tässä on konkreettinen esimerkki: pyydät Claude Desktopia tarkistamaan avoimet GitHub-pull request -pyyntösi. Claude Desktop on isäntä. Sen sisäänrakennettu MCP-asiakas avaa yhteyden GitHub MCP-palvelimeen. Palvelin kutsuu GitHubin API:a, hakee PR:si ja palauttaa tulokset asiakkaalle, joka välittää ne mallille.
Yksi isäntä voi ajaa useita asiakkaita, joista kukin on yhdistetty eri palvelimeen. Näin Claude Desktop voi samanaikaisesti käyttää GitHubia, Postgres-tietokantaasi ja Slacia – kolme erillistä MCP-palvelinta, kolme erillistä asiakasyhteyttä, yksi isäntä.
Miten viestit kulkevat (JSON-RPC 2.0)
Kaikki MCP-viestintä käyttää JSON-RPC 2.0 -protokollaa, kevyttä pyyntö/vastaus-protokollaa. Tältä tools/list-vaihto näyttää langalla:
// Client request: "What tools do you have?"
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}
// Server response: one tool available
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"tools": [
{
"name": "get_weather",
"description": "Get current weather for a city",
"inputSchema": {
"type": "object",
"properties": {
"city": { "type": "string" }
},
"required": ["city"]
}
}
]
}
}Malli lukee nämä työkalumääritykset, päättää milloin niitä kutsutaan käyttäjän pyynnön perusteella, ja asiakas lähettää tools/call-pyynnön takaisin palvelimelle sopivilla argumenteilla.
Yhteyden elinkaari
Jokainen MCP-istunto noudattaa samaa elinkaarta:
- Alustus, asiakas lähettää ominaisuudet, palvelin vastaa omillaan
- Ominaisuuksien neuvottelu, molemmat puolet sopivat tuetuista ominaisuuksista (työkalut, resurssit, kehotteet, näytteenotto)
- Valmis, yhteys on aktiivinen; pyynnöt virtaavat molempiin suuntiin
- Pyynnöt/vastaukset,
tools/call,resources/readjne. - Sammutus, siisti katkaisu
Tämä kädenpuristus varmistaa eteenpäin yhteensopivuuden. Jos palvelin lisää uuden primitiivin, vanhemmat asiakkaat jättävät sen huomiotta elegantisti kaatumisen sijaan.
MCP-primitiivit: Työkalut, resurssit, kehotteet ja näytteenotto
MCP määrittelee neljä primitiiviä, ja avain hyvän MCP-palvelimen suunnitteluun on ymmärtää, kuka kontrolli kussakin on.
| Primitiivi | Kuka kontrolloi | Suunta | Esimerkki | Käyttötarkoitus |
|---|---|---|---|---|
| Työkalut | Malli päättää, milloin kutsuu | Asiakas -> Palvelin | create_github_issue | Toiminnot, joita tekoäly suorittaa autonomisesti |
| Resurssit | Sovellus/käyttäjä valitsee | Asiakas -> Palvelin | file://project/README.md | Kontekstiin liitetty data |
| Kehotteet | Käyttäjä laukaisee | Asiakas -> Palvelin | code_review-malli | Uudelleenkäytettävät vuorovaikutusmallit |
| Näytteenotto | Palvelin pyytää valmistelua | Palvelin -> Asiakas | Palvelin pyytää mallia tiivistämään | Agenttisilmukat, joissa palvelin käyttää LLM:ää |
Työkalut (mallin kontrolloimat)
Työkalut ovat funktioita, joita malli voi kutsua. Palvelin ilmoittaa ne nimellä, kuvauksella ja JSON Schema -syötemäärityksellä. Malli lukee nämä määritykset, ja kun käyttäjän pyyntö sitä vaatii, malli päättää kutsua työkalua.
// Client sends tools/call request
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_weather",
"arguments": { "city": "Berlin" }
}
}Jos olet käyttänyt OpenAI:n funktiokutsuja, työkalut tuntuvat tutuilta, mutta ne on standardoitu kaikissa MCP-yhteensopivissa malleissa.
Resurssit (sovelluksen kontrolloimat)
Resurssit ovat vain-luku-datapäätepisteitä. Toisin kuin työkalut, malli ei päätä hakea resurssia itsestään, vaan isäntäsovellus tai käyttäjä liittää resurssit nimenomaisesti keskustelukontekstiin. Ajattele niitä GET-päätepisteinä: postgres://mydb/users/schema, file://docs/api-reference.md.
Resurssit tukevat tilauksia resources/subscribe:n kautta, joten asiakas voidaan ilmoittaa, kun data muuttuu.
Kehotteet (käyttäjän kontrolloimat)
Kehotteet ovat uudelleenkäytettäviä malleja, jotka MCP-palvelin paljastaa. code_review-kehote voi hyväksyä tiedostopolun ja generoida strukturoidun tarkastuspyynnön. Käyttäjä (tai isännän UI) laukaisee kehotteet nimenomaisesti, malli ei kutsu niitä automaattisesti.
Näytteenotto (palvelimen aloittama), edistynyt
Tämä on primitiivi, jonka useimmat oppaat ohittavat. Näytteenotto antaa palvelimen pyytää asiakasta generoimaan valmistelun LLM:n avulla. Tämä kääntää tavallisen virran: mallin kutsuessa työkalua sijaan työkalu kutsuu mallia.
Miksi? Agenttisilmukat. Kuvittele MCP-palvelin, joka käsittelee tukipyyntöjä. Se lukee pyynnön (resurssi), käyttää sampling/createMessage-kutsua pyytääkseen mallilta tiivistelmän ja käyttää sitten tätä tiivistelmää reitittääkseen pyynnön työkalun kautta. Palvelin orkestroi monivaiheisen työnkulun hyödyntäen mallin älykkyyttä.
Näytteenottoa rajoittaa isäntäsovellus, käyttäjän on hyväksyttävä se, ja isäntä kontrolloi, mitä palvelin voi pyytää. Tämä estää hallitsemattomat silmukat ja säilyttää ihmisen valvonnan.
Rakenna ensimmäinen MCP-palvelimesi: Python ja TypeScript rinnakkain
Teoriaa tarpeeksi. Rakennetaan toimiva MCP-palvelin, joka paljastaa get_weather-työkalun. Näytän sekä Python- että TypeScript-versiot, jotta voit verrata kehittäjäkokemusta ja valita projektiisi sopivan pinon.
Python FastMCP:llä
FastMCP on virallinen korkean tason Python-SDK. Se hoitaa kaiken protokollaputkiston, jotta voit keskittyä työkalulogiikkaasi.
# Install FastMCP
pip install fastmcp# weather_server.py
from fastmcp import FastMCP
mcp = FastMCP("Weather Server")
@mcp.tool()
def get_weather(city: str) -> str:
"""Get the current weather for a city."""
# In production, call a real weather API here
weather_data = {
"Berlin": "Cloudy, 12°C",
"Tokyo": "Sunny, 22°C",
"New York": "Rainy, 8°C",
}
return weather_data.get(city, f"No data for {city}")
if __name__ == "__main__":
mcp.run()Siinä kaikki – 15 riviä. FastMCP päättelee työkalun syöteskeeman Python-tyypitysvihjeistä ja docstringistä. Ei JSON Schema -boilerplatea.
TypeScript virallisella SDK:lla
TypeScript SDK (@modelcontextprotocol/sdk) on hieman eksplisiittisempi, mutta antaa täyden kontrollin skeemamäärityksiin.
# Install the SDK and Zod for schema validation
npm install @modelcontextprotocol/sdk zod// weather-server.ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
const server = new McpServer({
name: "Weather Server",
version: "1.0.0",
});
server.tool(
"get_weather",
"Get the current weather for a city",
{ city: z.string() },
async ({ city }) => {
const weatherData: Record<string, string> = {
Berlin: "Cloudy, 12°C",
Tokyo: "Sunny, 22°C",
"New York": "Rainy, 8°C",
};
return {
content: [
{ type: "text", text: weatherData[city] ?? `No data for ${city}` },
],
};
}
);
const transport = new StdioServerTransport();
await server.connect(transport);TypeScript-versio käyttää Zod-skeemoja tyypitysvihjeiden sijaan ja palauttaa strukturoituja sisältölohkoja. Sanavalmimpi, mutta tyypinturvallisuus on erinomaista.
Yhdistä Claude Desktopiin
Jotta jompikumpi palvelin saadaan kytketyksi Claude Desktopiin, lisää se claude_desktop_config.json-tiedostoosi:
{
"mcpServers": {
"weather-python": {
"command": "python",
"args": ["weather_server.py"],
"cwd": "/path/to/your/project"
},
"weather-typescript": {
"command": "npx",
"args": ["tsx", "weather-server.ts"],
"cwd": "/path/to/your/project"
}
}
}Käynnistä Claude Desktop uudelleen, ja molemmat sääpalvelimet ilmestyvät työkaluluetteloon. Kysy "Mikä sää on Berliinissä?", ja malli kutsuu get_weather-työkalusi automaattisesti.
Testaa MCP Inspectorilla
Ennen kuin kytket palvelimesi isäntään, testaa sitä eristettynä MCP Inspectorilla:
npx @modelcontextprotocol/inspector python weather_server.pyInspector avaa selaimen käyttöliittymän, jossa näet löydetyt työkalut, voit kutsua niitä manuaalisesti ja tarkastella JSON-RPC-viestejä, jotka kulkevat edestakaisin. Se on MCP-ekosysteemin paras debuggaustyökalu, käytä sitä varhain ja usein.
MCP-kuljetuskerrokset: stdio kehitykseen, Streamable HTTP tuotantoon
MCP-viestit tarvitsevat tavan kulkea asiakkaan ja palvelimen välillä. Tämä on kuljetuskerros, ja oikean valinta on tärkeä.
| Kuljetus | Käyttötarkoitus | Edut | Haitat | Tila |
|---|---|---|---|---|
| stdio | Paikallinen kehitys, henkilökohtaiset työkalut | Ei konfigurointia, yksinkertainen, nopea | Vain samalla koneella | Aktiivinen |
| Streamable HTTP | Tuotanto, etäpalvelimet, monikäyttäjä | Toimii verkon yli, tukee striimausta SSE:n kautta, tilaton-ystävällinen | Vaatii HTTP-palvelimen, tarvitsee todennuksen | Aktiivinen (2025 spesifikaatio) |
| HTTP+SSE (vanha) | Vanha etäkuljetus | Oli alkuperäinen etävaihtoehto | Korvattu Streamable HTTP:llä | Vanhentunut |
stdio toimii käynnistämällä MCP-palvelimen aliprosessina ja kommunikoimalla stdin/stdout:n kautta. Sitä käytit yllä olevassa oppaassa, ei portteja, ei TLS:ää, ei todennusta. Täydellinen kehitykseen ja yhden käyttäjän paikallisiin työkaluihin.
Streamable HTTP on tuotantokuljetus, lisätty vuoden 2025 spesifikaatiopäivityksessä. Asiakkaat lähettävät standardeja HTTP POST -pyyntöjä palvelimelle. Palvelin voi vastata synkronisesti tai avata SSE-striimin pidemmille operaatioille. Se on tilaton-ystävällinen, toimii kuormantasaimien takana ja tukee standardia HTTP-todennusta.
Jos näet vanhempia oppaita, jotka mainitsevat "HTTP+SSE":n kahtena erillisenä kuljetuksena (yksi lähettämiseen, yksi vastaanottamiseen), se on vanhentunut lähestymistapa. Streamable HTTP yhdistää molemmat yhdeksi, siistiksi mekanismiksi.
Päätös on suoraviivainen: käytä stdio:ta kehittäessäsi paikallisesti, vaihda streamable-http:iin, kun otat käyttöön muita varten.
// Switching from stdio to Streamable HTTP in TypeScript
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
const transport = new StreamableHTTPServerTransport({ port: 3001 });
await server.connect(transport);MCP vs funktiokutsut vs REST API:t – milloin käyttää mitä?
Tämä on kysymys, joka nousee esiin jokaisessa MCP-keskustelussa, joten ratkaistaan se suoralla vertailulla.
| Ominaisuus | MCP | Funktiokutsut | REST API:t |
|---|---|---|---|
| Standardointi | Avoin protokolla, malliriippumaton | Toimittajakohtainen (OpenAI, Anthropic omat versiot) | Yleinen |
| Työkalujen löytäminen | Sisäänrakennettu (tools/list) | Ei mitään, lähetät skeemat jokaisessa pyynnössä | Ei mitään, vaatii dokumentaation tai OpenAPI-spesifikaation |
| Datan käyttö | Resurssiprimitiivi | Ei tuettu | Standardipäätepisteet |
| Kehotemallit | Kehoteprimitiivi | Ei tuettu | Ei sovellettavissa |
| Todennus | OAuth 2.1 (spesifikaatiotasolla) | Toimittajan API-avain | Vaihtelee (API-avaimet, OAuth jne.) |
| Striimaus | SSE Streamable HTTP:n kautta | Toimittajariippuvainen | Vaihtelee |
| Monimalli | Toimii minkä tahansa MCP-yhteensopivan mallin kanssa | Lukittu yhden toimittajan API:iin | Malliriippumaton (liimakoodilla) |
| Palvelinekosysteemi | Yli 10 000 valmiiksi rakennettua palvelinta | Ei sovellettavissa | Miljoonia API:eja |
| Asennuksen monimutkaisuus | Aja MCP-palvelin | Lähetä JSON API-kutsussa | HTTP-asiakas |
| Paras käyttötarkoitus | Monimalli-, monityökalu-agenttiympäristöt | Yksinkertaiset yhden mallin sovellukset muutamalla työkalulla | Palveluiden välinen kommunikointi |
Milloin funktiokutsut riittävät
Jos sinulla on alle 5 työkalua ja käytät yhtä mallia, funktiokutsut ovat yksinkertaisempia. Määrittelet työkaluskeemasi inline kunkin API-kutsun yhteydessä, malli palauttaa funktion nimen ja argumentit, ja suoritat ne sovelluskoodissasi. Ei palvelinta ajettavana, ei protokollaa opittavana. Chatbotille, joka tarkistaa tilauksen statuksen ja etsii FAQ-tietoja, funktiokutsut ovat täysin kelvollisia.
Milloin MCP:stä tulee sen arvoista
MCP ansaitsee monimutkaisuutensa, kun:
- Tuet useita LLM-malleja etkä halua kirjoittaa työkalumäärityksiä uudelleen jokaiselle toimittajalle
- Tarvitset työkalujen löytämisen, malli voi kysyä, mitä on saatavilla, sen sijaan, että kovakoodaat skeemat
- Haluat resursseja ja kehotteita, ei vain työkalukutsuja
- Rakennat tekoälyagentteja, jotka koordinoivat autonomisesti ja tarvitset standardoidun integraatiokerroksen
- Tiimisi kasvaa ja eri insinöörit rakentavat eri työkaluja, MCP antaa heidän työskennellä itsenäisesti
Tuomio: MCP voittaa, kun tarvitset standardoitua, monimallista työkalujen käyttöä. Funktiokutsut voittavat yksinkertaisissa, yhden mallin käyttötapauksissa. REST API:t pysyvät oikeana valintana perinteiseen palveluiden väliseen kommunikointiin, joka ei sisällä LLM:ää.
MCP-ekosysteemi vuonna 2026: Kuka tukee ja mitä on saatavilla
MCP nousi Anthropicin sivuprojektista teollisuuden standardiksi alle 18 kuukaudessa. Tässä tilannekatsaus.
Mitkä LLM-mallit tukevat MCP:tä?
| LLM | MCP-tuki | Alkaen | Huomioita |
|---|---|---|---|
| Claude | Natiivi, täysi tuki | Marraskuu 2024 | Loi MCP:n; syvin integraatio |
| ChatGPT | Virallinen tuki | Maaliskuu 2025 | OpenAI:n MCP-integraation kautta |
| Gemini | Virallinen tuki | Huhtikuu 2025 | Google Cloud MCP -palvelimet Google-palveluille |
| Llama / Avoin lähdekoodi | Adapterien kautta | 2025 | LangChain, LlamaIndex ja custom-adapterit |
| Copilot (VS Code) | Natiivi agenttitilassa | 2025 | Microsoft julkaisee MCP-tuen VS Codessa |
Tunnettuja MCP-palvelimia, jotka kannattaa tuntea
| Kategoria | Palvelin | Mitä se tekee |
|---|---|---|
| Koodi | GitHub | PR:t, issue:t, repositoriot, koodihaku |
| Koodi | GitLab | Merge requestit, putket, projektinhallinta |
| Tietokanta | PostgreSQL | Skeeman tarkastelu, kyselyjen suoritus |
| Tietokanta | MySQL | Kyselyt ja skeeman käyttö |
| SaaS | Slack | Kanavaviestit, haku, ilmoitukset |
| SaaS | Google Drive | Tiedostojen käyttö, haku, dokumenttien luku |
| SaaS | Notion | Sivujen luku, tietokantakyselyt |
| Haku | Brave Search | Verkkohaun tulokset |
| DevOps | Docker | Konttien hallinta |
| Infra | AWS | Pilviresurssien hallinta |
Linux Foundationin AAIF-ilmoitus mainitsi yli 10 000 aktiivista palvelinta ja 97 miljoonaa kuukausittaista SDK-latausta MCP:n lahjoituksen aikaan joulukuussa 2025. Ekosysteemi ei ole enää kokeellinen, se on tuotantovalmis.
MCP Apps on uusi primitiivi, joka esiteltiin tammikuussa 2026. Se antaa palvelinten tarjota interaktiivisia UI-komponentteja, jotka renderöityvät isäntäsovelluksen sisällä. Vielä alkuvaiheessa, mutta se signaloi MCP:n evoluutiota dataprotokollasta täydeksi agentti-sovelluskehykseksi. Kannattaa seurata.
Hallinto: Anthropicista Linux Foundationiin
MCP:tä hallinnoi Linux Foundationin alainen Agentic AI Foundation (AAIF), jonka perustajia ovat Anthropic, Block ja OpenAI. Tämä on tärkeää yritysten adoptiolle: MCP ei ole sidottu yhden toimittajan tiekarttaan. Vuoden 2026 tiekartan prioriteetit ovat kuljetuksen kehitys, agenttien välinen kommunikointi (uusi "Tasks"-primitiivi), hallinnon kypsyminen ja yritysten valmius.
Tiimeille, jotka rakentavat tuotantotekoälyjärjestelmiä, kehykset kuten autonominen tekoälyagenttikehys OpenClaw integroituvat jo MCP-palvelimiin antaakseen agenteille todellisen maailman kykyjä.
MCP-turvallisuus: OAuth 2.1, uhkat ja käytännön tarkistuslista
Turvallisuus on alue, jossa MCP-ekosysteemillä on eniten tehtävää. Ja luvut maalaavat karun kuvan.
88 %:n ongelma: Miksi useimmat MCP-palvelimet ovat turvattomia
Astrix Security analysoi yli 5 200 avoimen lähdekoodin MCP-palvelintoteutusta ja havaitsi, että 88 % vaatii jonkinlaisia tunnistetietoja, mutta 53 % luottaa epäturvallisiin, pitkään eläviin staattisiin salaisuuksiin, kuten API-avaimiin ja henkilökohtaisiin pääsytunnisteisiin, jotka on kovakoodattu konfiguraatiotiedostoihin. Vain 8,5 % toteuttaa OAuth:n.
Tämä tarkoittaa, että valtaosa villissä olevista MCP-palvelimista käyttää todennusta, joka vastaa talon avaimen teippaamista etuoveen.
OAuth 2.1 MCP-palvelimille
MCP-spesifikaatio vaatii OAuth 2.1 kaikille HTTP-pohjaisille palvelimille kesäkuun 2025 päivityksestä alkaen. Virtaus toimii näin: MCP-asiakas aloittaa OAuth 2.1 -valtuutusvirran palvelimen kanssa, hankkii rajatun käyttöoikeustunnisteen ja sisällyttää sen jokaiseen myöhempään pyyntöön. PKCE (Proof Key for Code Exchange) on pakollinen kaikille asiakkaille, ei poikkeuksia.
Jos rakennat MCP-palvelinta, joka käyttää Streamable HTTP:tä, OAuth 2.1 ei ole valinnainen. Se on spesifikaation määräämä.
Uhkamalli: Mikä voi mennä pieleen
Neljä uhkaa ansaitsee huomion missä tahansa MCP-käyttöönotossa:
- Kehoteinjektio työkalujen kautta, pahantahtoinen tai kompromisoitunut datalähde palauttaa sisältöä, joka on suunniteltu manipuloimaan mallia. Jos työkalu hakee verkkosivun ja sivu sisältää piilotettuja ohjeita, malli voi suorittaa ne.
- Sekava edustaja -hyökkäys (Confused deputy attack), malli kutsuu työkalua, jolla on laajemmat oikeudet kuin käyttäjä tarkoitti. Jos MCP-palvelimella on admin-oikeudet tietokantaan, malli voisi teoriassa pudottaa taulun.
- Tunnistekeskittymäriski, MCP-palvelin, joka pitää hallussaan API-avaimia GitHubiin, Slaciin ja tuotantotietokantaasi, on yksittäinen arvokas kohde. Kompromisoi yksi palvelin, kompromisoi kaikki, joihin se on yhdistetty.
- Epäturvallinen kuljetus, HTTP MCP-palvelimen ajaminen ilman TLS:ää paljastaa jokaisen pyynnön, mukaan lukien OAuth-tunnisteet ja arkaluonteinen data, selväkielisenä.
Turvallisuustarkistuslista tuotanto-MCP:lle
- Toteuta OAuth 2.1 mille tahansa HTTP:n yli altistetulle palvelimelle. Ei staattisia API-avaimia konfiguraatiotiedostoissa.
- Sovella vähimmän oikeuden periaatetta. Jos työkalusi vain lukee dataa, palvelimen tunnistetietojen pitäisi olla vain-luku. Älä anna raportointityökalulle kirjoitusoikeutta.
- Eristä tunnistetiedot. Jokaisella MCP-palvelimella tulisi olla omat rajatut tunnisteensa. Älä jaa yhtä "jumalatunnistetta" palvelinten kesken.
- Pakota TLS kaikkialla. Streamable HTTP ilman HTTPS:ää on automaattinen ei-ei tuotannossa.
- Validoi ja puhdista työkalujen tulosteet. Käsittele työkalujen palauttamaa dataa samalla tavalla kuin käyttäjän syötettä, älä luota siihen sokeasti.
- Rajoita työkalukutsujen määrää. Hallitsematon agenttisilmukka, joka kutsuu työkalua tuhansia kertoja, voi tyhjentää API-kiintiöt tai aiheuttaa tahattomia sivuvaikutuksia.
- Auditoi ja logita jokainen työkalukutsu. Sisällytä pyyntötunnisteet, aikaleimat, kutsuva malli ja työkalun argumentit. Tarvitset tätä debuggaukseen ja turvallisuusincidenttien käsittelyyn.
MCP:n debuggaus: Inspector, lokitus ja yleiset virheet
Kohtaat virheitä. Jokainen kehittäjä kohtaa. Tässä on ohjeet niiden nopeaan korjaamiseen.
MCP Inspector on virallinen debuggaustyökalu ja ensimmäinen puolustuslinjasi. Se yhdistyy mihin tahansa MCP-palvelimeen, löytää sen työkalut/resurssit/kehotteet ja antaa sinun kutsua niitä manuaalisesti näyttäen raaka JSON-RPC-liikenteen.
# Launch Inspector against your Python server
npx @modelcontextprotocol/inspector python weather_server.py
# Or against a TypeScript server
npx @modelcontextprotocol/inspector npx tsx weather-server.tsInspector avaa selaimen käyttöliittymän, jossa on välilehdet Tools, Resources, Prompts ja ilmoituspaneeli. Voit kutsua mitä tahansa työkalua custom-argumenteilla ja nähdä tarkalleen, mikä JSON kulkee langalla. Käytä sitä ennen yhdistämistä isäntäsovellukseen, palvelimen debuggaus eristettynä on paljon helpompaa.
Yleiset virheet ja korjaukset
- "Server not found" Claude Desktopissa, lähes aina polkuongelma
claude_desktop_config.json:ssa. Tarkista, ettäcommandosoittaa olemassa olevaan binääriin jacwdoikeaan hakemistoon. macOS:ssä käytä absoluuttisia polkuja. - Työkaluskeeman validointivirheet, jos malli lähettää argumentteja, jotka eivät vastaa työkalun
inputSchema:a, palvelin hylkää kutsun. Tarkista, että skeematyypit vastaavat mallin odotuksia. Zod (TypeScript) ja tyypitysvihjeet (Python) sieppaavat useimmat näistä määrittelyvaiheessa. - Kuljetusyhteyden katkeamiset,
stdio:n kohdalla tämä tarkoittaa yleensä palvelinprosessin kaatumista. Tarkista stderr-ulostulo. Streamable HTTP:n kohdalla tarkista aikakatkaisuasetukset, pitkät työkalut voivat ylittää oletusarvoiset HTTP-aikakatkaisut. - "Permission denied" tai 401-virheet, OAuth-skooppi liian kapea. Palvelin hylkää tunnisteen, koska sillä ei ole vaadittuja oikeuksia. Laajenna skooppi, mutta vain niin paljon kuin työkalu todella tarvitsee.
Lokituksen best practices
Strukturoi lokisi pyyntötunnisteilla, jotta voit jäljittää yksittäisen käyttäjäpyynnön MCP-asiakkaan, palvelimen ja mahdollisten downstream-API:den läpi. Logita jokainen tools/call-kutsu työkalun nimen, argumenttien, vasteajan ja tulosteen statuksen kanssa. Tuotannossa toimita nämä lokit observability-alustalle, kun jotain menee pieleen klo 3 aamulla, olet iloinen, että teit niin.
Miten Techsy rakentaa MCP:llä
Olemme integroineet MCP:tä asiakasprojekteihin alkuvuodesta 2025 alkaen, ja yleisin havaintomme on tämä: tiimillä on tekoälyominaisuus, joka toimii yhden mallin ja muutaman työkalun kanssa, mutta he suunnittelevat skaalausta – enemmän malleja, enemmän datalähteitä, enemmän agenttiominaisuuksia. Tämä on käännekohta, jossa MCP alkaa tuottaa arvoa.
Lähestymistapamme seuraa kolmea vaihetta:
- Arvioi sopivuus. Kaikki projektit eivät tarvitse MCP:tä. Jos kutsut kahta työkalua yhdestä mallista, funktiokutsut ovat yksinkertaisempia, ja kerromme sen sinulle. MCP on järkevä, kun yhdistät 3+ datalähdettä, tuet useita malleja tai rakennat agenttityönkulkuja, joissa työkalujen on oltava löydettävissä.
- Rakenna ja testaa palvelimet eristettynä. Kehitämme custom-MCP-palvelimet jokaiselle datalähteelle, sisäisille tietokannoille, SaaS-API:eille, proprietaarisille palveluille ja validoimme ne MCP Inspectorilla ennen minkään isännän kytkemistä.
- Ota käyttöön Streamable HTTP:llä ja OAuth 2.1:llä. Tuotannossa ajamme MCP-palvelimet kontitettuina palveluina TLS:n takana, rajatuilla OAuth-tunnisteilla ja strukturoidulla lokituksella alusta alkaen. Ei staattisia salaisuuksia.
Yleisimmät integraatiot, joita rakennamme: tekoälyavustajien yhdistäminen sisäisiin Postgres-tietokantoihin, custom-MCP-palvelimien rakentaminen asiakkaiden SaaS-alustoille ja tiimien migraatio hajautetuista funktiokutsuasetuksista standardoituun MCP-arkkitehtuuriin.
Rakennatko tekoälypohjaisia työkaluja, jotka tarvitsevat yhteyden infrastruktuuriisi? Autamme tiimejä arkkitehtuurin suunnittelussa ja MCP-integraatioiden toteutuksessa. Pyydä ilmainen konsultointi
Usein kysytyt kysymykset MCP:stä
Mikä on Model Context Protocol (MCP)?
MCP on avoin standardi, jonka alun perin loi Anthropic ja jota nyt hallinnoi Linux Foundation. Se määrittelee, miten tekoälymallit yhdistyvät ulkoisiin työkaluihin, tietolähteisiin ja palveluihin. Se standardoi integraatiokerroksen, jotta yksi MCP-palvelin toimii minkä tahansa yhteensopivan mallin kanssa, kuten yleispistoke tekoälylle.
Miten MCP toimii?
MCP käyttää kolmiosaista arkkitehtuuria: isäntäsovellus (kuten Claude Desktop tai Cursor), isännän sisällä oleva MCP-asiakas, joka hallinnoi yhteyksiä, ja MCP-palvelimet, jotka paljastavat työkalut ja datan. Kaikki kommunikointi käyttää JSON-RPC 2.0 -viestejä joko stdion (paikallinen) tai Streamable HTTP:n (etä) kautta.
Mihin MCP:tä käytetään?
Yleisiä käyttötarkoituksia ovat tekoälyavustajien yhdistäminen tietokantoihin (Postgres, MySQL), integraatio koodialustoihin (GitHub, GitLab), SaaS-työkalujen käyttö (Slack, Notion, Google Drive) ja autonomisten tekoälyagenttien rakentaminen, jotka tarvitsevat vuorovaikutusta todellisen maailman palveluiden kanssa.
Onko MCP sama asia kuin funktiokutsut?
Ei. Funktiokutsut ovat mallikohtaisia (OpenAI:n formaatti eroaa Anthropicin) ja pyyntökohtaisia, lähetät työkaluskeemat jokaisessa API-kutsussa. MCP on standardoitu protokolla, joka toimii mallien yli, tukee työkalujen löytämistä ja sisältää resursseja ja kehotteita pelkän funktion suorituksen lisäksi.
Mitä ovat MCP-palvelimet?
MCP-palvelimet ovat ohjelmia, jotka paljastavat työkaluja, resursseja ja kehotteita tekoälymalleille MCP-protokollan kautta. Ne kietovat ulkoiset API:t ja datalähteet standardoituun rajapintaan. Esimerkkejä ovat GitHub MCP -palvelin (PR- ja issue-hallintaan) ja Postgres MCP -palvelin (tietokantakyselyihin).
Miten rakennan MCP-palvelimen?
Käytä Pythonia FastMCP:n kanssa (pip install fastmcp) tai TypeScriptiä virallisen SDK:n kanssa (npm install @modelcontextprotocol/sdk). Määrittele työkalusi decoratoituina funktioina (Python) tai rekisteröityinä käsittelijöinä (TypeScript) ja aja palvelin. Katso yllä oleva opasosa saadaksesi täydellisen toimivan koodin tai seuraa askel askeleelta -opastamme MCP-palvelimen rakentamiseen alusta alkaen saadaksesi kattavan läpikäynnin.
Onko MCP turvallinen?
Protokolla itsessään tukee OAuth 2.1 -todennusta ja rajattuja oikeuksia. Astrix Securityn tutkimus kuitenkin havaitsi, että 88 % olemassa olevista MCP-palvelintoteutuksista luottaa staattisiin salaisuuksiin OAuth:n sijaan. Protokolla on turvallinen by design, mutta useimmat todellisen maailman käyttöönotot eivät ole vielä saavuttaneet tätä tasoa.
Mitkä LLM-mallit tukevat MCP:tä?
Claudella on natiivi MCP-tuki sen luomisesta alkaen marraskuussa 2024. ChatGPT lisäsi tuen maaliskuussa 2025, ja Gemini seurasi huhtikuussa 2025. Avoimen lähdekoodin mallit voivat käyttää MCP:tä adapterien kautta LangChainissä ja LlamaIndexissä.
Mikä on ero MCP:n ja REST API:n välillä?
REST API:t on suunniteltu yleiseen palveluiden väliseen kommunikointiin. MCP on suunniteltu nimenomaan tekoälymallien vuorovaikutukseen, se sisältää työkalujen löytämisen, skeemaneuvottelun, resurssien käytön ja kehotemallit, joita REST:ssä ei ole. Et korvaisi REST API:eja MCP:llä; ne palvelevat eri kerroksia.
Kuka ylläpitää MCP:tä nyt?
Linux Foundationin Agentic AI Foundation (AAIF), joka perustettiin joulukuussa 2025, hallinnoi MCP:tä. Sen perustajia ovat Anthropic, Block ja OpenAI. Tämä toimittajariippumaton hallinto on keskeinen syy siihen, miksi yritykset omaksuvat MCP:n.
Mikä on Streamable HTTP MCP:ssä?
Streamable HTTP on tuotantokuljetusmekanismi, joka lisättiin vuoden 2025 MCP-spesifikaatiopäivityksessä. Se korvaa vanhemman HTTP+SSE-kuljetuksen siistimmällä suunnittelulla: asiakkaat lähettävät HTTP POST -pyyntöjä, ja palvelimet voivat vastata synkronisesti tai SSE-striimauksen kautta. Se toimii kuormantasaimien takana ja tukee standardia HTTP-todennusta.
Kuinka monta MCP-palvelinta on olemassa?
Linux Foundation mainitsi yli 10 000 aktiivista palvelinta ja 97 miljoonaa kuukausittaista SDK-latausta, kun MCP lahjoitettiin AAIF:lle joulukuussa 2025. Ekosysteemi kattaa tietokannat, koodityökalut, SaaS-integraatiot, hakukoneet ja pilvi-infrastruktuurin tarjoajat.
Johtopäätös
MCP on noussut Anthropicin avoimen lähdekoodin kokeilusta teollisuuden standardiprotokollaksi tekoälymallien yhdistämiseksi työkaluihin vain hieman yli vuodessa. Tässä on olennaiset asiat:
- MCP ratkaisee M x N -ongelman, yksi palvelin toimii jokaisen yhteensopivan mallin kanssa, yksi asiakas toimii jokaisen palvelimen kanssa
- Voit rakentaa toimivan MCP-palvelimen alle 50 rivillä Pythonia (FastMCP) tai TypeScriptiä
- Käytä stdiota kehitykseen, Streamable HTTP:tä tuotantoon, kuljetusvalinta on suoraviivainen
- Suojaa palvelimesi OAuth 2.1:llä – 88 % nykyisistä toteutuksista ei tee niin, ja se on todellinen riski
- Ekosysteemi on tuotantovalmis – yli 10 000 palvelinta, kaikki tärkeimmät LLM-mallit, toimittajariippumaton hallinto Linux Foundationin alla
Tulevaisuuteen katsoen vuoden 2026 tiekartta keskittyy agenttien väliseen kommunikointiin uuden Tasks-primitiivin kautta, parannettuun yritysturvallisuuteen ja MCP Appseihin interaktiivisia palvelinohjattuja käyttöliittymiä varten. MCP ei ole enää vain protokolla työkalujen käyttöön, siitä on tulossa agenttisen tekoälyn infrastruktuurikerros.
Aloita yllä olevalla opaskoodilla, testaa sitä MCP Inspectorissa ja yhdistä se Claude Desktopiin. Sinulla on toimiva MCP-integraatio alle tunnissa.
Lähteet
- MCP Spesifikaatio (2025-11-25)
- MCP Todennusspesifikaatio
- MCP Kuljetusspesifikaatio
- MCP Inspector Dokumentaatio
- Introducing the Model Context Protocol, Anthropic
- Donating MCP to the Linux Foundation, Anthropic
- Linux Foundation AAIF Ilmoitus
- Google Cloud MCP Tuki
- FastMCP Python SDK
- MCP TypeScript SDK
- Astrix Security: State of MCP Server Security 2025
- MCP 2026 Tiecarta