6 min čtení
MCP server: jak bezpečně napojit AI asistenta na ERP
MCP server zpřístupní AI asistentovi data z ERP, CRM nebo výpočtů. Popisuji přihlášení přes Entra ID a OAuth 2.1, nástroje pro čtení, audit log a první procesy.
Napsal František Jánoš, konzultant pro AI a datovou analýzu
MCP server je program, přes který AI asistent (Claude, ChatGPT nebo agent v Copilot Studiu) čte data z vašeho ERP, CRM nebo výpočetního nástroje a volá jejich funkce. Bezpečné napojení stojí na přihlášení firemním účtem přes Entra ID a OAuth 2.1, na úzkých nástrojích, ze začátku jen pro čtení, a na audit logu u každého volání. Asistent pak uvidí jen to, co smí vidět přihlášený člověk.
Co je Model Context Protocol
Model Context Protocol (MCP) je otevřený standard pro připojení AI aplikací k firemním systémům. Anthropic ho zveřejnil v listopadu 2024 a dnes ho podporují Claude, ChatGPT, Visual Studio Code i Microsoft Copilot Studio. Jeden MCP server tedy obslouží několik AI aplikací najednou.
Server nabízí nástroje (tools): pojmenované funkce s popisem a schématem vstupů, třeba stav_zakazky(cislo). Model podle dotazu vybere nástroj a vyplní parametry. Aplikace, ve které píšete, volání provede a vrátí modelu výsledek. Model do ERP nepíše SQL a nikde neklikne. Pracuje jen s tím, co nástroj vrátí.
Lokální, nebo vzdálený MCP server
Specifikace zná dva standardní přenosy. Přes stdio běží server jako proces na počítači uživatele. Přes Streamable HTTP běží na serveru a aplikace ho volá po HTTPS.
| Lokální (stdio) | Vzdálený (Streamable HTTP) | |
|---|---|---|
| Kde běží | na notebooku uživatele | na firemním serveru nebo v cloudu |
| Přihlášení | údaje z prostředí počítače | OAuth 2.1, ve firmě s Microsoft 365 přes Entra ID |
| Aktualizace | na každém počítači zvlášť | jednou na serveru |
| Audit log | rozptýlený po počítačích | na jednom místě |
| Hodí se pro | pokusy a osobní nástroje vývojáře | nástroje pro celé oddělení |
Když má nástroj používat obchod, plánování nebo kvalita, volte vzdálený server. Lokální server s heslem do ERP v konfiguračním souboru na deseti noteboocích neuhlídáte.
Přihlášení přes Entra ID a OAuth 2.1
Vzdálený MCP server vystupuje podle specifikace jako OAuth 2.1 resource server: přijímá přístupové tokeny a podle nich odpovídá. Tokeny vydává autorizační server. Ve firmě s Microsoft 365 tuto roli převezme Microsoft Entra ID. Uživatel se přihlásí stejným účtem jako do Outlooku a platí pro něj vícefaktorové ověření i pravidla, která už v Entra ID máte. Když zaměstnanec odejde a IT mu zruší účet, přijde i o přístup k MCP serveru.
Specifikace k tomu vyžaduje:
- Server zveřejní metadata chráněného zdroje (RFC 9728). Z nich aplikace zjistí, u kterého autorizačního serveru se má uživatel přihlásit.
- Aplikace použije PKCE s metodou S256, která chrání autorizační kód před zachycením.
- Aplikace si vyžádá token s parametrem
resource, tedy s adresou konkrétního MCP serveru (RFC 8707). Server přijme jen token vydaný pro sebe a token pro jinou službu odmítne. - Server token, který dostal od aplikace, nepošle dál do ERP.
Bod 4 rozhoduje o tom, jak server mluví s ERP. Máte dvě cesty. Server se do ERP hlásí vlastním technickým účtem s co nejužšími právy a oprávnění uživatele kontroluje sám. Nebo si od Entra ID vyžádá nový token pro ERP jménem uživatele (tok on-behalf-of), pokud vaše ERP přihlášení přes Entra ID podporuje.
Nástroje jen pro čtení a nástroje se zápisem
Výběr nástrojů ovlivní bezpečnost víc než výběr modelu. Specifikace doporučuje, aby u každého volání byl člověk, který ho může odmítnout, a aby aplikace před citlivou operací žádala potvrzení. Potvrzovací okno ale chrání jen uživatele, který ho čte. Hranice proto stavím na serveru:
- Začínám čtením. Stav zakázky, zásoba materiálu, otevřené reklamace, výsledek výpočtu.
- Jeden nástroj, jedna úloha. Nástroj má pevné parametry a vrací jen potřebná pole. Model nedostane obecný nástroj „spusť dotaz“.
- Zápis jako návrh. Nástroj založí koncept nákupního požadavku ve stavu „ke schválení“ a člověk ho potvrdí přímo v ERP.
- Zápis jen pro role. Specifikace 2026-07-28 výslovně dovoluje, aby server vrátil seznam nástrojů podle oprávnění v tokenu. Skladník tak nástroj pro změnu ceny vůbec neuvidí.
- Ověřené vstupy a limit volání. Obojí specifikace serverům ukládá jako povinnost.
Anotace nástroje, například značka „jen pro čtení“, slouží aplikaci jako nápověda. Specifikace ji považuje za nedůvěryhodnou, dokud nepochází z důvěryhodného serveru. Omezení tedy musí platit v kódu serveru.
Audit log: co zapisovat
Specifikace doporučuje logovat volání nástrojů v aplikaci. Aplikaci ale spravuje dodavatel AI, proto vedu log i na MCP serveru. U každého volání zapisuji:
| Pole | Příklad |
|---|---|
| Kdo | uživatel z tokenu Entra ID |
| Kdy | čas volání |
| Co | název nástroje a parametry |
| Výsledek | počet vrácených řádků, nebo ID založeného konceptu |
| Chyba | odmítnutý token, neplatný vstup, výpadek ERP |
Do logu neukládám tokeny ani celé odpovědi s osobními údaji. Z logu za první měsíc uvidíte, na co se lidé ptají nejčastěji a který nástroj chybí.
Z mé praxe: konfigurátor jako vzdálený MCP server
Pro distributora techniky jsem postavil konfigurátor, který dimenzuje tepelné čerpadlo a vytápění podle EN 14825 a VDI 4650. Pracuje s archivními daty o počasí pro 9 264 českých obcí a výsledek uloží do zprávy ve Wordu. Stejné výpočetní jádro jsem pak zveřejnil jako vzdálený MCP server za přihlášením přes Entra ID (OAuth 2.1). Obchodník se v AI asistentovi zeptá na návrh pro dům v konkrétní obci a asistent zavolá tentýž výpočet jako webový konfigurátor.
Z projektu jsem si odnesl tři pravidla:
- Model nepočítá. Výpočet provede otestované jádro. Model vyplní vstupy a vysvětlí výsledek, takže dva obchodníci se stejným zadáním dostanou stejné číslo.
- Jeden kód pro web i MCP. Opravu výpočtu nasadím jednou a platí v obou kanálech.
- Přístupy spravuje IT. O tom, kdo nástroj použije, rozhoduje firemní účet v Entra ID. Seznam hesel k MCP serveru nevedu.
Dřív jsem v Nitto Denko Czech stavěl dashboardy nad SAP QM a analýzy v Pythonu a Power BI nad rychlostí linky a parametry strojů. Na řadu otázek, kvůli kterým tehdy lidé čekali na report, dnes odpoví asistent přes nástroj jen pro čtení. Víc o mé práci najdete na stránce Co umím.
Které procesy ve výrobní firmě napojit jako první
Začněte tam, kde lidé denně hledají údaj v ERP pro někoho jiného a kde špatná odpověď nic nezapíše.
| Proces | Typ nástroje | Proč začít tady |
|---|---|---|
| Stav zakázky a termín expedice pro obchod | čtení | častý dotaz, odpověď leží v ERP |
| Zásoba a rezervace materiálu | čtení | plánovač si údaj ověří v ERP |
| Otevřené reklamace a stav 8D | čtení | kvalita a obchod se ptají na totéž |
| Technické výpočty a konfigurátory | výpočet | výsledek je opakovatelný a jde otestovat |
| Hledání v technické dokumentaci | čtení | viz AI asistent nad dokumenty |
| Návrh nákupního požadavku | zápis jako koncept | až po měsících provozu nástrojů pro čtení |
Účetní zápisy, změny kmenových dat a schvalování nechte mimo MCP, dokud z audit logu nevíte, jak lidé s nástroji pracují. Na příjem dokladů do ERP se víc hodí samostatný proces s kontrolou člověkem, jako u vytěžování faktur nebo zpracování objednávek z e-mailu.
Jak MCP server otestovat před nasazením
Každý nástroj má automatické testy na známé vstupy a výstupy. K tomu držím sadu typických dotazů uživatelů a u každého očekávané volání nástroje. Sadu pouštím před každým nasazením. U AI asistenta nad technickou dokumentací stejná regresní sada zastaví nasazení, když se odpovědi zhorší.
U MCP serveru navíc ověřuji přihlášení: požadavek bez tokenu musí skončit odpovědí 401, token vydaný pro jinou aplikaci server odmítne a uživatel bez role nástroje se zápisem v seznamu nevidí.
Časté dotazy
- Potřebuji kvůli MCP serveru nové ERP?
- Nepotřebujete. MCP server volá rozhraní, které vaše ERP už má: API, databázový pohled nebo pravidelný export. Když ERP žádné rozhraní nemá, server čte z kopie dat ve vlastní databázi.
- Uvidí AI asistent všechna data v ERP?
- Ne. Model vidí jen výsledky nástrojů, které server nabídne. Server je vrátí jen přihlášenému uživateli, který na daná data má oprávnění.
- Funguje MCP s ChatGPT a s Microsoft Copilotem?
- Claude i ChatGPT MCP servery podporují. V Microsoft Copilot Studiu připojíte MCP server k agentovi jako zdroj nástrojů. Jeden server tak obslouží více AI aplikací.
- Jaký je rozdíl mezi MCP a klasickým API?
- API je rozhraní pro programátora, který píše integraci. MCP popisuje nástroje tak, aby je jazykový model sám našel a zavolal, a sjednocuje přihlášení. MCP server často uvnitř volá existující API.
- Odejdou data z ERP k poskytovateli AI?
- Výsledek nástroje zpracuje jazykový model, takže data z odpovědi nástroje k poskytovateli modelu odejdou. Proto nástroj vrací jen pole, která odpověď potřebuje, a firma má používat firemní tarif s podmínkami pro zpracování dat.
Zdroje
- 01Model Context Protocol: What is MCP?, navštíveno 23. 10. 2026
- 02MCP Specification 2026-07-28: Authorization, navštíveno 23. 10. 2026
- 03MCP Specification 2026-07-28: Tools, navštíveno 23. 10. 2026
- 04Anthropic: Introducing the Model Context Protocol (25. 11. 2024), navštíveno 23. 10. 2026
- 05Microsoft Learn: OAuth 2.0 On-Behalf-Of flow (Microsoft identity platform), navštíveno 23. 10. 2026
O autorovi
František Jánoš
Stavím nástroje na vytěžování faktur a poptávek, AI asistenty nad technickou dokumentací a napojení AI na ERP. Několik z nich je v ostrém provozu.
Co umím