(Klikněte na obrázek výše pro zhlédnutí videa této lekce)
Generativní AI aplikace představují velký krok vpřed, protože často umožňují uživatelům interakci s aplikací pomocí přirozených jazykových příkazů. Nicméně, jak se do těchto aplikací investuje více času a zdrojů, je důležité zajistit, že můžete snadno integrovat funkce a zdroje tak, aby bylo jednoduché je rozšiřovat, aby vaše aplikace mohla pracovat s více modely a zvládala různé specifika modelů. Stručně řečeno, vytvořit generativní AI aplikaci je na začátku snadné, ale jak roste a stává se složitější, je nutné začít definovat architekturu a pravděpodobně se spoléhat na standard, který zajistí konzistentní vývoj aplikací. Zde přichází MCP, který věci organizuje a poskytuje standard.
Model Context Protocol (MCP) je otevřené, standardizované rozhraní, které umožňuje velkým jazykovým modelům (LLMs) bezproblémově komunikovat s externími nástroji, API a datovými zdroji. Poskytuje konzistentní architekturu pro rozšíření funkcionality AI modelů nad rámec jejich tréninkových dat, čímž umožňuje chytřejší, škálovatelné a citlivější AI systémy.
Jak se generativní AI aplikace stávají složitějšími, je nezbytné přijmout standardy, které zajistí škálovatelnost, rozšiřitelnost, udržovatelnost a vyhnutí se závislosti na jednom dodavateli. MCP tyto potřeby řeší tím, že:
- Sjednocuje integrace modelů a nástrojů
- Snižuje křehké, jednorázové vlastní řešení
- Umožňuje koexistenci více modelů od různých dodavatelů v jednom ekosystému
Poznámka: Ačkoliv MCP se prezentuje jako otevřený standard, neexistují žádné plány na jeho standardizaci prostřednictvím existujících standardizačních orgánů, jako jsou IEEE, IETF, W3C, ISO nebo jiné.
Na konci tohoto článku budete schopni:
- Definovat Model Context Protocol (MCP) a jeho případy použití
- Porozumět tomu, jak MCP standardizuje komunikaci mezi modely a nástroji
- Identifikovat klíčové komponenty architektury MCP
- Prozkoumat reálné aplikace MCP v podnikových a vývojových kontextech
Před MCP bylo integrování modelů s nástroji spojeno s:
- Vlastním kódem pro každý pár nástroj-model
- Nestandardními API od každého dodavatele
- Častými problémy kvůli aktualizacím
- Špatnou škálovatelností při přidávání dalších nástrojů
| Výhoda | Popis |
|---|---|
| Interoperabilita | LLMs bezproblémově spolupracují s nástroji od různých dodavatelů |
| Konzistence | Jednotné chování napříč platformami a nástroji |
| Znovupoužitelnost | Nástroje vytvořené jednou lze použít v různých projektech a systémech |
| Zrychlený vývoj | Snížení času vývoje díky standardizovaným, plug-and-play rozhraním |
MCP využívá model klient-server, kde:
- MCP Hosté provozují AI modely
- MCP Klienti iniciují požadavky
- MCP Servery poskytují kontext, nástroje a schopnosti
- Zdroje – Statická nebo dynamická data pro modely
- Příkazy – Předdefinované pracovní postupy pro řízenou generaci
- Nástroje – Spustitelné funkce jako vyhledávání, výpočty
- Sampling – Agentní chování prostřednictvím rekurzivních interakcí
MCP servery fungují následujícím způsobem:
- Tok požadavků:
- Požadavek je iniciován koncovým uživatelem nebo softwarem jednajícím jeho jménem.
- MCP Klient odešle požadavek na MCP Host, který spravuje runtime AI modelu.
- AI Model obdrží uživatelský příkaz a může požádat o přístup k externím nástrojům nebo datům prostřednictvím jednoho nebo více volání nástrojů.
- MCP Host, nikoliv model přímo, komunikuje s příslušným MCP Serverem pomocí standardizovaného protokolu.
- Funkce MCP Hostu:
- Registr nástrojů: Udržuje katalog dostupných nástrojů a jejich schopností.
- Autentizace: Ověřuje oprávnění pro přístup k nástrojům.
- Zpracovatel požadavků: Zpracovává příchozí požadavky na nástroje od modelu.
- Formátovač odpovědí: Strukturuje výstupy nástrojů do formátu, kterému model rozumí.
- Provedení MCP Serveru:
- MCP Host směruje volání nástrojů na jeden nebo více MCP Serverů, z nichž každý poskytuje specializované funkce (např. vyhledávání, výpočty, dotazy na databáze).
- MCP Servery provádějí své příslušné operace a vracejí výsledky MCP Hostu v konzistentním formátu.
- MCP Host formátuje a předává tyto výsledky AI Modelu.
- Dokončení odpovědi:
- AI Model začlení výstupy nástrojů do finální odpovědi.
- MCP Host odešle tuto odpověď zpět MCP Klientovi, který ji doručí koncovému uživateli nebo volajícímu softwaru.
---
title: MCP Architecture and Component Interactions
description: A diagram showing the flows of the components in MCP.
---
graph TD
Client[MCP Client/Application] -->|Sends Request| H[MCP Host]
H -->|Invokes| A[AI Model]
A -->|Tool Call Request| H
H -->|MCP Protocol| T1[MCP Server Tool 01: Web Search]
H -->|MCP Protocol| T2[MCP Server Tool 02: Calculator tool]
H -->|MCP Protocol| T3[MCP Server Tool 03: Database Access tool]
H -->|MCP Protocol| T4[MCP Server Tool 04: File System tool]
H -->|Sends Response| Client
subgraph "MCP Host Components"
H
G[Tool Registry]
I[Authentication]
J[Request Handler]
K[Response Formatter]
end
H <--> G
H <--> I
H <--> J
H <--> K
style A fill:#f9d5e5,stroke:#333,stroke-width:2px
style H fill:#eeeeee,stroke:#333,stroke-width:2px
style Client fill:#d5e8f9,stroke:#333,stroke-width:2px
style G fill:#fffbe6,stroke:#333,stroke-width:1px
style I fill:#fffbe6,stroke:#333,stroke-width:1px
style J fill:#fffbe6,stroke:#333,stroke-width:1px
style K fill:#fffbe6,stroke:#333,stroke-width:1px
style T1 fill:#c2f0c2,stroke:#333,stroke-width:1px
style T2 fill:#c2f0c2,stroke:#333,stroke-width:1px
style T3 fill:#c2f0c2,stroke:#333,stroke-width:1px
style T4 fill:#c2f0c2,stroke:#333,stroke-width:1px
MCP servery umožňují rozšířit schopnosti LLM poskytováním dat a funkcionality.
Připraveni to vyzkoušet? Zde jsou jazykově nebo stackově specifické SDK s příklady vytvoření jednoduchých MCP serverů v různých jazycích/stacích:
-
Python SDK: https://github.com/modelcontextprotocol/python-sdk
-
TypeScript SDK: https://github.com/modelcontextprotocol/typescript-sdk
-
C#/.NET SDK: https://github.com/modelcontextprotocol/csharp-sdk
MCP umožňuje širokou škálu aplikací rozšířením schopností AI:
| Aplikace | Popis |
|---|---|
| Integrace podnikových dat | Připojení LLMs k databázím, CRM nebo interním nástrojům |
| Agentní AI systémy | Umožnění autonomních agentů s přístupem k nástrojům a pracovními postupy rozhodování |
| Multimodální aplikace | Kombinace textových, obrazových a zvukových nástrojů v jedné sjednocené AI aplikaci |
| Integrace dat v reálném čase | Přinášení živých dat do AI interakcí pro přesnější a aktuální výstupy |
Model Context Protocol (MCP) funguje jako univerzální standard pro AI interakce, podobně jako USB-C standardizoval fyzické připojení zařízení. Ve světě AI poskytuje MCP konzistentní rozhraní, které umožňuje modelům (klientům) bezproblémovou integraci s externími nástroji a poskytovateli dat (servery). Tím eliminuje potřebu různorodých, vlastních protokolů pro každé API nebo datový zdroj.
Pod MCP, MCP-kompatibilní nástroj (označovaný jako MCP server) dodržuje jednotný standard. Tyto servery mohou uvádět nástroje nebo akce, které nabízejí, a provádět tyto akce, když je o to požádá AI agent. Platformy AI agentů podporující MCP jsou schopny objevovat dostupné nástroje ze serverů a vyvolávat je prostřednictvím tohoto standardního protokolu.
Kromě poskytování nástrojů MCP také usnadňuje přístup k znalostem. Umožňuje aplikacím poskytovat kontext velkým jazykovým modelům (LLMs) propojením s různými datovými zdroji. Například MCP server může reprezentovat firemní úložiště dokumentů, což agentům umožňuje na vyžádání získávat relevantní informace. Jiný server může zpracovávat specifické akce, jako je odesílání e-mailů nebo aktualizace záznamů. Z pohledu agenta jsou to jednoduše nástroje, které může použít—některé nástroje vracejí data (kontext znalostí), zatímco jiné provádějí akce. MCP efektivně spravuje obojí.
Agent připojující se k MCP serveru automaticky zjistí dostupné schopnosti serveru a přístupná data prostřednictvím standardního formátu. Tato standardizace umožňuje dynamickou dostupnost nástrojů. Například přidání nového MCP serveru do systému agenta okamžitě zpřístupní jeho funkce bez nutnosti dalšího přizpůsobení instrukcí agenta.
Tato zjednodušená integrace odpovídá toku zobrazenému v následujícím diagramu, kde servery poskytují jak nástroje, tak znalosti, což zajišťuje bezproblémovou spolupráci napříč systémy.
---
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
Kromě základní architektury MCP existují pokročilé scénáře, kde klient i server obsahují LLM, což umožňuje sofistikovanější interakce. Na následujícím diagramu může být Client App IDE s řadou MCP nástrojů dostupných pro uživatele prostřednictvím LLM:
---
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
Zde jsou praktické výhody používání MCP:
- Aktualizovanost: Modely mohou přistupovat k aktuálním informacím nad rámec jejich tréninkových dat
- Rozšíření schopností: Modely mohou využívat specializované nástroje pro úkoly, na které nebyly trénovány
- Snížení halucinací: Externí datové zdroje poskytují faktické základy
- Ochrana soukromí: Citlivá data mohou zůstat v bezpečném prostředí místo jejich začlenění do příkazů
Následující jsou klíčové poznatky pro používání MCP:
- MCP standardizuje, jak AI modely interagují s nástroji a daty
- Podporuje rozšiřitelnost, konzistenci a interoperabilitu
- MCP pomáhá snížit čas vývoje, zlepšit spolehlivost a rozšířit schopnosti modelů
- Architektura klient-server umožňuje flexibilní, rozšiřitelné AI aplikace
Přemýšlejte o AI aplikaci, kterou byste chtěli vytvořit.
- Které externí nástroje nebo data by mohly zlepšit její schopnosti?
- Jak by MCP mohl integraci zjednodušit a učinit spolehlivější?
Další: Kapitola 1: Základní koncepty
Prohlášení:
Tento dokument byl přeložen pomocí služby pro automatický překlad Co-op Translator. I když se snažíme o přesnost, mějte prosím na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za závazný zdroj. Pro důležité informace doporučujeme profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.
