Server ERP MCP je akciami obchodného systému publikovanými cez Model Context Protocol, aby akýkoľvek kompatibilný AI agent mohol zistiť, čo systém dokáže a vykonať to. Konkrétne ide o jeden HTTPS koncový bod, ktorý odpovedá na dve metódy JSON-RPC: tools/list, ktorý vracia nástroje dostupné volajúcemu s názvom, popisom a JSON schémou pre vstupy, a nástroje/vola, ktorý spúšťa jeden z nich a vracia výsledok, ktorý model dokáže prečítať. Claude, ChatGPT, Cursor, VS Code a ďalší klienti hovoria protokolom, takže server je napísaný raz a každý agent ho môže používať.
Pre ERP sú dve dôležité veci mimo transportu. Prvá je, že zoznam nástrojov a každý hovor sú obmedzené na osobu, ktorú agent zastupuje, čo protokol podporuje cez OAuth a autorizáciu na požiadanie, ale necháva serveru, aby to vynucoval. Druhá je, že každý nástroj musí zodpovedať obchodnej transakcii, ktorú je bezpečné zopakovať, odmietnuť alebo sa na ňu opýtať, pretože model vykoná všetky tri.
Server, ktorý premieňa systém na nástroje
Model Context Protocol má tri úlohy. Host je AI aplikácia ako Claude alebo ChatGPT. Vo vnútri hosta je vytvorený klient pre každý server a komunikuje iba s týmto serverom. Server je služba, ktorá ponúka kontext a schopnosti hostiteľovi prostredníctvom malého počtu primitív. Dizajnové princípy špecifikácie hovoria, že servery by mali byť ľahko zostaviteľné, skladateľné a nemali by vidieť celú konverzáciu alebo iné servery; hostiteľ uchováva konverzáciu a vynucuje súhlas, server vidí iba hovory adresované jemu.
Server ERP MCP teda nie je ERP. Je to akčná plocha ERP, vyjadrená ako nástroje s typovanými vstupmi, poskytovaná na jednej URL. Zaujímavé dizajnové rozhodnutie je, čo je nástroj. Server počasia má jeden; obchodný systém má stovky, a užitočné sú akcie, ktoré by mohol človek vykonať (vytvoriť faktúru, zaznamenať platbu, presunúť obchod, rezervovať zásoby) skôr než riadky v tabuľkách. Napríklad server pracovného priestoru Sois zverejňuje nástroje s názvami ako vytvoriť faktúru, zaznamenaťPlatbu, searchContacts a preskúmať kontaktskupinou podľa modulu a presný zoznam, ktorý volajúci dostane, závisí od toho, kto sú.
Nástroje, zdroje a podnety
Špecifikácia definuje tri serverové primitívy, a líšia sa v tom, kto kontroluje ich použitie. Nástroje sú riadené modelom: model rozhoduje, kedy zavolať jeden. Zdroje sú riadené aplikáciou: hostiteľ rozhoduje, aký kontext pripojiť, často s používateľom, ktorý si vyberá zo zoznamu. Výzvy sú šablóny riadené používateľom. ERP potrebuje prvý, môže mať prospech z druhého a zriedka potrebuje tretí.
| Primitive | Kto to vyvoláva | Tvar | V ERP |
|---|---|---|---|
| Nástroje | Model, prostredníctvom nástrojov/hovor | Názov, popis, vstupný schéma, voliteľný výstupný schéma a anotácie; výsledok má obsah, voliteľný štruktúrovaný obsah a jeError | Každá akcia: vyhľadávanie, vytváranie, aktualizácia, odosielanie, schvaľovanie, zosúlaďovanie |
| Zdroje | Hostiteľ alebo používateľ, prostredníctvom resources/read | URI s MIME typom; textový alebo binárny obsah; voliteľné šablóny a predplatné zmien | Referenčné dokumenty, vyhlásenie zákazníka, správa; užitočné, ale nie tam, kde sa práca vykonáva |
| Podnety | Používateľ, prostredníctvom príkazov/get | Šablóna správy s názvom a argumentmi | Občas, pre mesačnú rutinu; väčšina ERP serverov ich vynecháva |
Konektor API správ Claude a nástroje API odpovedí OpenAI podporujú iba nástroje, čo je ďalší dôvod, prečo vložiť podstatu ERP do nástrojov.
Dve vlastnosti výsledkov nástrojov sú dôležité pre podnikový systém. Nástroj môže deklarovať výstupný schéma a vrátiť štruktúrovaný obsah ktorý mu vyhovuje, spolu s textom, ktorý model číta, takže integrácia môže použiť výsledok bez analýzy textu. A nástroj, ktorý zlyhá z obchodného dôvodu (faktúra v nesprávnom stave, dátum v minulosti, chýbajúce povolenie) vráti normálny výsledok s isError: true a vysvetlením, namiesto chyby protokolu, aby model mohol opraviť svoj vstup a skúsiť to znova. Chyby protokolu sú vyhradené pre nesprávne formátované požiadavky a neznáme nástroje.
Transport a aktuálna špecifikácia
Dva prenosy sú štandardné. Stdio je pre server, ktorý klient spúšťa ako lokálny proces, čo je spôsob, akým fungujú desktopové nástroje, ako je prístup k súborom. Streamovateľné HTTP je pre vzdialené servery a to je to, čo ERP používa: server vystavuje jeden koncový bod, ktorý prijíma HTTP POST na každú správu JSON-RPC a odpovedá buď JSON objektom, alebo prúdom udalostí odoslaných serverom, ktorý je obmedzený na túto požiadavku, takže dlhý hovor môže poslať pokrok pred konečným výsledkom. Predchádzajúci HTTP s prenosom SSE je zastaraný.
Aktuálna revízia, 2026-07-28, zmenila prenos spôsobom, ktorý je dôležitý pre každého, kto nasadzuje server za vyrovnávacím zariadením. Odstránila relácie na úrovni protokolu: už neexistuje inicializačné podanie rúk ani hlavička identifikátora relácie, každá požiadavka nesie svoju verziu protokolu a schopnosti klienta vo vlastných metadátach, a server, ktorý potrebuje stav medzi volaniami, vracia explicitnú referenciu, ktorú model odovzdáva späť ako argument. Servery napísané proti revízii 2025-11-25, ktoré používali relácie, naďalej fungujú, pretože klienti sú povinní detekovať staršiu éru a vrátiť sa späť; nový server by nemal prijímať relácie.
Autorizácia: pre koho je hovor
Pre HTTP prenosy špecifikácia definuje tok OAuth 2.1. Server je serverom zdrojov a musí zverejniť metadata chránených zdrojov (RFC 9728) pomenúvajúce svoj autorizačný server; keď príde požiadavka bez tokenu, odpovedá 401 s hlavičkou WWW-Authenticate, ktorá ukazuje na tieto metadata a, ideálne, na najmenší potrebný rozsah. Klient objavuje koncové body autorizačného servera, identifikuje sa (dokumenty metadát klientského ID sú odporúčanou cestou; dynamická registrácia sa zachováva pre kompatibilitu), vykonáva tok autorizačného kódu s PKCE a musí zahrnúť kanonickú URI servera ako parameter zdroja, aby bol token viazaný len na tento server. Server musí overiť toto publikum, musí odmietnuť tokeny vydané pre niečo iné a nikdy nesmie prenášať token na iný servis.
Dôsledok pre ERP je dôležitý. Pretože token identifikuje osobu, server môže variabilne meniť výsledok tools/list podľa poverení v požiadavke, a špecifikácia to hovorí výslovne. To je mechanizmus pre filtrovanie na základe rolí: zoznam používateľa financií a zoznam používateľa skladu pochádzajú z rovnakého servera a sú odlišné. Nedostatočný rozsah za behu je signalizovaný s 403 a výzvou na rozsah, z ktorej sa klient môže posunúť, hoci pre väčšinu obchodných systémov je skutočná hranica rola v ERP, nie hrubý rozsah OAuth.
Ťažká časť: povolenia a transakcie
Všetko vyššie uvedené môže byť implementované za popoludnie s SDK. Čo oddeľuje server ERP MCP od ukážky, je zaobchádzanie s dvoma vecami, ktoré protokol zanecháva serveru: či je volanie povolené a čo volanie znamená.
Povolenie sa musí kontrolovať dvakrát. Filtrovanie zoznamu nástrojov zabraňuje modelu vybrať niečo, čo by nemal, čo šetrí tokeny a zamedzuje zmätku. Kontrola znova, keď sa nástroj spúšťa, je skutočná hranica, pretože klient môže poslať akékoľvek volanie, aké chce. Odmietnutie je najlepšie vrátiť ako chybu vykonania nástroja, takže model to prečíta a nahlási, skôr než ako zlyhanie prenosu, ktoré končí kolo. Takto vyzerá odmietnuté volanie z pracovného priestoru Sois: normálny výsledok, označený, s dôvodom.
{
"jsonrpc": "2.0",
"id": 7,
"result": {
"content": [
{
"type": "text",
"text": "Tool not permitted for this account: approveInvoice requires the finance approver role."
}
],
"isError": true
}
}Odmietnutie povolenia vrátené ako chyba vykonania nástroja. Model sa dozvie prečo a môže požiadať osobu o schválenie; nič nebolo napísané. Sois tiež vyhradzuje kódy chýb JSON-RPC pre neoprávnené relácie, nedostatočné kredity, nepovolené nástroje a dosiahnuté rozpočtové limity.
Transakcie sú druhá polovica. Nástroj by mal zodpovedať jednej obchodnej transakcii s jasným pred a po: vytvoriť faktúru vytvára návrh s identifikátorom, zaznamenaťPlatbu aplikuje jednu platbu na jednu faktúru, a ani jedna nezanechá polopísaný stav, ak zlyhá. Modely opakujú, takže zápisy by mali byť bezpečné na opakovanie alebo by mali odmietnuť opakovanie s jasnou správou; anotácie špecifikácie umožňujú serveru vyhlásiť nástroj ako len na čítanie, idempotentný alebo deštruktívny, a klienti ako ChatGPT používajú tieto náznaky pri rozhodovaní, či požiadať o potvrdenie. Kde krok potrebuje rozhodnutie, ktoré presahuje autoritu agenta, server môže vrátiť výsledok vyžadujúci vstup, ktorý sa pýta osobu otázku prostredníctvom klienta, namiesto hádania.
Vrstva povolenia sedí medzi koncovým bodom a modulmi. Zoznam nástrojov je filtrovaný podľa role volajúceho na ceste von a každé volanie je znova kontrolované na ceste dnu, predtým než dosiahne modul.
Ako Sois implementuje jeden
Pracovný priestor Sois je server MCP na jednej URL, adresa pracovného priestoru nasleduje za /api/mcpOdpovedá na výzvu 401 s metadátami chránených zdrojov, zverejňuje metadáta svojho autorizačného servera, vyžaduje PKCE a vydáva tokeny obmedzené na pracovný priestor; konektor v Claude alebo ChatGPT dokončuje prihlásenie bez kopírovania. Pre skripty, ktoré nepoužívajú OAuth, je k dispozícii prístupový token s API kľúčom, pričom identita a výdavky sú úmyselne uchovávané v oddelených povereniach.
Zoznam nástrojov je generovaný z aktuálnych definícií nástrojov a filtrovaný podľa rolí a nainštalovaných aplikácií, pričom každé volanie je kontrolované na oprávnenie pri vykonaní a zlyhá, ak nie je povolené. Volania sú obmedzené na rýchlosť na pripojenie, merané tam, kde vlastný agent pracovného priestoru vykonáva logiku, a bez poplatkov za AI tam, kde to robí vlastný agent volajúceho, pričom sú obmedzené rozpočtom, ktorý nastavuje pracovný priestor, a zaznamenané s vstupmi a výsledkami voči osobe, ktorá ich vytvorila. Aplikácie zverejnené na trhu pridávajú svoje nástroje do rovnakého zoznamu podľa rovnakých pravidiel, takže aplikácia vývojára je použiteľná agentom hneď po jej nainštalovaní.
Otázky, ktoré sa ľudia pýtajú.
Je server MCP len obal okolo REST API?
Často je implementovaný týmto spôsobom, a to je v poriadku. Rozdiel je v tom, čo zverejňuje: typizované nástroje, ktoré môže model objaviť za behu, výsledky, ktoré môže model čítať a obnoviť, a autorizáciu OAuth pre každého používateľa, čo žiadne REST API agentovi samo o sebe neposkytuje.
Ktoré agenti môžu dnes používať server ERP MCP?
Claude (web, desktop, Cowork, Claude Code a konektor Messages API), ChatGPT v režime vývojára a Responses API, Cursor, VS Code a akýkoľvek iný klient, ktorý implementuje protokol. Server nemusí vedieť, ktorý z nich volá.
Musí server uchovávať relácie?
Nie podľa aktuálnej revízie, ktorá odstránila relácie na úrovni protokolu a žiada servery, aby vracali explicitné identifikátory pre všetko, čo presahuje volania. Klienti sa stále interoperujú so servermi na revízii 2025-11-25, ktorá používala hlavičku relácie, detekovaním staršej éry.
Kde ERP vynucuje oprávnenia?
Na serveri, pri vykonaní, pri každom volaní. Filtrovanie zoznamu nástrojov je pohodlnosť pre model; kontrola, ktorá je dôležitá, sa vykonáva, keď sa nástroj spustí, a odmietnutie by malo prísť späť ako čitateľná chyba nástroja, aby sa nič nenapísalo a model mohol vysvetliť prečo.
- Špecifikácia Model Context Protocol (2026-07-28): nástroje definície nástrojov, výsledky, spracovanie chýb, anotácie a variácie nástrojov/zoznamu na požiadanie
- Špecifikácia Model Context Protocol: Streamovateľný HTTP prenos a záznam zmien prenos s jedným koncovým bodom, odstránenie relácií a spätná kompatibilita
- špecifikácia Model Context Protocol: autorizácia OAuth 2.1, chránené metadáta zdrojov, indikátory zdrojov a pravidlá tokenov
- Dokumentácia Sois: server pracovného priestoru MCP koncový bod, dokumenty na objavovanie, filtrovanie rolí, limity a chybové kódy, ako sú implementované
Tento článok sa prehodnocuje, keď sa zmenia produkty, ktoré popisuje. Ďalšie naplánované prehodnotenie: 4. decembra 2026.
