Model Context Protocol (MCP)

MCP (Model Context Protocol) je otvorený protokol, ktorý štandardizuje, ako aplikácie poskytujú kontext a nástroje (tools) veľkým jazykovým modelom (LLM). Často sa vysvetľuje analógiou „USB-C portu pre AI aplikácie": rovnaké rozhranie umožní pripojiť model k rôznym zdrojom dát a službám bez toho, aby si pre každý model a každú službu písal úplne inú integráciu.

Protokol pôvodne navrhlo Anthropic a vydalo ho v novembri 2024. Do leta 2026 ho adoptovalo prakticky celé odvetvie: podporuje ho Claude, OpenAI, Google Gemini, Mistral, aj desiatky frameworkov a IDE. MCP sa stal de facto štandardom pre prepojenie agentov s nástrojmi — rovnaký server funguje v Claude Desktop, VS Code Copilot, Cursor, Windsurf, JetBrains AI Assistant aj vlastnom agent frameworku súčasne.


1. Čo je na MCP podstatné

  • Štandardné role:
    • Host = aplikácia, v ktorej model „žije" (napr. chat/agent/IDE).
    • Client = komponent v hostovi, ktorý sa pripája na MCP servery.
    • Server = proces/služba, ktorá modelu sprístupní nástroje a dáta cez MCP.
  • Tri typy schopností, ktoré server typicky poskytuje:
    • Tools (spustiteľné funkcie – napr. query do DB, volanie API).
    • Resources (dáta na čítanie – súbory, záznamy, odpovede API).
    • Prompts (predpripravené šablóny a kontextové návody pre model).
  • Prenos (transport) je definovaný a interoperabilný:
    • stdio – lokálny subprocess, jednoduché a bezpečnejšie pre lokálne nástroje.
    • Streamable HTTP – server ako samostatná služba; cez HTTP, voliteľne so streamovaním cez SSE.
  • Bezpečnosť je súčasť špecifikácie, nie doplnok:
    • Pri HTTP transporte je explicitne požadované overovanie Origin hlavičky (kvôli DNS rebinding).
    • Autorizácia je špecifikovaná cez OAuth 2.1 pre vzdialené servery.
  • Ekosystém:
    • MCP Registry so stovkami publikovaných serverov a SDK pre desiatky jazykov.
    • MCP podporujú OpenAI Agents SDK, LangChain, LlamaIndex, Vertex AI, Amazon Bedrock a ďalšie.

2. Ako MCP funguje (prakticky)

  1. Host (napr. agent) obsahuje MCP klienta.
  2. Klient sa pripojí k jednému alebo viacerým MCP serverom (lokálne cez stdio, alebo cez HTTP).
  3. Prebehne inicializácia — dohodnú sa schopnosti (capabilities) oboch strán.
  4. Klient si vie vyžiadať zo servera zoznam tools / resources / prompts.
  5. Keď model potrebuje niečo spraviť (napr. „zisti stav repozitára"), host vykoná tool call cez MCP klienta, zoberie výsledok a použije ho v ďalšom rozmýšľaní alebo odpovedi.

Všetky správy sú kódované cez JSON-RPC 2.0 (UTF-8). Protokol je navrhnutý tak, aby fungoval symetricky — klient aj server môžu iniciovať správy, čo umožňuje napríklad sampling (server požiada model o dokončenie textu) bez toho, aby celá logika sedela na jednej strane.


3. Technické detaily, ktoré sa v praxi riešia najčastejšie

stdio transport (lokálne nástroje)

  • Klient spúšťa server ako subprocess.
  • Komunikácia ide cez stdin/stdout, správy sú oddelené novým riadkom a nesmú obsahovať embedded newlines.
  • stderr slúži na logovanie; klient ho môže ignorovať alebo zbierať.
  • Vhodné pre lokálne súborové systémy, Git, lokálne databázy, CLI nástroje.

Streamable HTTP transport (lokálne aj remote servery)

  • Server má jeden MCP endpoint (napr. /mcp) pre POST aj GET.
  • Klient posiela každú JSON-RPC správu ako samostatný HTTP POST s hlavičkou Accept: application/json, text/event-stream.
  • Server môže odpovedať jednorazovo (application/json) alebo streamovať cez SSE (text/event-stream).
  • Vhodné pre zdieľané cloudové servery, tímové nasadenia, SaaS integrácie.

HTTP bezpečnostné minimum

  • Servery musia validovať Origin hlavičku (ochrana pred DNS rebinding).
  • Pri lokálnom behu sa odporúča bind iba na 127.0.0.1.
  • Pre všetky spojenia sa odporúča autentifikácia.

Autorizácia (OAuth 2.1)

  • MCP špecifikácia popisuje OAuth 2.1 flow-y pre vzdialené servery.
  • Tokeny sa posielajú cez Authorization: Bearer ... — nikdy do URL query stringu ani fragmentu.
  • Špecifikácia rieši aj „confused deputy" scenár pri proxy serveroch na third-party API.

4. Rozšírené schopnosti: Sampling, Elicitation a ďalšie

Od verzie 1.0 a aktualizácií v roku 2025 protokol obsahuje schopnosti, ktoré mnohí začiatočníci prehliadajú:

Sampling (server → model)

Server môže požiadať hostovú aplikáciu, aby nechala model generovať text — teda LLM volá LLM. To umožňuje vytvárať multi-agentné pipeline priamo v rámci MCP bez externej orchestrácie. Napríklad MCP server môže rozdeliť komplexný dotaz na podúlohy, každú nechať vyriešiť modelom a výsledky spojiť.

Elicitation (server pýta používateľa)

Server môže cez klienta požiadať používateľa o ďalší vstup — formulár, potvrdenie, výber z možností. Toto je kľúčové pre bezpečné agentic flow: server si nevymýšľa chýbajúce vstupy, ale ich explicitne vyžiada od človeka.

Roots (filesystem boundary)

Klient môže serveru oznámiť zoznam povolených koreňových adresárov (roots). Server by mal túto informáciu rešpektovať a nepokúšať sa o prístup mimo týchto hraníc. Ide o dohodnutú vrstvu — nie tvrdý sandbox.

Notifications a progress

Pre dlhé operácie server posiela priebežné notifikácie, ktoré host môže zobraziť používateľovi. Výsledok teda neprišlo „celý naraz" po minúte, ale priebeh je viditeľný v reálnom čase.


5. Ekosystém v roku 2026

Ekosystém MCP rástol v roku 2025 exponenciálne. Tu je prehľad stavu k polovici roka 2026:

Oblasť Príklady / stav
Hostovské aplikácie Claude Desktop, Cursor, Windsurf, VS Code (Copilot), JetBrains AI, Zed, Continue
Agent frameworky OpenAI Agents SDK, LangChain, LlamaIndex, AutoGen, CrewAI, Pydantic AI
Cloud platformy Amazon Bedrock, Google Vertex AI, Azure AI Foundry (podpora MCP serverov)
SDK jazyky Python, TypeScript/JS, Go, Rust, Java, Kotlin, C#, Ruby, Swift, PHP
MCP Registry Stovky overených serverov: GitHub, Slack, Jira, Notion, PostgreSQL, Stripe a ďalšie
Reference servery Oficiálne príklady v GitHub repo (primárne edukačné, nie priamo production-ready)

Dôležitý rozlišovací bod: reference servery ≠ production servery. Repozitár modelcontextprotocol/servers slúži ako ukážka implementácie. Pre produkčné nasadenie sú vhodnejšie overené servery z registra alebo vlastné implementácie s auditom.


6. Dostupnosť a licencie

  • MCP špecifikácia (repo) je licencovaná pod MIT.
  • Repo MCP serversApache 2.0 pre nové príspevky (existujúci kód pod MIT — podľa LICENSE).
  • MCP ako protokol nemá licenčný poplatok. Náklady v praxi vznikajú pri prevádzke serverov, infraštruktúre a v samotnom LLM/API.
  • Spec sa vyvíja otvorene, zmeny prechádzajú cez GitHub diskusie a PR — komunita môže navrhovať úpravy.

7. Bezpečnosť a súkromie (praktické rady)

Najväčšie riziko MCP je, že „tools sú kód" — lokálne servery môžu spúšťať príkazy, čítať súbory, volať externé API. Preto:

  • Používaj iba servery, ktorým dôveruješ (overený zdroj, aktívna údržba).
  • Spúšťaj ich v sandboxe alebo kontaineri s minimálnymi oprávneniami.
  • Uplatňuj least privilege: server na čítanie GitHub issues nepotrebuje prístup k súborovému systému.

Supply-chain a tool injection:

  • Aj legit server sa môže zmeniť aktualizáciou — alebo byť vydaný škodlivý „klon" s podobným názvom.
  • Odporúča sa pin verzií, kontrola zmien (changelog audit) a sledovanie závislostí.
  • Boli zdokumentované reálne útoky: škodlivé MCP servery zamerané na exfiltráciu dát (napr. krádež emailov alebo API kľúčov cez tool output).

Tool poisoning (prompt injection cez tool výsledky):

  • Škodlivý obsah vo výsledku tool callu (napr. v súbore, databázovom záznamu, webovej stránke) môže manipulovať model, aby vykonal neočakávané akcie.
  • Obrana: sanitizácia výstupu, explicitné potvrdenie pred destruktívnymi akciami, human-in-the-loop pre kritické operácie.

OAuth „confused deputy" (pri proxy serveri na third-party API):

  • Útočník môže prinútiť server konať v mene iného klienta.
  • Špecifikácia vyžaduje per-client consent, tvrdú validáciu redirect_uri, state parameter a CSRF ochrany.

8. Praktické použitia — kedy MCP dáva najväčší zmysel

Agent v IDE: Jeden MCP server na Git, druhý na filesystem, tretí na issue tracker — model vie robiť zmysluplné akcie naprieč nástrojmi bez custom integrácie pre každý pár. Výsledok: agent v Cursor alebo VS Code, ktorý otvára PR, komentuje issues a číta logy z CI/CD bez jedinej extra riadky lepiacej integrácie.

RAG bez lepenia konektorov: Namiesto toho, aby si každú znalostnú bázu pripájal ručne, vystavíš ju ako MCP resource + doplníš tool na „query". Hostovská aplikácia sa postará o zvyšok.

Zdieľateľné firemné integrácie: Raz spravíš MCP server pre interný systém (CRM, sklad, fakturácia) a použiješ ho v rôznych hostoch: Claude Desktop pre obchodníkov, agent v Slacku pre support, LangChain pipeline pre dávkové spracovanie — všetko cez jeden server.

Multi-agentné pipeline: Cez sampling môžu MCP servery orchestrovať ďalšie volania modelu interne. Napríklad: orchestrační agent rozdeľuje úlohy, worker agenti ich riešia cez vlastné MCP servery, výsledky sa agregujú — bez externého orchestračného frameworku.

Prototypovanie nástrojov: MCP stdio transport ti umožní vystaviť akýkoľvek Python/Node skript ako nástroj pre model za pár minút. Rýchly spôsob otestovať, či má tool zmysel, pred tým, než investuješ do produkčného HTTP servera.


9. Quick Reference

Parameter Hodnota Poznámka
Účel Štandardný prístup LLM k tools + kontextu „USB-C pre AI aplikácie"
Kódovanie správ JSON-RPC 2.0 (UTF-8) Protokolové správy
Transporty stdio, streamable-http 2 štandardné transporty
stdio subprocess + stdin/stdout Správy bez embedded newlines
Streamable HTTP POST/GET + voliteľne SSE 1 endpoint, streamovanie možné
HTTP security minimum validovať Origin, bind localhost, auth Ochrana pred DNS rebinding
Autorizácia OAuth 2.1 Tokeny cez Authorization: Bearer
Sampling Server → model volanie Multi-agentné pipeline bez externého orchestrátora
Elicitation Server → používateľský vstup Human-in-the-loop pre bezpečné agentic flow
Licencia MIT (spec) / Apache 2.0 (nové servery) Bez licenčného poplatku
Ekosystém Registry + SDK pre 10+ jazykov Reference servery ≠ produkcia

Zhrnutie

MCP rieši „večný problém" integrácií: jeden štandard na pripájanie modelov k nástrojom a dátam naprieč aplikáciami. Do roka 2026 sa z experimentálneho protokolu stal priemyselný štandard, ktorý adoptovali všetci veľkí hráči.

V praxi najviac rozhodujú tri veci: transport (stdio pre lokálne, HTTP pre zdieľané nasadenie), bezpečnosť (Origin validácia, auth, sandbox, least privilege, tool poisoning obrana) a výber serverov (Registry > reference repo, pin verzií, audit zdrojov).

Ekosystém je živý a rýchlo sa mení — sleduj špecifikáciu a Registry skôr než staré tutoriály. Základný princíp však ostáva stabilný: MCP server je spustiteľný kód s prístupom k tvojim systémom — vyberaj zdroje rovnako opatrne ako npm balíky v produkčnom projekte.