Interfața MCP
Verificat
Pe scurt
Secțiune intitulată „Pe scurt”MitoOps oferă un server MCP la distanță standard (Model Context Protocol) la adresa /api/mcp, prin care o aplicație AI compatibilă își cere singură datele. Se bazează pe aceleași capacități ca REST: nu este o a doua interfață cu propriile interogări, ci un alt mod de a întreba același lucru.
MCP nu este o proprietate a modelului, ci a aplicației în care rulează modelul (clientul). Se conectează orice aplicație care acceptă MCP la distanță prin HTTP, cu OAuth sau cu cheie de acces. Claude.ai este clientul verificat în producție: procedura lui exactă este mai jos; pentru o altă aplicație este valabilă procedura generală din partea următoare. Clienții pe care nu i-am testat nu îi declarăm verificați.
Autentificarea se poate face în două moduri:
- cu o cheie de acces, pe care v-o emiteți în aplicație: pentru propriul program sau pentru un server care apelează un server;
- prin OAuth, când se conectează o aplicație AI care știe acest lucru: atunci vă autentificați dumneavoastră și, pe ecranul de consimțământ, alegeți ce are voie aplicația să citească.
În ambele cazuri tokenul merge în antetul Authorization: Bearer și în ambele se aplică același domeniu de permisiuni: ce nu include cheia sau consimțământul, instrumentul nu returnează.
Cum conectați Claude.ai: conectare verificată, pas cu pas
Secțiune intitulată „Cum conectați Claude.ai: conectare verificată, pas cu pas”Claude.ai nu se conectează la magazinele online individuale, ci la MitoOps, stratul care reunește deja datele tuturor magazinelor dumneavoastră online. Nu aveți nevoie de nicio cheie, Client ID sau secret. Claude.ai află totul singur din adresa interfeței.
- În Claude.ai deschideți Settings (Setări) → Customize → Connectors (la planul de echipă, mai întâi Organization settings → Connectors, ca administrator).
- Apăsați Add custom connector (Adaugă conector personalizat).
- În câmpul Name scrieți
MitoOps. - În câmpul URL introduceți adresa interfeței MCP din ecranul Setări → API & MCP, în forma
https://<adresa dumneavoastră>/api/mcp, de exempluhttps://app.mitoops.com/api/mcp. - Advanced settings lăsați-le goale: Claude.ai folosește propriile metadate ale clientului găzduite (OAuth). Apăsați Add.
- La conector apăsați Connect (Conectare).
- Se deschide autentificarea în MitoOps (inclusiv cu al doilea factor, dacă îl aveți). Autentificați-vă.
- Vedeți ecranul de consimțământ: ce aplicație, ce client, ce are voie să citească și la ce magazine online se referă. Permisiunile sunt grupate pe zone ale aplicației (vânzări, stoc, expediere, marketing, program de parteneriat, automatizări). Citirea este bifată implicit, datele sensibile și pregătirea ciornelor nu; modificările cu impact direct (de exemplu ștergerea cupoanelor sau aprobarea unei trimiteri) sunt listate individual în secțiunea restrânsă Permisiuni avansate. La fiecare grup este lista a ceea ce include exact.
- Verificați domeniile. Cele sensibile (de exemplu Rapoarte financiare, Prețuri de achiziție, Date personale ale clienților, Furnizori și achiziții, Automatizări: schițe, Disponibilitate: propuneri de modificări și Reclamații: propuneri de modificare a setărilor) nu sunt bifate. Dacă Claude trebuie să vadă marja, datele personale, să propună ciorne și modificări ale automatizărilor sau modificări ale disponibilităților ori ale setărilor reclamațiilor, bifați-le în mod conștient. Șabloanele și setările reclamațiilor le citește domeniul Reclamații: setări și șabloane. Alegeți magazinele online.
- Apăsați Permite. Claude.ai revine pe pagina sa, iar conectorul este conectat.
- În conversație apăsați + → Connectors și activați conectorul MitoOps.
Ce bifați pe ecranul de consimțământ, aceea este valabil, și niciodată mai mult decât aveți voie dumneavoastră înșivă. Cine nu are în aplicație drept asupra prețurilor de achiziție nu îl poate transmite mai departe. Tokenul pe care îl primește Claude.ai poartă doar domeniile permise.
Alt client MCP sau altă aplicație AI prin OAuth
Secțiune intitulată „Alt client MCP sau altă aplicație AI prin OAuth”Aplicației îi indicați aceeași adresă /api/mcp și nimic mai mult, nicio cheie. Mai departe totul merge singur:
- Aplicația ne cere unde să trimită autentificarea (metadatele resursei protejate conform RFC 9728).
- Se deschide autentificarea dumneavoastră în MitoOps.
- Vedeți ecranul de consimțământ și alegeți domeniile și magazinele online.
- După permitere, conectarea este gata, iar aplicația vede instrumentele.
O aplicație care își alege singură domeniile trebuie să le indice în cerere: ecranul de consimțământ oferă doar ceea ce a cerut aplicația (și la ce aveți drept). Interfața anunță toate domeniile, inclusiv cele sensibile, atât în provocarea WWW-Authenticate, cât și în scopes_supported. Cele sensibile nu se permit totuși niciodată singure: pe ecranul de consimțământ sunt marcate și nebifate, iar tokenul se emite restrâns la ceea ce ați permis (scope în răspunsul tokenului).
Cum se conectează cu o cheie de acces
Secțiune intitulată „Cum se conectează cu o cheie de acces”Asistentul sau programul are nevoie de adresa /api/mcp pe domeniul dumneavoastră și de o cheie de acces care are MCP printre interfețe. Adresa exactă o afișează ecranul Setări → API & MCP, în blocul „Unde se conectează”. O cheie emisă doar pentru REST nu funcționează pentru MCP și invers.
Instrumente
Secțiune intitulată „Instrumente”Lista instrumentelor este guvernată de domeniile cheii sau ale consimțământului: asistentul vede exact ceea ce i s-a permis și nimic altceva. Un instrument în afara domeniului nu există pentru el.
| Instrument MCP | Domeniu | REST | Ce returnează |
|---|---|---|---|
account_connection |
stores:read |
GET /account/connection |
Diagnosticul acestei conexiuni: aplicația, cine și când a acordat accesul, permisiunile acordate și lipsă pe domenii, magazinele și modul de scriere prin AI. |
account_entitlements |
account:read |
GET /account/entitlements |
Tariful clientului, funcțiile și limitele cu utilizarea actuală. |
affiliate_articles_create |
affiliate:write |
— | scriere: Crearea unui articol de ajutor propriu în toate limbile deodată (titlul și corpul în limba indicată); HTML-ul se curăță. |
affiliate_articles_get |
affiliate:read |
GET /affiliate/articles/:key |
Un articol de ajutor cu formularea (HTML) în toate limbile sau într-una singură; variabilele necompletate. |
affiliate_articles_list |
affiliate:read |
GET /affiliate/articles |
Articolele de ajutor ale portalului partenerilor: cheie, implicit/propriu, activare, ordine, stare pe limbi (titlu, adresă, completat, identic cu cel implicit). |
affiliate_articles_set_state |
affiliate:write |
— | scriere: Activarea sau dezactivarea unui articol de ajutor pentru toate limbile deodată; cel implicit nu se șterge, doar se dezactivează. |
affiliate_articles_update |
affiliate:write |
— | scriere: Editarea unui articol de ajutor într-o singură limbă (titlu, adresă, corp; HTML-ul se curăță) sau restabilirea formulării implicite; returnează variabilele necunoscute. |
affiliate_campaigns_create |
affiliate:write |
— | scriere: Crearea unei campanii în magazinul online: denumire, recompensă (nu se inventează), valabilitatea atribuirii, disponibilitate, aprobarea conversiilor. |
affiliate_campaigns_get |
affiliate:read |
GET /affiliate/campaigns/:campaignId |
O campanie a programului de parteneriat. |
affiliate_campaigns_list |
affiliate:read |
GET /affiliate/campaigns |
Campaniile programului de parteneriat ale magazinului online, cu recompensă, disponibilitate și numere. |
affiliate_campaigns_update |
affiliate:write |
— | scriere: Editarea campaniei: denumire, recompensă, valabilitate, disponibilitate, aprobare, activare/dezactivare, descrierea pentru parteneri pe limbi. |
affiliate_code_requests_decide |
affiliate:write |
— | scriere: Rezolvarea cererii unui partener pentru un cod propriu: aprobarea creează codul direct în magazinele online ale campaniilor cu reducere pentru client (necesită și coupons:write), retry repetă crearea, respingerea necesită un motiv; partenerul primește un e-mail. |
affiliate_code_requests_list |
affiliate:read |
GET /affiliate/code-requests |
Cererile partenerilor pentru un cod de reducere propriu, cu stare și motiv; cele în așteptare primele. |
affiliate_conversions_decide |
affiliate:approve |
— | scriere: Decizia asupra unui singur comision după id: approve (nouă → aprobată), reject (nouă → respinsă, motiv obligatoriu), cancel (aprobată → anulată, motiv obligatoriu); cea plătită nu se întoarce, aceeași decizie a doua oară nu schimbă nimic; partenerul primește un e-mail. |
affiliate_conversions_get |
affiliate:read |
GET /affiliate/conversions/:conversionId |
Detaliul unei conversii: sume, comision, starea comisionului cu motiv, starea comenzii în magazinul online, notă de credit, plată. |
affiliate_conversions_list |
affiliate:read |
GET /affiliate/conversions |
Conversiile programului de parteneriat ale magazinului online: baza comisionului și întreaga comandă cu TVA, comision, starea comisionului cu motiv, starea comenzii în magazinul online, legătura cu plata. |
affiliate_discount_codes_ensure |
coupons:write |
— | scriere: Asigură că partenerul are un cod de reducere în magazinul online: cuponul se creează prin cupoanele canonice (sau se folosește unul existent) și se atribuie partenerului; nota din magazinul online se creează automat. |
affiliate_discount_codes_list |
affiliate:read |
GET /affiliate/discount-codes |
Codurile de reducere ale partenerilor în magazinul online, cu numărul de utilizări și cifra de afaceri. |
affiliate_documents_draft_create |
affiliate:write |
— | scriere: Propunerea unei noi formulări a unui document juridic ca ciornă; nu modifică formularea activă: o publică un om în aplicație, cu diferența și auditul. |
affiliate_documents_get |
affiliate:read |
GET /affiliate/documents/:key/content |
Un document juridic al programului, cu formularea pe limbi (text salvat, formulare publică, versiune, amprente, sursă, metadate PDF) și ciornele deschise. |
affiliate_documents_list |
affiliate:read |
GET /affiliate/documents |
Documentele programului (condiții, acorduri): politica de confirmare, copia semnată, anexa la e-mail, versiunile pe limbi, pregătirea și numărul de confirmări. |
affiliate_documents_update |
affiliate:write |
— | scriere: Politica unui document al programului (pentru cine este valabil, când se confirmă, copia semnată, anexa la e-mail, activare); formularea se încarcă în aplicație. |
affiliate_email_templates_list |
affiliate:read |
GET /affiliate/email-templates |
Șabloanele e-mailurilor către parteneri pe limbi (subiect, activare, cu eveniment și corpul) și anexele automate ale e-mailului Cont aprobat. |
affiliate_email_templates_update |
affiliate:write |
— | scriere: Editarea unui șablon de e-mail către parteneri într-o singură limbă (subiect, corp) sau activarea/dezactivarea unui eveniment. |
affiliate_links_generate |
affiliate:read |
GET /affiliate/links/generate |
Un link de partener urmărit către pagina principală, un produs sau o categorie a magazinului online al campaniei; după clic păstrează atribuirea către partener. |
affiliate_partners_get |
affiliate:read |
GET /affiliate/partners/:partnerId |
Un partener al programului, cu campaniile pe care le are la dispoziție. |
affiliate_partners_list |
affiliate:read |
GET /affiliate/partners |
Partenerii programului cu stare, performanță și comisioane; contactul doar cu date personale. |
affiliate_partners_set_market |
affiliate:write |
— | scriere: Calitatea de membru a partenerului într-un magazin online: permitere (active, aprobă și cererea din portal) sau retragere (revoked); campaniile, cupoanele și documentele magazinului online îl privesc pe partener doar cu o calitate de membru activă. |
affiliate_partners_set_state |
affiliate:write |
— | scriere: Decizia asupra contului partenerului (aprobare, respingere, suspendare, readucere printre cele în așteptare); aprobarea trimite un e-mail cu acordul. |
affiliate_payouts_list |
affiliate:read |
GET /affiliate/payouts |
Plățile comisioanelor către parteneri, cu stare; fără date bancare și de facturare. |
affiliate_portal_get |
affiliate:read |
GET /affiliate/portal |
Portalul public al partenerului: adresele pe magazine online, deschiderea înregistrării cu motiv, domenii proprii, persoana de contact, aspectul și starea textelor pe limbi. |
affiliate_portal_pages_update |
affiliate:write |
— | scriere: Texte proprii ale portalului public într-o singură limbă (paginile autentificare/înregistrare/prezentare, informare, descrierea programului); HTML-ul se curăță. |
affiliate_settings |
affiliate:read |
GET /affiliate/settings |
Setarea programului de parteneriat: comisioane, clicuri, minimul plății, recomandare. |
affiliate_settings_update |
affiliate:write |
— | scriere: Setarea programului în afara banilor: denumire, înregistrare, aprobare automată, persoana de contact, culori, link către politică. |
affiliate_signatures_get |
affiliate:read |
GET /affiliate/signatures/:signatureId |
O semnătură electronică, cu formularea semnată și instantaneul valorilor; înregistrare nemodificabilă, PDF-ul se compune în aplicație. |
affiliate_signatures_list |
affiliate:read |
GET /affiliate/signatures |
Documentele semnate electronic de parteneri (cine, document, versiune, limbă, magazin online, oră, mod, verificare, amprente, stare) și partenerii cărora le lipsește semnătura; doar citire, semnătura apare exclusiv în portal. |
affiliate_statistics |
affiliate:read |
GET /affiliate/statistics |
Statistica programului de parteneriat: evoluția pe zile, sursele atribuirii, clasamentul partenerilor. |
affiliate_summary |
affiliate:read |
GET /affiliate/summary |
Prezentarea programului de parteneriat al magazinului online pentru o perioadă: clicuri, conversii, comisioane, parteneri. |
affiliate_variables_list |
affiliate:read |
GET /affiliate/variables |
Registrul variabilelor de conținut și de e-mail ale programului de parteneriat: nume canonice, aliasuri, tip, suprafețe, exemplu; verificare opțională a textului pentru variabile necunoscute. |
analytics_advertising |
reports:read |
GET /analytics/advertising |
Publicitate: cheltuieli, buget, ROAS, PNO, CPA, valoarea medie a comenzii și MER cu comparație; Google Ads și Meta Ads, clicuri din GA4, 6 luni. |
analytics_channels |
analytics:read |
GET /analytics/channels |
Repartizarea vizitelor, comenzilor și cifrei de afaceri pe canale de marketing. |
analytics_comparison |
reports:read |
GET /analytics/comparison |
Cifra de afaceri comparată: cifră de afaceri, comenzi, AOV, vizite, CR și AI/LLM față de perioada anterioară sau anul trecut. |
analytics_monthly |
reports:read |
GET /analytics/monthly |
Cifra de afaceri, comenzi și vizite pe luni (cel mult 24), de exemplu an la an. |
analytics_order_coverage |
analytics:read |
GET /analytics/order-coverage |
Acoperirea comenzilor și a cifrei de afaceri prin măsurarea din analitică. |
analytics_order_heatmap |
reports:read |
GET /analytics/order-heatmap |
Când vin comenzile: ziua săptămânii × ora, cea mai puternică zi și oră. |
analytics_overview |
analytics:read |
GET /analytics/overview |
Vizite, comenzi, cifră de afaceri, rata de conversie și ponderea AI/LLM pentru o perioadă. |
analytics_revenue_sources |
reports:read |
GET /analytics/revenue-sources |
De unde a venit cifra de afaceri: canale, totaluri AI/LLM, MitoOps și Affiliate, achiziție după GA4. |
analytics_seo |
analytics:read |
GET /analytics/seo |
Search Console: clicuri, afișări, CTR și poziție după interogări sau pagini. |
automations_catalog |
automations:read |
GET /automations/catalog |
Catalogul automatizărilor: declanșatori, condiții, operatori, acțiuni, șabloane; catalogVersion pentru propuneri. |
automations_create_draft |
automations:write |
— | scriere: Creează o ciornă DEZACTIVATĂ a unei automatizări. Nu o activează și nu o pornește. |
automations_get |
automations:read |
GET /automations/:workflowId |
O automatizare, cu DSL și rezultatul validării. |
automations_list |
automations:read |
GET /automations |
Automatizările clientului, cu stare și domeniul magazinelor online. |
automations_options |
automations:read |
GET /automations/options |
Nomenclatorul pentru un câmp al automatizării (stări, transporturi, plăți, șabloane, reclamații…): value pentru DSL și denumire. |
automations_revision_create_draft |
automations:write |
— | scriere: Propune o modificare a unei automatizări publicate ca revizie spre aprobare de către un om. Versiunea care rulează nu se schimbă. |
automations_revision_discard_draft |
automations:write |
— | scriere: Retrage revizia deschisă a unei automatizări publicate. |
automations_revision_update_draft |
automations:write |
— | scriere: Editează revizia deschisă a unei automatizări publicate. |
automations_runs |
automations:read |
GET /automations/:workflowId/runs |
Istoricul rulărilor unei automatizări. |
automations_templates |
automations:read |
GET /automations/templates |
Șabloane gata făcute de automatizări, cu DSL. |
automations_update_draft |
automations:write |
— | scriere: Editează ciorna nepublicată a unei automatizări, cu concurență optimistă. |
automations_validate_draft |
automations:read |
— | Verifică o propunere de automatizare fără scriere. |
chatbot_conversations_get |
chatbot-conversations:read |
GET /chatbot/conversations/:sessionId |
Transcrierea unei conversații cu chatbotul web, inclusiv sursele răspunsurilor botului. |
chatbot_conversations_list |
chatbot-conversations:read |
GET /chatbot/conversations |
Conversațiile clienților cu chatbotul web, de la cea activă cel mai recent, cu prima întrebare; cursor. |
chatbot_outcomes |
chatbot:read |
GET /chatbot/outcomes |
How web chatbot conversations ended: since when the outcome is measured, measured and unmeasured conversations, known and unknown outcome, resolved, unresolved, bot error and resolution rate with its denominator; N/A with a reason when the denominator is zero. Totals only. |
chatbot_stats |
chatbot:read |
GET /chatbot/stats |
Statistica chatbotului web pentru o perioadă: pâlnia bulei, deschideri, conversații, rezultate, evaluări. |
chatbot_topics |
chatbot:read |
GET /chatbot/topics |
Despre ce au fost conversațiile: ponderile subiectelor, produse, tipul paginii de început și candidați pentru o lacună în cunoștințe. |
claims_config_change_draft |
claims-settings:draft |
— | scriere: Propune o modificare a proceselor, stărilor, etichetelor, șabloanelor, textelor formularului și setărilor modulului de reclamații; o scrie abia un om prin aprobare în aplicație. |
claims_config_draft_get |
claims-settings:read |
GET /claims/config-drafts/:draftId |
Starea propunerii de modificare a setărilor reclamațiilor (în așteptare, scrisă, respinsă). |
claims_configuration |
claims-settings:read |
GET /claims/configuration |
Setările reclamațiilor: etichete, câmpuri, transport retur, formularul din magazinul online, tipurile formularului. |
claims_get |
claims:read |
GET /claims/:code |
Un caz cu articole și legături: comandă, notă de credit, colet retur, mișcare de stoc. |
claims_list |
claims:read |
GET /claims |
Reclamațiile și retururile unui magazin online, de la cea mai nouă. |
claims_refund_options |
claims-settings:read |
GET /claims/refund-options |
Refunds: variable symbol source, refund coupon validity, coupon in the form, when the form asks for an account number. |
claims_refund_readiness |
claims:read |
GET /claims/:code/refund-readiness |
Claim before a refund: what the customer requests, masked account, variable symbol, mode and whether the claim can be deleted. |
claims_refund_settings |
claims-settings:read |
GET /claims/refund-settings |
Rambursări pentru reclamații: mod, conturi bancare cu eligibilitate pentru ordine de plată (mascate), cont implicit și manual. |
claims_routes |
claims-settings:read |
GET /claims/routes |
Transport retur pentru reclamații: rute, adrese, profiluri de curier cu ID și suport pentru retur, tipuri de caz. |
claims_routes_change_draft |
claims-routes:draft |
— | scriere: Propune o rută de retur (și pentru toată UE sau lumea) și o adresă de destinatar; le scrie un om prin aprobare (sau scrierea autonomă, dacă clientul a activat-o). |
claims_settings |
claims:read |
GET /claims/settings |
Procesele reclamațiilor cu ID-uri și denumiri (tipuri, pași, stări, termene), etichete; setările modulului cu domeniul claims-settings:read. |
claims_statistics |
claims:read |
GET /claims/statistics |
Statistica reclamațiilor și retururilor pentru o perioadă: numere, timpi de soluționare, tipuri, evaluări, motive. |
claims_templates |
claims-settings:read |
GET /claims/templates |
Șabloanele de e-mail (subiect, text, când și dacă se trimit automat) și de procese-verbale ale reclamațiilor. |
content_articles_search |
products:read |
GET /content/articles |
Articolele blogului magazinului online, cu adresa de pe site și imaginea de previzualizare. |
coupons_activation_link |
coupons:read |
GET /coupons/activation-link |
Un link care aplică clientului în coș un cupon EXISTENT. Nu creează cupoane. |
coupons_activation_status |
coupons:read |
GET /coupons/activation-status |
Dacă un cupon poate fi folosit în magazinul online prin linkul de activare: oglinda cuponului + starea codului de pe site. |
coupons_capabilities |
coupons:read |
GET /coupons/capabilities |
Ce știe platforma magazinului online respectiv despre cupoane. Citiți înainte de creare. |
coupons_ensure |
coupons:write |
— | scriere: Asigură că un cupon există în magazinele online alese. La o altă valoare a reducerii NU se rescrie. |
coupons_get |
coupons:read |
GET /coupons/:code |
Un cupon din evidența MitoOps. Când nu se află în ea, răspunsul este „nu s-a găsit”. |
coupons_list |
coupons:read |
GET /coupons |
Cupoanele de reducere ale magazinului online, cu tipul și valoarea reducerii, valabilitatea și starea derivată. |
coupons_remove |
coupons:delete |
— | scriere: Ștergerea explicită a unui cupon: dependențe, previzualizare, confirmare; cu o dependență activă nu se șterge. |
coupons_update |
coupons:write |
— | scriere: Editarea explicită a unui cupon existent, inclusiv restricțiile la produse și categorii; previzualizare, apoi confirmare. |
customers_get |
customers:read |
GET /customers/:customerKey |
Un client din director: identitate, magazine online, bani LIFETIME și, opțional, PERIOD, defalcare pe magazine online. |
customers_list |
customers:read |
GET /customers |
Directorul clienților: identitate (cu mascarea datelor personale), magazine online, limbă, numere LIFETIME și cifră de afaceri pe monede; filtru opțional al activității de cumpărare în perioadă. |
customers_performance |
reports:read |
GET /customers/performance |
Clienții ca pseudonime: număr de comenzi, cifră de afaceri, prima și ultima comandă, recumpărare, LTV. |
credit_notes_search |
invoices:read |
GET /credit-notes |
Căutare în notele de credit. |
documents_list |
invoices:read |
GET /documents |
Documente contabile de un singur tip (facturi, facturi proforma, note de credit) pe pagini, cu ciclu de viață, stare în sursă, filtru de valabilitate și disponibilitatea PDF. |
documents_pdf_link |
invoices:read |
— | Link de scurtă durată (10 minute) către PDF-ul unei facturi, facturi proforma sau note de credit, de deschis în browser. |
invoices_get |
invoices:read |
GET /invoices/:invoiceCode |
O factură cu articole, sume, note de credit și facturile proforma aferente. |
invoices_search |
invoices:read |
GET /invoices |
Căutare în facturi. |
inventory_movements |
inventory:read |
GET /inventory/movements |
Istoricul mișcărilor de stoc: când, ce, cu cât, de ce și din ce sursă. |
inventory_product_availability |
inventory:read |
GET /inventory/availability |
Stocul pentru mai multe articole deodată. |
inventory_stock |
inventory:read |
GET /inventory/stock |
Stocul unui articol, inclusiv sursa valorii. |
orders_get |
orders:read |
GET /orders/:orderCode |
O comandă salvată, inclusiv articolele. |
orders_list |
orders:read |
GET /orders |
Comenzile salvate ale unui magazin online, de la cea mai nouă. |
availabilities_change_draft |
availabilities:draft |
— | scriere: PROPUNERE de modificare a nomenclatorului de disponibilități (creare, editare, ștergere). În magazinul online o scrie abia un om, prin aprobare în MitoOps. |
availabilities_draft_get |
products:read |
GET /availabilities/drafts/:draftId |
Starea propunerii de modificare a nomenclatorului de disponibilități: așteaptă aprobarea, scrisă cu rezultat, respinsă, expirată. |
availabilities_list |
products:read |
GET /availabilities |
Nomenclatorul de disponibilități al magazinului online: denumire, descriere, reaprovizionare, livrare, semnificația pentru Google, culoare, rol implicit. |
categories_content_change_draft |
category-content:draft |
— | scriere: PROPUNERE de texte noi pentru categorii (cel mult 30 odată); în magazin le scrie doar un om, aprobându-le în MitoOps. |
categories_content_draft_get |
category-content:read |
GET /catalog/category-content-drafts/:draftId |
Starea unei propuneri de texte pentru categorii: așteaptă aprobarea, scrisă, respinsă, expirată. |
categories_content_get |
category-content:read |
GET /categories/:guid/content |
Textele unei categorii (descriere de sus și de jos, titlu și descriere SEO) cu amprentă și posibilitate de scriere. |
categories_list |
products:read |
GET /categories |
Categoriile magazinului online, cu numărul de produse. |
products_content_change_draft |
product-content:draft |
— | scriere: PROPUNERE de texte noi pentru produse (cel mult 30 odată); în magazin le scrie doar un om, aprobându-le în MitoOps. |
products_content_draft_get |
product-content:read |
GET /catalog/product-content-drafts/:draftId |
Starea unei propuneri de texte pentru produse: așteaptă aprobarea, scrisă cu avertismente ale magazinului, respinsă, expirată. |
products_content_get |
product-content:read |
GET /products/:code/content |
Textele unui produs din magazin (descriere, descriere scurtă, titlu și descriere SEO) cu amprentă și posibilitate de scriere. |
products_content_policy |
product-content:read |
GET /product-content/policy |
Politica de conținut a magazinului fără apel către magazin: ce poate citi și propune acest acces, ce câmpuri scrie platforma, modul de aprobare și scrierea autonomă, limite și amprente. |
products_get |
products:read |
GET /products/:code |
Un produs după cod, inclusiv încadrarea și prețul din fișă. |
products_search |
products:read |
GET /products |
Căutarea produselor după denumire, cod, EAN sau PLU. |
reports_financial_summary |
reports:read |
GET /reports/financial-summary |
Rezumatul financiar al perioadei: cifră de afaceri, TVA, comenzi, AOV; cu drepturi și achiziția, profitul brut, costurile și rezultatul. |
sales_order_performance |
reports:read |
GET /sales/order-performance |
Cifra de afaceri pe comenzi în EUR, cu totaluri pentru întreaga perioadă; cu drept și achiziția, profitul brut și marja pe comandă. |
sales_product_performance |
reports:read |
GET /sales/product-performance |
Vânzări pe produse din documente; cu drept și prețul de achiziție din momentul vânzării și marja. |
search_console_query |
search-console:read |
GET /search-console/query |
Search Console pe zile, interogări, pagini, țări și dispozitive, cu paginare și hash al conținutului. |
search_console_status |
search-console:read |
GET /search-console/status |
Starea Search Console a magazinului: conexiune, proprietate, permisiune, sincronizare și întinderea arhivei. |
shipping_carriers |
shipping:read |
GET /shipping/carriers |
Curierii conectați și profilurile lor, fără date de acces. |
shipping_shipment_detail |
shipping:read |
GET /shipping/shipments/:shipmentId |
O expediere cu toate evenimentele de urmărire. |
shipping_shipments |
shipping:read |
GET /shipping/shipments |
Expedierile unui magazin online, cu curier, țară și orele de predare și livrare. |
shipping_stats |
shipping:read |
GET /shipping/stats |
Statistici de livrare pe curieri: numere, rata de succes, mediana și p90 a timpului de livrare, țări. |
stores_integration_status |
stores:read |
GET /stores/integration-status |
Starea codului MitoOps de pe site pe magazine online: instalat, versiune, module, pregătirea cuponului din adresă. |
stores_list |
stores:read |
GET /stores |
Lista magazinelor online ale clientului, cu codul lor. |
suppliers_get |
purchasing:read |
GET /suppliers/:supplierId |
Un furnizor cu ofertele de produse și componentele de cost. |
suppliers_list |
purchasing:read |
GET /suppliers |
Furnizorii clientului, cu numărul de oferte și de produse asociate. |
webhooks_deliveries |
webhooks:read |
GET /webhooks/endpoints/:endpointId/deliveries |
Jurnalul livrărilor unui endpoint, fără corp. |
webhooks_endpoint |
webhooks:read |
GET /webhooks/endpoints/:endpointId |
Un endpoint webhook, cu numărul de livrări în așteptare. |
webhooks_endpoints |
webhooks:read |
GET /webhooks/endpoints |
Endpointurile webhook ale clientului, fără secrete, și starea cozii. |
webhooks_events |
webhooks:read |
GET /webhooks/events |
Catalogul evenimentelor webhookurilor de ieșire, plicul și semnătura. |
Numele, e-mailul, telefonul și strada clientului se află în orders_list, orders_get, claims_list și claims_get doar cu domeniul personal-data:read; fără el, răspunsul poartă țara și orașul. Același lucru este valabil pentru contactul furnizorului și al partenerului programului (affiliate_partners_*). Domeniul nu are un instrument propriu.
În directorul clienților (customers_list, customers_get), același domeniu decide asupra numelui, firmei, e-mailului, telefonului și genului pentru marketing; fără el rămân pseudonimul, magazinele online, țara, limba, numerele și datele. Cifra de afaceri și LTV se află, în plus, în spatele reports:read. Genul pentru marketing este o estimare după prenume (genderSource: "name_inference"), nu o informație indicată de client, iar asistentul trebuie să îl prezinte ca atare. Datele bancare și fiscale ale partenerilor nu se furnizează niciodată.
Chatbotul web: subiectele conversațiilor. chatbot_topics (același domeniu chatbot:read) răspunde printr-un singur apel la întrebarea „despre ce a fost vorba”: ponderea conversațiilor pe subiecte dintr-o taxonomie închisă (transport, plată, retur, alegerea produsului, parametri, utilizare, întrebări educative…), rata de rezolvare și numărul de candidați pentru o lacună în cunoștințe pe subiect, cele mai frecvente produse (despre care au întrebat clienții și pe care le-a recomandat botul), din ce tip de pagină încep conversațiile și evoluția pe zile. Evaluarea este deterministă: se bazează pe sursele răspunsurilor, pe produsele recomandate și pe un dicționar de cuvinte-cheie, astfel încât două apeluri peste aceeași perioadă dau aceeași cifră. Returnează doar totaluri: textul clientului nu ajunge în el pe nicio cale, nici ca „cea mai frecventă întrebare”. Ponderea vine întotdeauna cu numărul: la un număr mic de conversații, procentul nu este fiabil. chatbot_conversations_list are filtrele topic și knowledgeGapCandidate; transcrierea unei anumite conversații rămâne în spatele domeniului sensibil și doar în cadrul retenției.
Chatbotul web. Statistica (chatbot_stats, domeniul chatbot:read) returnează doar totaluri: pentru câte vizite pe pagină s-a afișat bula și câte dintre ele au dat clic pe ea, deschiderile ferestrei, numărul de conversații și mesaje, ce a rezolvat botul, evaluările clienților și pâlnia de înscriere la newsletter. Conversațiile clienților (chatbot_conversations_list, chatbot_conversations_get) se află în spatele propriului domeniu sensibil chatbot-conversations:read, pe care îl bifați în mod conștient pe ecranul de consimțământ: clientul este în evidență doar o cheie aleatorie a conversației (fără IP, cookie, nume sau e-mail), iar e-mailul, telefonul și IBAN-ul pe care le-a scris în text asistentul le primește doar cu personal-data:read; altfel, în locul lor vede marcajul [e-mail], [telefón], [iban]. Conversațiile se furnizează doar în cadrul retenției magazinului online (setarea Istoric din Centrul AI); un magazin online cu retenția zero nu furnizează nimic. Afișările bulei se numărau până la 21. 9. 2026 la fiecare apariție a mesajului; din 22. 9. 2026, o afișare este o vizită pe pagină, iar measurementChanges din răspuns spune dacă perioada aleasă amestecă cele două măsurări.
Fiecare instrument are un corespondent în REST, peste aceeași capacitate. Răspunsurile diferă prin plic, datele comerciale sunt identice. Regulile perioadei, ale paginării și semnificația câmpurilor financiare sunt în interfața REST.
Instrumentele de rezumat (shipping_stats, analytics_*, reports_financial_summary) returnează cifre gata calculate din aplicație: asistentul nu trebuie să descarce mii de înregistrări și să calculeze singur. Listele brute (shipping_shipments, orders_list) rămân pentru o privire detaliată.
Ce se poate întreba
Secțiune intitulată „Ce se poate întreba”După conectare, Claude.ai răspunde din datele MitoOps, de exemplu, la:
- „Care a fost repartizarea procentuală a transportului în august?”:
shipping_stats - „Care a fost mediana timpului de livrare DHL și GLS?” și „Câte au fost nelivrate și returnate?”:
shipping_stats - „În ce țări am trimis prin DHL?”:
shipping_stats(câmpulcountries) - „Care a fost cifra de afaceri și rata de conversie în august?”:
analytics_overviewsaureports_financial_summary - „Câte comenzi și câtă cifră de afaceri au venit din ChatGPT?”:
analytics_channels - „Ce interogări au avut cel mai mare CTR?”:
analytics_seo - „Care este marja produsului X în ultima lună?”:
sales_product_performance(cupurchase-prices:read) - „Despre ce au întrebat clienții cel mai des chatbotul luna aceasta și despre ce să scriem un articol pe blog?”:
chatbot_conversations_listșichatbot_conversations_get(cuchatbot-conversations:read) - „Câte conversații a avut chatbotul și câte dintre ele a rezolvat fără asistență?”:
chatbot_stats - „Ce disponibilități are magazinul online SK și care sunt implicite?” (
availabilities_list) - „Adaugă în magazinul online SK disponibilitatea Precomandă octombrie, cu semnificația precomandă și livrare în 14 zile” (
availabilities_change_draftcuavailabilities:draft; se creează o propunere pe care o scrieți prin aprobare în aplicație) - „Modifică automatizarea activată 12 astfel încât să trimită notificarea doar la transportul Curier” (
automations_optionspentru transport, apoiautomations_revision_create_draft; versiunea care rulează nu se schimbă până nu publicați revizia în editor) - „Ce e-mailuri trimit automat reclamațiile și ce scrie în ele în germană?” (
claims_templatescuclaims-settings:read) - „Redenumește starea reclamației Așteptare marfă în Așteptăm coletul” (
claims_settingspentru ID, apoiclaims_config_change_draftcuclaims-settings:draft; o scrieți prin aprobare în aplicație)
Citire și scrieri restrânse: automatizări, cupon, programul de parteneriat, disponibilități, reclamații
Secțiune intitulată „Citire și scrieri restrânse: automatizări, cupon, programul de parteneriat, disponibilități, reclamații”Datele operaționale (comenzi, stocuri, produse, documente, expedieri) se citesc prin MCP doar pentru citire. Fiecare scriere se află în spatele propriului domeniu sensibil: ciorna de automatizare, cuponul de reducere, gestionarea programului de parteneriat, decizia asupra comisionului, propunerea de modificare a nomenclatorului de disponibilități, pe care o scrie în magazinul online abia omul, și propunerea de modificare a setărilor reclamațiilor, pe care o scrie tot abia omul.
Ciorna de automatizare: cu domeniul automations:write este vorba de o ciornă dezactivată: asistentul poate, conform catalogului (automations_catalog), să propună o regulă și să o salveze ca ciornă sau să editeze o ciornă pe care încă nu a publicat-o nimeni. Ciorna apare în Automatizări ca orice propunere în lucru: activarea, publicarea sau pornirea ei le puteți face doar dumneavoastră, în aplicație. O automatizare publicată nu este modificată direct de asistent.
Revizia unei automatizări care rulează. Asistentul cu domeniul automations:write poate modifica și o automatizare publicată și activată, dar doar printr-o propunere: automations_revision_create_draft (intrare workflowId, expectedPublishedVersion din automations_get, catalogVersion, întregul dsl nou, note și clientRequestId) salvează o revizie alături de versiunea care rulează. Automatizarea care rulează nu se schimbă și continuă să ruleze. Pentru o automatizare există cel mult o revizie deschisă; se editează prin automations_revision_update_draft cu expectedRevisionVersion și se elimină prin automations_revision_discard_draft. Răspunsul poartă approvalUrl, un link către editorul automatizării. Acolo, un om cu dreptul de a edita automatizări vede revizia în panoul de sus, o încarcă în editor (butonul Încărcați propunerea în editor), o verifică și o publică cu butonul obișnuit; automatizarea rămâne activă. Sau o respinge. Când între timp cineva a publicat o altă versiune, revizia se închide (REVISION_STALE) și trebuie pregătită una nouă. Revizia deschisă și istoricul le returnează automations_get (openRevision, revisions).
Nomenclatoarele câmpurilor și verificarea valorilor. Câmpurile care în editor se aleg dintr-o listă (starea comenzii, transportul, plata, profilul curierului, șablonul notificării, tipul, starea, eticheta și șabloanele reclamației, endpointul webhook și altele) au în catalog o sursă. automations_options cu source și market returnează valorile lor [{ value, name }] exact în forma pe care o salvează editorul (ID-ul stării, GUID-ul transportului și al plății, ID-ul stării reclamației); fără source listează sursele și dacă sunt diferite pentru fiecare magazin online (perShop). Validarea (automations_validate_draft) și salvarea ciornei sau a reviziei refuză o valoare care nu există în magazinul online (FIELD_UNKNOWN_OPTION) și un text substituent de tipul DOPLNIT_… sau TODO (FIELD_PLACEHOLDER). Când lista nu poate fi verificată (magazinul online nu a răspuns, lista este trunchiată), sosește doar avertismentul FIELD_OPTIONS_UNVERIFIED. orders_get și orders_list poartă statusId, shippingGuid și paymentGuid, adică aceleași valori cu care lucrează condițiile automatizării.
Domeniul automations:write este sensibil: pe ecranul de consimțământ nu este preselectat, se oferă doar unui om cu dreptul de a edita automatizări, conexiunile existente nu îl primesc, iar reîmprospătarea tokenului nu îl extinde. Comenzile, produsele, stocurile, documentele, rambursările, cazurile de reclamație și expedierile nu pot fi modificate prin MCP; nomenclatorul de disponibilități al magazinului online și setările reclamațiilor se modifică doar printr-o propunere pe care o aprobă un om în aplicație (mai jos). Endpointurile webhook se citesc prin MCP doar pentru citire. Datele de acces la curieri, la magazinul online sau la analitică nu pot fi citite prin MCP.
Cuponul de reducere: cu domeniul coupons:write, asistentul creează un cupon conform parametrilor pe care îi indicați (coupons_ensure, inclusiv cuponul partenerului affiliate_discount_codes_ensure) și editează explicit unul existent (coupons_update, previzualizare și confirmare); ștergerea are propriul domeniu coupons:delete, iar un cupon cu o dependență activă nu se șterge.
Gestionarea programului de parteneriat: cu domeniul affiliate:write, asistentul decide asupra contului partenerului (affiliate_partners_set_state: aprobare, respingere, suspendare; partenerul primește un e-mail, inclusiv cu PDF-ul acordului, conform politicii documentelor), rezolvă o cerere de cod propriu (affiliate_code_requests_decide), editează setarea programului în afara banilor (affiliate_settings_update: denumire, înregistrare, persoana de contact, culori), textele portalului într-o singură limbă (affiliate_portal_pages_update), articolele de ajutor (affiliate_articles_create, affiliate_articles_update, inclusiv cu restabilirea formulării implicite, affiliate_articles_set_state; ștergerea din exterior nu), șabloanele de e-mail (affiliate_email_templates_update), campaniile (affiliate_campaigns_create, affiliate_campaigns_update), politica documentelor (affiliate_documents_update) și calitatea de membru a partenerului într-un magazin online (affiliate_partners_set_market: permitere sau retragere). Formularea documentelor juridice o citește (affiliate_documents_get: text pe limbi, versiune, amprente, ciorne), iar o formulare nouă o propune doar ca ciornă (affiliate_documents_draft_create; și privacyNotice din affiliate_portal_pages_update este, începând cu această versiune, o ciornă): formularea activă o publică un om în aplicație, cu diferența și auditul. Registrul variabilelor de conținut și de e-mail (nume canonice, aliasuri, tip, suprafețe) îl furnizează affiliate_variables_list; affiliate_email_templates_list returnează numele variabilelor, nu indici. Plățile, baza comisionului și încărcarea fișierului unui document nu există prin MCP: rămân în aplicație.
Decizia asupra comisionului: cu propriul domeniu sensibil affiliate:approve (dreptul de aprobare a comisioanelor, nu de gestionare a programului), asistentul citește mai întâi comisioanele în așteptare, inclusiv starea comenzii din magazinul online (affiliate_conversions_list cu state=new, detaliul affiliate_conversions_get: baza comisionului revenue, întreaga comandă cu TVA revenueTotal, orderState open/completed/cancelled, orderPaid, nota de credit), le rezumă și abia la instrucțiunea explicită a utilizatorului decide asupra unei singure conversii concrete (affiliate_conversions_decide: approve, reject sau cancel, la respingere și anulare cu un motiv obligatoriu, pe care partenerul îl primește prin e-mail). Se aplică același automat de stări ca în aplicație: un comision plătit nu se întoarce, cele anulate și respinse sunt finale, aceeași decizie a doua oară nu schimbă nimic (changed: false). Aprobarea în masă din exterior nu există: la o sută de conversii sunt o sută de apeluri, fiecare cu audit. Începând cu W-AFF10, fiecare conversie poartă și approvalPolicy (modul de aprobare al campaniei, termenul, stările permise ale comenzii, plata) și approvalEligibility: dacă automatizarea orară ar aproba-o acum și de ce nu (minimum_age_not_reached, order_state_not_allowed, order_not_paid, order_cancelled, fully_refunded, approval_manual…), același calcul ca în aplicație; lista are filtrele orderPaid, minCommission, orderState și paginarea offset + hasMore, astfel încât „parcurge conversiile noi din ultimele două luni, arată-le pe cele neplătite sau pe cele de peste 20 €” înseamnă una până la câteva citiri. Condițiile campaniei le setează affiliate_campaigns_update (approval, approveAfterDays, requiredOrderStatusIds, paidRequired) cu domeniul affiliate:write. Plățile către parteneri se citesc prin MCP doar pentru citire (affiliate_payouts_list): emiterea unui lot, generarea documentului, trimiterea lui către partener sau transmiterea unui ordin către bancă nu le poate face asistentul; acestea rămân în aplicație, sub controlul operatorului.
Propunerea de modificare a nomenclatorului de disponibilități. Cu domeniul sensibil availabilities:draft, asistentul pregătește o propunere pentru crearea, editarea sau ștergerea disponibilităților într-un magazin online (availabilities_change_draft, doar MCP). În magazinul online nu scrie nimic: verifică propunerea, o salvează în MitoOps pentru 24 de ore și returnează draftId, previzualizarea pe intrări (preview, cu câmpurile înainte și după, warnings și errors), expiresAt și approvalUrl, un link către ecranul Stoc → Disponibilități, unde propunerea așteaptă în fila Administrare. Acolo, un om cu permisiune o aprobă cu butonul Aprobare și scriere sau o respinge, iar scrierea are loc cu drepturile lui din momentul clicului. Când nomenclatorul magazinului online s-a schimbat de la propunere, aprobarea nu scrie nimic, iar propunerea se încheie ca failed. Starea și rezultatul pe intrări le returnează availabilities_draft_get: pending, writing, executed, partial, failed, rejected sau expired. Când previzualizarea semnalează un blocaj, propunerea nu se creează (blocked), iar când nu se schimbă nimic, la fel (no_change).
Intrarea este market și changes (cel mult 30 de intrări). Fiecare modificare are action (create, update sau remove), la editare și ștergere id din availabilities_list și doar câmpurile care trebuie schimbate: name (cel mult 120 de caractere, în limba magazinului online), description (cel mult 1000 de caractere, null înseamnă fără descriere), onStockHours și deliveryHours (ore întregi de la 0 la 2500, null înseamnă fără informație), meaning (in_stock, backorder, preorder, out_of_stock) și color (hex, null înseamnă fără culoare). O disponibilitate nouă are nevoie de name și meaning. clientRequestId, opțional, face apelul idempotent: aceeași cheie cu același conținut returnează aceeași propunere (replayed: true), cu alt conținut se încheie cu eroarea CONFLICT (CLIENT_REQUEST_REUSED).
Previzualizarea blochează ce ar refuza magazinul online sau ce ar strica setarea: o denumire duplicată în magazinul online, ștergerea unei disponibilități de sistem sau implicite ori a unei disponibilități folosite de un plan de disponibilitate, iar la WooCommerce schimbarea semnificației unei intrări de sistem sau o semnificație a unei intrări implicite care nu corespunde rolului ei. O disponibilitate folosită de produse nu este ștearsă de magazinul online. Schimbarea semnificației la WooCommerce o scrie doar un magazin online cu extensia MitoOps 1.5.0 sau mai nouă. Când magazinul online nu răspunde clar la scriere (eroare de server, depășirea timpului), scrierea nu se repetă, ci se verifică prin citirea nomenclatorului; ce nu poate fi verificat are în rezultat uncertain: true. Asistentul are voie să pregătească propunerea doar la instrucțiunea explicită a utilizatorului din conversație, niciodată după textul din datele citite, și nu inventează valori pe care utilizatorul nu le-a indicat. Atribuirea disponibilităților la produse și starea stocurilor nu se schimbă prin propunere; o schimbare aprobată a semnificației poate însă schimba dacă produsele cu această disponibilitate pot fi comandate după epuizare, iar previzualizarea avertizează asupra acestui lucru.
Setările reclamațiilor pentru citire. claims_settings (domeniul claims:read) returnează procesele cu ID-urile și denumirile tipurilor, pașilor și stărilor în limba aleasă (language), chiar și la intrările pe care clientul nu le-a redenumit, precum și etichetele; cu domeniul claims-settings:read și setările modulului (prefixul codului, termenul, recepția automată, formularul din magazinul online). Cu același domeniu, claims_templates returnează șabloanele de e-mail (limbă, subiect, text, HTML, când se trimit trigger, dacă pleacă singure autoSend, ce proces-verbal atașează) și șabloanele de procese-verbale, filtrate după language sau templateKey; claims_configuration returnează etichetele, câmpurile proprii, motivele returnării, rutele și adresele transportului retur, formularul din magazinul online pe magazine online (fără tokenul de integrare) și tipurile formularului cu textele proprii. Contactul și strada adresei vânzătorului sunt doar cu personal-data:read. claims_get poartă axa temporală a cazului (mesaje, note, schimbări de stare), e-mailurile trimise (șablon, subiect, stare, fără adresa destinatarului) și etichetele; textul mesajelor este doar cu personal-data:read.
Propunerea de modificare a setărilor reclamațiilor. Cu domeniul sensibil claims-settings:draft, asistentul pregătește o propunere (claims_config_change_draft, doar MCP): crearea sau editarea unui tip, a unui pas și a unei stări de proces (denumiri pe limbi, culoare, starea implicită și cea de închidere, termen), a unei etichete, a textului unui șablon de e-mail într-o singură limbă, a trimiterii lui automate și a textului unui șablon de proces-verbal. Ștergerea nu există. În setări nu scrie nimic: verifică propunerea cu aceleași reguli ca ecranul (de exemplu, o variabilă necunoscută în șablon o blochează), o salvează în MitoOps pentru 72 de ore și returnează draftId, previzualizarea (preview, câmpul înainte și după, errors), expiresAt și approvalUrl, un link către Reclamații → Setări, unde propunerea așteaptă în panoul Propuneri de modificare spre aprobare. Un om cu dreptul de a gestiona setările o aprobă (Aprobați și scrieți) sau o respinge. Propunerea se scrie integral sau deloc: când o valoare s-a schimbat de la pregătirea propunerii, nu se scrie nimic, iar propunerea se încheie ca failed. Starea o returnează claims_config_draft_get (pending, executed, failed, rejected, expired); când previzualizarea semnalează o eroare, propunerea nu se creează (blocked), iar când nu se schimbă nimic, la fel (no_change). ID-urile și cheile asistentul le ia din claims_settings și claims_templates; clientRequestId face apelul idempotent.
Instrumentele poartă adnotări conform reviziei protocolului (readOnlyHint, destructiveHint, idempotentHint); automations_create_draft este idempotent prin clientRequestId, automations_update_draft necesită expectedVersion și, la schimbarea catalogului, returnează CATALOG_CHANGED; automations_revision_create_draft este idempotent prin clientRequestId, iar automations_revision_update_draft necesită expectedRevisionVersion.
Versiunile protocolului
Secțiune intitulată „Versiunile protocolului”Serverul vorbește revizia 2026-07-28 și cele mai vechi (2025-11-25, 2025-06-18, 2025-03-26). Clientul alege singur, după ce trimite; bibliotecile client mai vechi se conectează deci fără modificări.
Revizia mai nouă este fără handshake inițial și fără sesiune: fiecare cerere poartă propria versiune și antetele obligatorii MCP-Protocol-Version, Mcp-Method și, la apelarea unui instrument, Mcp-Name. Dacă antetul nu corespunde corpului, răspunsul este 400: direcționarea după antete și executarea după corp ar însemna două surse de adevăr despre același apel.