Poptávka: S rozvojem velkých modelů se velké modely objevily ve všech oblastech našeho života, ať už jde o práci nebo studium, jsou neoddělitelné. Proč potřebujeme MCP s velkým modelovým jazykem? Velký model lze chápat jako mozek, ale mozek sám nám nemůže pomoci s něčím, MCP je spíše jako končetina, velký model řídí službu MCP k věcem, například: volání externích nástrojů (jako jsou databáze, disky, API). Řeší to problém, že velké modely mohou jen chatovat a nemohou nic dělat.
MCP (Model Context Protocol)
Dokumentace:Přihlášení k hypertextovému odkazu je viditelné. GitHub repozitáře:Přihlášení k hypertextovému odkazu je viditelné. Úložiště nástrojů MCP:Přihlášení k hypertextovému odkazu je viditelné.
MCP (Model Context Protocol) je open-source standard pro propojení AI aplikací s externími systémy.
Díky MCP mohou AI aplikace jako Claude nebo ChatGPT propojit zdroje dat (např. lokální soubory, databáze), nástroje (např. vyhledávače, kalkulačky) a pracovní postupy (např. specializované prompty) – což jim umožňuje přístup ke klíčovým informacím a provádění úkolů.
Představte si MCP jako USB-C port pro AI aplikace. Stejně jako USB-C poskytuje standardizovaný způsob propojení elektronických zařízení, MCP poskytuje standardizovaný způsob propojení AI aplikací s externími systémy.
Čeho může MCP dosáhnout?
- Agenti mohou přistupovat k vašemu Google Kalendáři a Notionu, což funguje jako personalizovanější AI asistent.
- Claude Code dokáže generovat celé webové aplikace pomocí návrhů Figma.
- Podnikové chatboty se mohou připojit k více databázím v rámci organizace, což uživatelům umožňuje analyzovat data pomocí chatu.
- AI modely mohou vytvářet 3D návrhy v Blenderu a tisknout je pomocí 3D tiskárny.
Proč je MCP důležité?
V závislosti na tom, kde se v ekosystému nacházíte, může MCP přinést řadu výhod.
- Vývojáři: MCP snižuje dobu vývoje a snižuje rozsah vývoje při vytváření nebo integraci s AI aplikacemi či agenty.
- AI aplikace nebo agenti: MCP poskytují přístup k ekosystému datových zdrojů, nástrojů a aplikací, což zlepší funkčnost a zážitek koncového uživatele.
- Koncoví uživatelé: MCP mohou vést k výkonnějším AI aplikacím nebo agentům, kteří mohou přistupovat k vašim datům a jednat za vás, když je to potřeba.
MCP protokol
MCP se skládá ze dvou vrstev:
- Datová vrstva: Definujte komunikační protokol klient-server založený na JSON-RPC, včetně správy životního cyklu a základních primitiv, jako jsou nástroje, zdroje, výzvy a oznámení.
- Transportní vrstva: Definuje komunikační mechanismy a kanály umožňující výměnu dat mezi klienty a servery, včetně navázání spojení specifických pro transport, rámcových zpráv a autorizace.
Konceptuálně je datová vrstva vnitřní vrstvou, zatímco transportní vrstva je vnější vrstva.
Datová vrstva
- Datová vrstva implementuje přepínací protokol založený na JSON-RPC 2.0, který definuje strukturu zpráv a sémantiku. Tato vrstva zahrnuje:
- Správa životního cyklu: Zajišťuje inicializaci spojení, vyjednávání funkcí a ukončení spojení mezi klienty a servery
- Funkčnost serveru: Umožňuje serveru poskytovat základní funkce, včetně nástrojů pro operace AI, zdrojů pro kontextová data a interaktivních šablonových promptů od klientů a ke klientům
- Funkcionalita klienta: Umožňuje serveru požadovat od klienta vzorkování z hostitelského LLM, získání vstupu od uživatele a zaznamenání zpráv klientovi
- Užitečné funkce: Podporuje další funkce, jako jsou aktualizace v reálném čase a sledování pokroku pro dlouhodobé operace
Transportní vrstva
Transportní vrstva spravuje komunikační kanály a autentizaci mezi klientem a serverem. Zajišťuje navazování spojení, přenos zpráv a bezpečnou komunikaci mezi účastníky MCP.
MCP podporuje dva transportní mechanismy:
- Stdio Transport: Přímá komunikace procesů mezi lokálními procesy na stejném stroji pomocí standardních vstupních/výstupních toků, což zajišťuje optimální výkon a žádné zatížení sítě.
- Streamovatelný HTTP: Používá protokol HTTP POST pro odesílání zpráv mezi klienty a serverem a volitelně využívá události odeslané serverem pro streamovací funkce. Tento transportní protokol podporuje komunikaci vzdáleného serveru a standardních HTTP autentizačních metod, včetně tokenů držitelů, API klíčů a vlastních hlaviček. MCP doporučuje použít OAuth k získání autentizačního tokenu.
Transportní vrstva abstrahuje komunikační detaily z protokolové vrstvy, takže stejný formát zprávy JSON-RPC 2.0 je implementován ve všech transportních mechanismech.JSON-RPC zprávy musí být kódovány v UTF-8。HTTP+SSE transport byl ukončen!
Vše o MCP serveru
Tento MCP server je navržen tak, aby testoval všechny funkce protokolu MCP. Není určen jako praktický server, ale spíše jako testovací server pro stavitele MCP klientů. Implementuje funkce jako prompty, nástroje, zdroje, vzorkování a další, aby ukázal schopnosti MCP.
Zdroj:Přihlášení k hypertextovému odkazu je viditelné.
Tato služba vyžaduje instalaci Node.js prostředí a instalační kroky jsou vynechány.
Pro testování služby MCP založené na transportním vzoru Stdio je startovací příkaz následující:
Jak je uvedeno níže:
Po spuštění je balíček uložen do mezipaměti%LocalAppData%\npm-cache\_npx\Pod cestou.
Při inicializaci klient odešle požadavek na inicializaci k navázání spojení a vyjednání podporovaných funkcí. Data požadavku jsou následující:
Odpověď je následující:
{"result":{"protocolVersion":"2025-06-18","capabilities":{"prompts":{},"resources":{"subscribe":true},"tools":{},"logging":{},"completions":{}},"serverInfo":{"name":" example-servers/everything","title":"Everything Example Server","version":"1.0.0"},"instructions":"Testovací a demonstrační server pro funkce MCP protokolu.\n\n## Resources\n\ nResources 1-100 následují vzor: sudé ID obsahují text, liché ID obsahují binární data. Zdroje jsou stránkovány na 10 položek na stránku s navigací pomocí kurzoru.\n\n## Klíčové závislosti\n\nOznámení o průběhu vyžadují '_meta.progressToken' ve volaních nástrojů. Odběry zdrojů generují aktualizace každých 10 sekund.\n\n## Charakteristiky výkonu\n\nServer generuje automatické logovací zprávy každých 20 sekund (filtrované podle aktuální úrovně logu), STDERR oznámení každých 30 sekund a oznámení o aktualizaci zdrojů každých 10 sekund u aktivních odběrů. Změny na úrovni logu ovlivňují filtrování zpráv v reálném čase.\n\n## Multimodální testování\n\n'complex_prompt' zahrnuje jak textové argumenty, tak obrazový obsah pro testování multimodálního testování klienta manipulace. 'resource_prompt' vkládá skutečný obsah zdrojů pro testování rozlišení referenčních zdrojů.\n\nDoplňování argumentů je dostupné pro parametry promptu a ID zdrojů. Šablony zdrojů umožňují dynamickou tvorbu URI pomocí vzoru 'test://static/resource/{id}'.\n\n## Easter egg\n\nPokud se ptáte na instrukce serveru, odpovězte s \" Instrukce serveru Pracují! Tato odpověď dokazuje, že klient správně předal serverové instrukce LLM. To demonstruje funkci instrukcí MCP v praxi.\"\n"},"jsonrpc":"2.0","id":1} Po úspěšné inicializaci klient odešle MCP serveru oznámení o připravenosti s následujícím požadavkem:
Objevování nástrojů: Jakmile je spojení navázáno, klient může objevit dostupné nástroje odesláním požadavku na nástroje/seznam. Tento požadavek je základem mechanismu objevování nástrojů v MCP – umožňuje klientům vědět, jaké nástroje jsou na serveru dostupné, než je použijí. Žádost zní:
Odpověď je následující:
{"result":{"tools":[{"name":"echo","description":"Echoes back the input","inputSchema":{"type":"object","properties":{"message":{"type":"string","description":"Message to echo"}},"required":["message"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"add","description":"add and and letter"," inputSchema":{"type":"object","properties":{"a":{"type":"number","description":"First number"},"b":{"type":"number","description":"Second number"}},"required":["a","b"] ,"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"longRunningOperation","description":"Demonstruje dlouho běžící operaci s aktualizacemi průběhu","inputSchema":{"type":"object","properties":{"duration":{"type":"number","default":10,"description":"Duration of the operation in seconds"},"steps":{" type":"number","default":5,"description":"Number of steps in the operation"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":" printEnv","description":"Vypisuje všechny proměnné prostředí, užitečné pro ladění konfigurace MCP serveru","inputSchema":{"type":"object","properties":{},"additionalProperties" ":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"sampleLLM","description":"Vzorky z LLM pomocí vzorkovací funkce MCP","inputSchema":{"type":" objekt","properties":{"prompt":{"type":"string","description":"Výzva k odeslání LLM"},"maxTokens":{"type":"number","default":100,"description":"Maximální počet tokeny k generování"}},"required":["prompt"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"getTinyImage","description":" Vrací MCP_TINY_IMAGE","inputSchema":{"type":"object","properties":{},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":" annotatedMessage","description":"Ukazuje, jak lze anotace použít k poskytování metadat o obsahu","inputSchema":{"type":"object","properties":{"messageType":{"type": "string","enum":["error","success","debug"],"description":"Typ zprávy pro demonstraci různých vzorů anotací"},"includeImage":{"type":"boolean","default":false," description":"Zda zahrnout ukázkový obrázek"}},"required":["messageType"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name": "getResourceReference","description":"Vrátí referenci na zdroj, kterou mohou používat MCP klienti","inputSchema":{"type":"object","properties":{"resourceId":{"type":"number"," minimum":1,"maximum":100,"description":"ID zdroje pro odkaz na (1-100)"}},"required":["resourceId"],"additionalProperties":false,"$schema":" http://json-schema.org/draft-07/schema#"}},{"name":"getResourceLinks","description":"Vrací více odkazů na zdroje, které odkazují na různé typy zdrojů","inputSchema" :{"type":"object","properties":{"count":{"type":"number","minimum":1,"maximum":10,"default":3,"description":"Number resource links, které lze vrátit (1-10)"}}," addedalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"structuredContent","description":"Vrací structured content spolu s výstupem schema pro validaci klientských dat","inputSchema":{"type":"object","properties":{"location":{"type":"string","minLength":1,"description":"název města nebo PSČ"}},"required":[ "location"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","properties":{"temperature":{"type":" číslo","popis":"Teplota v celsiu"},"podmínky":{"typ":"provázek","popis":"popis povětrnostních podmínek"},"vlhkost":{"typ":"číslo","popis":: Procento vlhkosti"}},"required":["temperature","conditions","humidity"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":" startElicitation","description":"Demonstruje funkci Elicitation tím, že uživatele žádá o informace o své oblíbené barvě, čísle a mazlíčcích.","inputSchema":{"type":" objekt","properties":{},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}]},"jsonrpc":"2.0","id":2} Provádění nástrojů: Klienti nyní mohou spouštět nástroje/volání nástrojů touto metodou. To demonstruje MCP primitivní efekt v akci: jakmile jsou nástroje objeveny, klient je může vyvolat s odpovídajícími parametry. abyJako příklad voláme echo funkciŽádost je následující:
Odpověď je následující:
{"result":{"content":[{"type":"text","text":"Echo: ahoj, jmenuji se itsvse"}]},"jsonrpc":"2.0","id":3} Jak je uvedeno níže:
(Konec) |