ERP MCP serveris yra verslo sistemos veiksmų, paskelbtų per Model Context Protocol, rinkinys, kad bet kuris suderinamas AI agentas galėtų sužinoti, ką sistema gali padaryti, ir tai padaryti. Konkrečiai, tai yra vienas HTTPS galinis taškas, kuris atsako į du JSON-RPC metodus: tools/listkuris grąžina skambinančiam asmeniui prieinamus įrankius su pavadinimu, aprašymu ir JSON schemą įvestims, ir tools/call, kuris vykdo vieną iš jų ir grąžina rezultatą, kurį modelis gali perskaityti. Claude, ChatGPT, Cursor, VS Code ir kiti klientai kalba protokolu, todėl serveris parašytas vieną kartą ir kiekvienas agentas gali jį naudoti.
ERP atveju dvi svarbios dalys nėra transporto dalyje. Pirmiausia, įrankių sąrašas ir kiekvienas skambutis yra pritaikyti asmeniui, kurį atstovauja agentas, ką protokolas palaiko per OAuth ir pagal užklausą įgaliojimą, tačiau palieka serveriui tai užtikrinti. Antra, kiekvienas įrankis turi atitikti verslo sandorį, kurį saugu pakartoti, atsisakyti ar klausti, nes modelis atliks visus tris veiksmus.
Serveris, kuris paverčia sistemą į įrankius
Model Context Protocol turi tris vaidmenis. Šalys yra AI programinė įranga, tokia kaip Claude arba ChatGPT. Šalies viduje kiekvienam serveriui sukuriamas klientas, kuris kalba tik su tuo serveriu. Serveris yra paslauga, kuri siūlo kontekstą ir galimybes šeimininkui per nedidelį skaičių pirminių elementų. Specifikacijos dizaino principai sako, kad serverius turėtų būti lengva kurti, sudėtiniai ir negalintys matyti visos pokalbio ar kitų serverių; šeimininkas išlaiko pokalbį ir užtikrina sutikimą, serveris mato tik jam adresuotus skambučius.
Todėl ERP MCP serveris nėra ERP. Tai yra ERP veiksmų paviršius, išreikštas kaip įrankiai su tipizuotomis įvestimis, pateikiamas viename URL. Įdomus dizaino sprendimas yra tai, kas yra įrankis. Oro prognozės serveris turi vieną; verslo sistema turi šimtus, o naudingi yra veiksmai, kuriuos asmuo galėtų atlikti (sukurti sąskaitą, užregistruoti mokėjimą, perkelti sandorį, rezervuoti atsargas), o ne eilutės lentelėse. Pavyzdžiui, Sois darbo erdvės serveris skelbia įrankius su pavadinimais, tokiais kaip sukurti sąskaitą faktūrą, įrašytiMokėjimą, searchContacts ir išnagrinėtiKontaktągrupuojama pagal modulius, o tiksli sąrašas, kurį gauna skambinantis, priklauso nuo to, kas jie yra.
Įrankiai, ištekliai ir raginimai
Specifikacija apibrėžia tris serverio pirminius elementus, ir jie skiriasi tuo, kas kontroliuoja jų naudojimą. Įrankiai yra modelio kontroliuojami: modelis nusprendžia, kada skambinti. Ištekliai yra programos valdomi: šeimininkas nusprendžia, kokį kontekstą pridėti, dažnai vartotojui renkantis iš sąrašo. Pasiūlymai yra vartotojo kontroliuojami šablonai. ERP reikia pirmo, gali pasinaudoti antru, o trečio retai reikia.
| Primitive | Kas tai inicijuoja | Forma | ERP sistemoje |
|---|---|---|---|
| Įrankiai | Modelis, per įrankius/skambutį | Pavadinimas, aprašymas, įvesties schema, neprivaloma išvesties schema ir anotacijos; rezultatas turi turinį, neprivalomą struktūruotą turinį ir yra klaida | Kiekviena veika: paieška, kūrimas, atnaujinimas, siuntimas, patvirtinimas, suderinimas |
| Ištekliai | Šalintojas arba vartotojas, per resources/read | URI su MIME tipu; tekstiniai arba binariniai turiniai; pasirenkami šablonai ir pakeitimų prenumeratos | Nuorodos dokumentai, kliento pareiškimas, ataskaita; naudingi, bet ne ten, kur vyksta darbas |
| Paskatos | Vartotojas, per užklausas/gauti | Pavadinta žinučių šablonas su argumentais | Kartais, mėnesio pabaigos procedūrai; dauguma ERP serverių jų nepateikia |
Claude žinučių API jungiklis ir OpenAI atsakymų API palaiko tik įrankius, tai dar viena priežastis, kodėl ERP esmę reikia integruoti į įrankius.
Dvi įrankių rezultatų savybės yra svarbios verslo sistemai. Įrankis gali deklaruoti išvesties schemą ir grąžinti struktūrizuotą turinį kuris atitinka ją, kartu su tekstu, kurį modelis skaito, kad integracija galėtų naudoti rezultatą be prozos analizės. O įrankis, kuris nepavyksta dėl verslo priežasties (sąskaita netinkamoje būsenoje, data praeityje, trūksta leidimo), grąžina normalų rezultatą su isError: true ir paaiškinimu, o ne protokolo klaida, kad modelis galėtų ištaisyti savo įvestį ir bandyti dar kartą. Protokolo klaidos yra skirtos netinkamai suformuluotiems užklausoms ir nežinomiems įrankiams.
Transportas ir dabartinė specifikacija
Du transportai yra standartiniai. Stdio yra serveriui, kurį klientas paleidžia kaip vietinį procesą, tai yra, kaip veikia darbalaukio įrankiai, tokie kaip failų prieiga. Streamable HTTP yra skirtas nuotoliniams serveriams ir tai, ką naudoja ERP: serveris atskleidžia vieną galinį tašką, kuris priima HTTP POST užklausą per JSON-RPC žinutę ir atsako arba JSON objektu, arba Server-Sent Events srautu, skirtu šiai užklausai, kad ilga užklausa galėtų siųsti pažangą prieš galutinį rezultatą. Ankstesnis HTTP su SSE transportu yra pasenęs.
Dabartinė revizija, 2026-07-28, pakeitė transportą taip, kad tai svarbu visiems, diegiantiems serverį už apkrovos balansavimo. Ji pašalino protokolo lygio sesijas: nebėra inicializavimo rankos paspaudimo ar sesijos identifikatoriaus antraštės, kiekviena užklausa neša savo protokolo versiją ir kliento galimybes savo metaduomenyse, o serveris, kuriam reikia būsenos tarp užklausų, grąžina aiškų valdiklį, kurį modelis perduoda kaip argumentą. Serveriai, sukurti pagal 2025-11-25 reviziją, kuri naudojo sesijas, toliau veikia, nes klientai privalo atpažinti senesnę erą ir grįžti atgal; naujas serveris neturėtų priimti sesijų.
Įgaliojimas: kam skambinama
HTTP transportams specifikacija apibrėžia OAuth 2.1 srautą. Serveris yra išteklių serveris ir turi paskelbti apsaugotų išteklių metaduomenis (RFC 9728), nurodydamas savo autorizacijos serverį; kai užklausa atvyksta be žetono, jis atsako 401 su WWW-Authenticate antrašte, nurodančia tuos metaduomenis ir, idealiu atveju, mažiausią reikalingą apimtį. Klientas atranda autorizacijos serverio galinius taškus, identifikuoja save (kliento ID metaduomenų dokumentai yra rekomenduojamas kelias; dinaminė registracija išlaikoma suderinamumui), vykdo autorizacijos kodo srautą su PKCE ir turi įtraukti serverio kanoninį URI kaip išteklių parametrą, kad žetonas būtų susietas tik su šiuo serveriu. Serveris turi patvirtinti tą auditoriją, turi atsisakyti žetonų, išduotų kitoms reikmėms, ir niekada neturi perduoti žetono kitai paslaugai.
ERP pasekmė yra svarbi. Kadangi žetonas identifikuoja asmenį, serveris gali keisti rezultatus pagal tools/list užklausos kredencialus, ir specifikacija tai aiškiai nurodo. Tai yra vaidmenų pagrindu filtruojančio mechanizmo esmė: finansų vartotojo sąrašas ir sandėlio vartotojo sąrašas kyla iš to paties serverio ir yra skirtingi. Nepakankama apimtis vykdymo metu signalizuojama 403 ir apimties iššūkiu, kurį klientas gali įveikti, nors daugumai verslo sistemų tikrasis ribas yra vaidmuo ERP, o ne šiurkšti OAuth apimtis.
Sunkioji dalis: leidimai ir sandoriai
Viskas, kas išdėstyta aukščiau, gali būti įgyvendinta per popietę naudojant SDK. Kas skiria ERP MCP serverį nuo demonstracijos, yra dviejų dalykų, kuriuos protokolas palieka serveriui, tvarkymas: ar skambutis yra leidžiamas, ir ką skambutis reiškia.
Leidimas turi būti tikrinamas du kartus. Įrankių sąrašo filtravimas sustabdo modelį pasirinkti tai, ko jis neturėtų, kas taupo žetonus ir sumažina painiavą. Patikrinimas dar kartą, kai įrankis veikia, yra tikroji riba, nes klientas gali siųsti bet kokį jam patinkantį skambutį. Atmetimas geriausiai grąžinamas kaip įrankio vykdymo klaida, kad modelis ją perskaitytų ir praneštų, o ne kaip transporto nesėkmė, kuri baigia ėjimą. Taip atrodo atmestas skambutis iš Sois darbo vietos: normalus rezultatas, pažymėtas, su priežastimi.
{
"jsonrpc": "2.0",
"id": 7,
"result": {
"content": [
{
"type": "text",
"text": "Tool not permitted for this account: approveInvoice requires the finance approver role."
}
],
"isError": true
}
}Leidimo atmetimas grąžinamas kaip įrankio vykdymo klaida. Modelis sužino kodėl ir gali paprašyti asmens patvirtinti; nieko nebuvo užrašyta. Sois taip pat rezervuoja JSON-RPC klaidų kodus neautorizuotoms sesijoms, nepakankamiems kreditams, neleistiniems įrankiams ir pasiektoms biudžeto riboms.
Sandoriai yra antroji pusė. Įrankis turėtų atitikti vieną verslo sandorį su aiškiu prieš ir po: sukurti sąskaitą faktūrą sukuria juodraštį su identifikatoriumi, įrašytiMokėjimą taikoma viena mokėjimo suma vienai sąskaitai, ir nei viena nepalieka pusiau parašytos būsenos, jei nepavyksta. Modeliai pakartoja, todėl rašymai turėtų būti saugūs pakartoti arba turėtų atsisakyti pakartojimo su aiškiu pranešimu; specifikacijos anotacijos leidžia serveriui paskelbti įrankį kaip tik skaitymui, idempotentą arba destruktyvų, o tokie klientai kaip ChatGPT naudoja tuos užuominas, kai nusprendžia, ar prašyti patvirtinimo. Kur žingsniui reikia sprendimo, kuris viršija agento įgaliojimus, serveris gali grąžinti rezultatą, reikalaujantį įvesties, užduodamas asmeniui klausimą per klientą, o ne spėliodamas.
Leidimų sluoksnis yra tarp galinio taško ir modulių. Įrankių sąrašas filtruojamas pagal skambinančiojo vaidmenį išvykstant, o kiekvienas skambutis dar kartą tikrinamas atvykstant, prieš pasiekiant modulį.
Kaip Sois tai įgyvendina
Sois darbo erdvė yra MCP serveris vienu URL, darbo erdvės adresu, po kurio seka: /api/mcp. It answers the 401 challenge with protected resource metadata, publishes its authorisation server metadata, requires PKCE, and issues tokens scoped to the workspace; a connector in Claude or ChatGPT completes the sign-in with nothing pasted. A bearer token with an API key is available for scripts that do not do OAuth, with identity and spend held in separate credentials on purpose.
Įrankių sąrašas generuojamas iš gyvų įrankių apibrėžimų ir filtruojamas pagal vaidmenis bei įdiegtas programas, tada kiekvienas skambutis tikrinamas dėl leidimų vykdymo metu ir uždaromas, jei nepavyksta. Skambučiai ribojami pagal ryšį, matuojami, kai darbo vietos agentas atlieka mąstymą, ir nemokami, kai skambinančiojo agentas tai daro, ribojami biudžetu, kurį nustato darbo vieta, ir registruojami su įvestimis ir rezultatais, susijusiais su asmeniu, kuris juos atliko. Programos, paskelbtos rinkoje, prideda savo įrankius prie to paties sąrašo pagal tas pačias taisykles, todėl kūrėjo programa gali būti naudojama agento, kai ji yra įdiegta.
Klausimai, kuriuos žmonės užduoda
Ar MCP serveris yra tik REST API apvalkalas?
Dažnai tai įgyvendinama taip, ir tai yra gerai. Skirtumas yra tai, ką ji skelbia: tipizuoti įrankiai, kuriuos modelis gali atrasti vykdymo metu, rezultatai, kuriuos modelis gali perskaityti ir atkurti, ir vartotojo OAuth autorizacija, ko REST API agentui savaime nesuteikia.
Kurie agentai šiandien gali naudoti ERP MCP serverį?
Claude (žiniatinklyje, darbalaukyje, Cowork, Claude Code ir Messages API jungtis), ChatGPT kūrėjo režimu ir Responses API, Cursor, VS Code ir bet kuris kitas klientas, kuris įgyvendina protokolą. Serveriui nereikia žinoti, kuris iš jų skambina.
Ar serveris turi išlaikyti sesijas?
Ne pagal dabartinę reviziją, kuri pašalino protokolo lygio sesijas ir reikalauja, kad serveriai grąžintų aiškius identifikatorius viskam, kas apima skambučius. Klientai vis dar bendrauja su serveriais pagal 2025-11-25 reviziją, kuri naudojo sesijos antraštę, nustatydami senesnę erą.
Kur ERP taiko leidimus?
Serverio pusėje, vykdymo metu, kiekvieno skambučio metu. Įrankių sąrašo filtravimas yra patogumas modeliui; svarbus patikrinimas vyksta, kai įrankis veikia, o atsisakymas turėtų grįžti kaip skaitomas įrankio klaidos pranešimas, kad nieko nebūtų užrašyta ir modelis galėtų paaiškinti kodėl.
- Modelio konteksto protokolo specifikacija (2026-07-28): įrankiai įrankių apibrėžimai, rezultatai, klaidų tvarkymas, anotacijos ir įrankių/sąrašo variantai pagal užklausą
- Model Context Protocol specifikacija: transliacija HTTP transportu ir pakeitimų žurnalas vieno taško transportas, sesijų pašalinimas ir atgalinis suderinamumas
- Model Context Protocol specifikacija: autorizacija OAuth 2.1, apsaugota išteklių metaduomenų, išteklių rodikliai ir žetono taisyklės
- Sois dokumentacija: darbo erdvės MCP serveris galinis taškas, atradimo dokumentai, vaidmenų filtravimas, limitai ir klaidų kodai, kaip įgyvendinta
Šis straipsnis peržiūrimas, kai keičiasi jame aprašyti produktai. Kita suplanuota peržiūra: 2026 m. gruodžio 4 d..
