Server MCP

Cu serverul MCP activat, baza dvs. de date Odoo poate fi conectată la aplicații AI externe care vorbesc Model Context Protocol, cum ar fi Claude, ChatGPT sau un editor de cod cu AI. Aplicația poate apoi să caute și să citească datele pe care utilizatorul ei le vede în Odoo și, cu confirmare, să propună modificări, chiar din aplicația pe care persoana o folosește deja.

Notă

Aceasta este direcția opusă față de AI ‣ Configurare ‣ Furnizori ‣ Servere MCP, unde Odoo apelează instrumente ale altor servere (vezi Configurare). Aici Odoo este serverul.

Activarea serverului

  1. Instalați modulele AI MCP Gateway (și, pentru utilizatorii de portal, AI MCP Gateway - Portal).

  2. Deschideți AI ‣ Configurare ‣ Setări, găsiți blocul Server MCP și activați-l. Setarea este dezactivată implicit.

  3. Copiați adresa din URL server MCP. Este adresa Odoo urmată de /mcp și este ceea ce lipiți în aplicația AI.

Important

Aplicațiile AI apelează serverul fără cookie de autentificare, deci Odoo trebuie să selecteze această bază de date doar pe baza numelui de gazdă. Dacă serverul servește mai multe baze de date, setați opțiunea dbfilter astfel încât acest nume de gazdă să selecteze doar această bază de date (de exemplu ^%d$ cu o bază de date pe subdomeniu) sau serviți o singură bază de date. Dacă nu este cazul, pagina de setări afișează un avertisment, iar aplicațiile primesc „404 Not Found”.

Conectarea unei aplicații AI

  1. În aplicația AI, adăugați un conector personalizat sau un server MCP și lipiți URL-ul serverului.

  2. Aplicația deschide o pagină de autentificare Odoo. Autentificați-vă cu propriul cont. Se pot conecta doar utilizatorii interni din grupul AI: Utilizator, iar grupul este verificat din nou la fiecare cerere.

  3. O pagină de consimțământ spune ce aplicație dorește să se conecteze, ce va putea face (Doar citire sau Citire și propunere de modificări) și ce instrumente poate folosi. Faceți clic pe Permite sau Respinge. Consimțământul este cerut de fiecare dată când se conectează o aplicație.

În spatele scenei, conexiunea folosește OAuth 2.1 cu PKCE. Token-urile de acces au durată scurtă, iar cele de reîmprospătare se rotesc la fiecare utilizare; sunt stocate doar hash-uri. Clienții cu scripturi pot folosi alternativ o cheie API Odoo drept token bearer, dacă Acceptă chei API Odoo este activat.

Aplicații conectate și deconectare

Fiecare utilizator își vede propriile conexiuni în Preferințe, la fila Aplicații AI conectate, cu data conectării și ultima utilizare. Deconectare are efect imediat.

Administratorii văd toate conexiunile în AI ‣ Configurare ‣ Server MCP ‣ Aplicații AI conectate (cu Revocă) și aplicațiile înregistrate în AI ‣ Configurare ‣ Server MCP ‣ Aplicații AI. Revocarea unui token de reîmprospătare revocă întreaga conexiune.

Ce instrumente sunt expuse

Serverul nu oferă tot ce poate face asistentul. Oferă o listă permisă de instrumente despre care se știe că respectă confirmarea, filtrată după capabilitățile utilizatorului:

  • Citire și căutare: căutarea, citirea, gruparea și agregarea înregistrărilor, descrierea câmpurilor, căutarea în documentația modelelor, citirea mediului, listarea acțiunilor și abilităților permise și folosirea unei abilități, calculul datelor, citirea atașamentelor, listarea meniurilor, căutarea în memorie, căutarea și preluarea paginilor web (dacă este activă capabilitatea Web access).

  • Modificare (doar dacă este activă capabilitatea Scriere, Ștergere sau Acțiuni de business): crearea, actualizarea și ștergerea înregistrărilor, apelarea unei acțiuni de business permise, preluarea unui fișier într-un câmp.

Nu sunt expuse, indiferent de capabilități: salvarea sau uitarea amintirilor, crearea sau rularea automatizărilor, modificarea vizualizărilor, câmpurilor sau modelelor, generarea de imagini și instrumentele constructorului de site. Un token cu acces doar de citire vede numai instrumentele de citire. Fiecare apel de instrument rulează ca utilizatorul, prin aceleași reguli de acces, verificări de politică și audit ca asistentul din Odoo.

Modificări făcute de aplicațiile AI

Implicit se aplică Cere întotdeauna confirmare: fiecare conexiune are propria conversație („MCP: numele aplicației”), iar fiecare creare, actualizare, ștergere sau acțiune devine o propunere pe care o aprobați în panoul AI (vezi Panoul AI). Alternativa Urmează setările de scriere AI folosește în schimb modul global de scriere. Fiecare apel de instrument este scris în jurnalul AI ca apel MCP și se numără în limitele de frecvență.

Alegeți comportamentul în setarea Modificări făcute de aplicațiile AI.

Înregistrarea aplicațiilor

Există două moduri de a permite accesul unei aplicații.

  • O înregistrați dvs. în AI ‣ Configurare ‣ Server MCP ‣ Aplicații AI: Numele aplicației afișat pe pagina de consimțământ și URI-uri de redirecționare permise. Folosiți Generează secret pentru o aplicație confidențială (secretul este afișat o singură dată) sau Fă public (doar PKCE) pentru aplicații care nu pot păstra un secret.

  • Sau activezi Permite înregistrarea dinamică a clienților și aplicațiile se înregistrează singure. Este dezactivat implicit. Utilizatorii se autentifică în continuare și aprobă fiecare conexiune, dar înregistrarea este limitată:

    • pe adresă de rețea (Înregistrări pe adresă și oră, implicit 10). Peste această limită aplicația primește „Too many app registrations from this address”;

    • o aplicație poate înregistra cel mult 10 URI de redirecționare, fiecare de cel mult 2048 de caractere, într-o cerere de cel mult 16 KB;

    • fiecare URI de redirecționare trebuie să corespundă unuia dintre Modele permise pentru URI de redirecționare (vezi mai jos);

    • sunt acceptate cel mult 1000 de aplicații autoînregistrate (parametrul de sistem ai_mcp_gateway.dcr_max_clients). Aplicațiile care nu s-au conectat niciodată și sunt mai vechi decât timpul de curățare de mai jos nu se numără; și

    • o aplicație care s-a înregistrat singură și nu s-a conectat niciodată este ștearsă de un job programat după 72 de ore (parametrul de sistem ai_mcp_gateway.dcr_unused_client_hours).

  • O eroare de autorizare găsită înainte de pagina de consimțământ (de exemplu, lipsa unei provocări PKCE) nu este trimisă înapoi unei aplicații autoînregistrate: ți se afișează ție pe o pagină de eroare, astfel încât o aplicație neverificată să nu poată folosi serverul pentru a te redirecționa în altă parte. După pagina de consimțământ, propriul tău Respinge este întotdeauna trimis înapoi aplicației, așa cum se așteaptă protocolul. Aplicațiile pe care le-ai înregistrat chiar tu își primesc erorile ca de obicei.

Mai multe setări în blocul Server MCP: Durata token-urilor (minutele token-ului de acces și zilele token-ului de reîmprospătare) și Origini de browser permise pentru aplicațiile bazate pe browser.

Regulile URI de redirecționare

Locurile în care aplicația AI te poate trimite înapoi după autentificare sunt restricționate de Modele permise pentru URI de redirecționare. Orice URI de redirecționare, fie că îl introduci tu, fie că îl înregistrează o aplicație, trebuie să corespundă unuia dintre modele (separate prin spații sau virgule). Un model are forma scheme://host[:port][/path]:

  • host-ul este un nume literal, * pentru orice host sau *.example.com pentru exact o etichetă în plus în fața lui example.com (a.example.com, nu a.b.example.com);

  • portul este un număr sau * pentru orice port. Fără port, adresa nu poate indica unul (în afară de portul implicit al schemei);

  • calea este goală (orice cale), o cale fixă (potrivire exactă) sau se termină cu /* (acea cale și tot ce se află sub ea);

  • nimic altceva nu este metacaracter, iar * nu se întinde niciodată peste un /.

De exemplu, https://claude.ai/api/* permite doar adresele aflate sub acea cale. Modelele implicite acceptă orice adresă https:// și adresele locale de loopback (127.0.0.1, localhost și [::1]) pe care le folosesc instrumentele desktop.

Independent de modele, un URI de redirecționare trebuie să fie absolut, nu trebuie să conțină fragment sau informații despre utilizator, nu trebuie să folosească schemele javascript, data, file sau vbscript, iar http simplu este permis numai pentru adrese de loopback. URI-urile cu segmente cu punct sau cu spații nu corespund niciodată. Când o aplicație cere să fie trimisă înapoi la un URI, acesta trebuie să fie exact egal cu unul înregistrat; doar portul unei adrese http de loopback înregistrate poate diferi.

Utilizatori de portal

Cu modulul de portal și setarea Utilizatorii portalului pot conecta aplicații AI (dezactivată implicit), utilizatorii de portal pot conecta și ei aplicații AI din pagina „Aplicațiile mele AI” a portalului. Primesc doar instrumentele de căutare, citire și grupare, doar pentru citire, și numai pentru modelele care au o regulă explicită de permitere a citirii într-un grup de acces AI din care fac parte. Un grup gol livrat, Utilizatori portal (MCP), este asociat tuturor utilizatorilor de portal în acest scop. Drepturile proprii ale portalului Odoo se aplică în continuare dedesubt.

Limite

  • Serverul nu păstrează stare și răspunde la cereri individuale: fără streaming, fără mesaje inițiate de server, fără resurse sau prompturi.

  • Aplicațiile sunt identificate prin înregistrare (a dvs. sau dinamică), nu printr-un document de identitate de client bazat pe URL.

  • Un utilizator arhivat, scos din grupul AI sau blocat pierde accesul la următoarea cerere.