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.
1. Čo je na MCP podstatné
- Štandardné role v
- 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/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ť nie je „doplnok“, je súčasť špecifikácie:
- Pri HTTP transporte je explicitne požadované napr. overovanie
Originhlavičky (kvôli DNS rebinding), odporúčanie bindovať lokálne na127.0.0.1a mať autentifikáciu. - Autorizácia je špecifikovaná cez OAuth 2.1 (kde to dáva zmysel – najmä pri vzdialených serveroch).
- Pri HTTP transporte je explicitne požadované napr. overovanie
- Ecosystem efekt:
- Existuje MCP Registry so zoznamom publikovaných serverov a repo so „reference“ servermi + SDK pre viac jazykov (C#, Go, Java, Kotlin, PHP, Python, Ruby, Rust, Swift, TypeScript…).
- MCP už podporujú aj iné ekosystémy (napr. OpenAI Agents SDK a LangChain adaptéry).
2. Ako MCP funguje (prakticky)
- Host (napr. agent) obsahuje MCP klienta.
- Klient sa pripojí k jednému alebo viacerým MCP serverom (lokálne cez
stdio, alebo cez HTTP). - Prebehne inicializácia + dohodnú sa schopnosti (capabilities).
- Klient si vie vyžiadať zo servera zoznam tools/resources/prompts.
- Keď model potrebuje niečo spraviť (napr. „zisti stav repozitára“), host vykoná tool call cez MCP klienta na daný server, zoberie výsledok a použije ho v ďalšom rozmýšľaní/odpovedi.
Dôležitý detail: MCP správy sú kódované cez JSON-RPC (UTF-8).
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. stderrje na logovanie; klient ho môže ignorovať alebo zbierať.
- Streamable HTTP transport (lokálne aj remote servery)
- Server má jeden MCP endpoint (napr.
/mcp) prePOSTajGET. - Klient posiela každú JSON-RPC správu ako samostatný HTTP POST a uvádza
Accept: application/json, text/event-stream. - Server môže odpovedať buď jednorazovo (
application/json), alebo streamovať cez SSE (text/event-stream).
- Server má jeden MCP endpoint (napr.
- HTTP bezpečnostné minimum
- Servery MUSIA validovať
Origin(ochrana pred DNS rebinding). - Pri lokálnom behu sa odporúča bind iba na
127.0.0.1. - A odporúča sa mať autentifikáciu pre všetky spojenia.
- Servery MUSIA validovať
- Autorizácia (OAuth 2.1)
- MCP špecifikácia popisuje OAuth 2.1 flow-y a bezpečnostné očakávania.
- Tokeny sa majú posielať cez
Authorization: Bearer ...(nie do URL query/fragmentu).
4. Dostupnosť a ekosystém
- Špecifikácia a dokumentácia: je udržiavaná ako otvorený projekt (repo + docs). Autori pôvodného MCP sú uvedení v hlavnom repozitári.
- Registry serverov: ak hľadáš hotové servery, odporúča sa ísť cez MCP Registry; GitHub repo so servermi je primárne „reference“ (edukačné), nie automaticky production-ready.
- Integrácie v praxi:
- OpenAI Agents SDK vie pracovať s viacerými MCP transportmi (vrátane Streamable HTTP a
stdio) a rieši aj schvaľovacie (approval) flow-y pri tool volaniach. - LangChain má adaptéry, ktoré načítajú tools z MCP serverov do LangChain agentov.
- OpenAI Agents SDK vie pracovať s viacerými MCP transportmi (vrátane Streamable HTTP a
5. Ceny / licencie
- MCP špecifikácia (repo) je licencovaná pod MIT.
- Repo MCP servers má Apache 2.0 pre nové príspevky (s existujúcim kódom pod MIT – podľa
LICENSE). - MCP ako protokol nemá „licenčný poplatok“ – náklady v praxi sú v prevádzke serverov, infraštruktúre a v samotnom LLM/API.
6. 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ť API. Preto:
- používaj iba servery, ktorým dôveruješ,
- ideálne ich spúšťaj v sandboxe/containery,
- minimalizuj oprávnenia (least privilege).
- Supply-chain + „tool injection“ scenáre:
- aj legit server sa môže zmeniť aktualizáciou (alebo byť vydaný škodlivý „klon“), preto dávajú zmysel opatrenia ako pin verzií, kontrola zmien, audit závislostí.
- v praxi už boli popísané prípady škodlivých MCP serverov zamerané na krádež dát (napr. exfiltrácia emailov).
- OAuth „confused deputy“ (ak robíš proxy server na 3rd-party API):
- špecifikácia bezpečnostných best-practices popisuje konkrétny útokový vzor a požaduje per-client consent a tvrdé validácie (
redirect_uri,state, CSRF ochrany…).
- špecifikácia bezpečnostných best-practices popisuje konkrétny útokový vzor a požaduje per-client consent a tvrdé validácie (
7. 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 bez custom integrácie pre každý nástroj zvlášť. (Reference príklady sú aj v server repo.)
- 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“.
- Zdieľateľné integrácie: keď raz spravíš MCP server pre interný systém (CRM, sklad, fakturácia), vieš ho použiť v rôznych hostoch (Claude Desktop, LangChain agent, OpenAI agent…).
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 (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 |
proti DNS rebinding |
| Autorizácia | OAuth 2.1 | tokeny cez Authorization: Bearer |
| Ecosystem | Registry + SDK v mnohých jazykoch | + warning: reference ≠ produkcia |
Zhrnutie
- MCP rieši „večný problém“ integrácií: jeden štandard na pripájanie modelov k nástrojom a dátam (tools/resources/prompts) naprieč aplikáciami.
- V praxi najviac rozhodujú transport + bezpečnosť: lokálne
stdioje jednoduché, HTTP je flexibilné, ale vyžaduje disciplínu (Origin, auth, sandbox, least-privilege). - Ekosystém rastie (Registry, SDK, integrácie v agent frameworkoch), ale platí: MCP server je spustiteľný kód → vyberaj zdroje a verzie opatrne.