roots/list (Roots, depreciat) și aprobarea umană a uneltelor în Model Context Protocol (MCP)

Servere Oficiale, Securitate & Ecosistem Specificația MCP 2026-07-28 (funcție depreciată) Q&A AI / Distribuie cod

Roots, lista de directoare relevante comunicată de client (depreciată din 2026-07-28), și cerințele specificației privind confirmarea umană a apelurilor de unelte.

Specificație & cod MCP
inputRequests: {"<cheie>": {"method": "roots/list"}}  →  inputResponses: {"<cheie>": {"roots": [{"uri": "file:///...", "name": "..."}]}}

Ce face roots/list (Roots, depreciat) și aprobarea umană a uneltelor

Roots este depreciat din revizia 2026-07-28 (SEP-2577): rămâne cel puțin 12 luni, dar implementările noi nu ar trebui să-l adopte. Migrarea recomandată: directoarele sau fișierele se transmit prin parametrii uneltelor, prin URI-uri de resurse sau prin configurarea serverului. Roots informează serverul despre directoarele și fișierele pe care clientul le consideră relevante. Este un ghidaj informativ, nu un mecanism de control al accesului: protocolul nu impune ca serverul să rămână în interiorul rădăcinilor.

Clientul declară capabilitatea roots în clientCapabilities la fiecare cerere. Serverul cere lista prin roots/list în inputRequests al unui InputRequiredResult, iar clientul întoarce roots în inputResponses la reîncercare. Fiecare rădăcină are uri (obligatoriu file://) și name opțional. Notificarea notifications/roots/list_changed a fost eliminată în 2026-07-28. Clienții ar trebui să ceară consimțământul utilizatorului înainte de a expune rădăcinile și să le valideze împotriva path traversal.

Aprobarea umană. Principiile de securitate ale specificației cer ca host-ul să obțină consimțământul explicit al utilizatorului înainte de a apela o unealtă, iar pagina Tools recomandă ca un om să poată refuza orice apel. Clienții ar trebui să arate argumentele înainte de trimitere, să ceară confirmare pentru operații sensibile și să valideze rezultatele înainte de a le da LLM-ului. Adnotările uneltelor (readOnlyHint, destructiveHint etc.) sunt doar indicii și trebuie considerate nesigure dacă serverul nu este de încredere.

Sintaxă și opțiuni

Opțiune / Parametru Descriere
roots/list Cererea de input prin care serverul află rădăcinile clientului (depreciată).
uri URI-ul rădăcinii; trebuie să fie file://.
name Opțional: numele de afișat.
capabilitate roots {"roots": {}} în io.modelcontextprotocol/clientCapabilities.
notifications/roots/list_changed Eliminată în 2026-07-28.
Consimțământ pentru unelte Host-ul obține acordul explicit al utilizatorului înainte de a invoca o unealtă.

Exemple practice

Exemplul 1: Cererea de rădăcini și răspunsul clientului

Prima parte stă în inputRequests, a doua în inputResponses la reîncercare.

{
  "method": "roots/list"
}

{
  "roots": [
    {
      "uri": "file:///home/user/projects/myproject",
      "name": "My Project"
    }
  ]
}

Exemplul 2: Mai multe repository-uri

[
  {
    "uri": "file:///home/user/repos/frontend",
    "name": "Frontend Repository"
  },
  {
    "uri": "file:///home/user/repos/backend",
    "name": "Backend Repository"
  }
]

Greșeli frecvente și bune practici

  • Tratezi Roots ca sandbox. Protocolul nu obligă serverul să rămână în rădăcini; izolarea reală vine din permisiunile procesului și din validarea căilor în server.
  • Aprobi automat o unealtă pentru că are readOnlyHint: true. Pentru servere neverificate, adnotările nu garantează nimic.
  • Aștepți notifications/roots/list_changed. Notificarea nu mai există în 2026-07-28.

Comenzi înrudite

Învață AI • Comunitate & Q&A

Întrebări & Exemple practice: roots/list (Roots, depreciat) și aprobarea umană a uneltelor

Ai o întrebare despre roots/list (Roots, depreciat) și aprobarea umană a uneltelor sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!

🤖

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.

Comunitate AI Adaugă o întrebare sau distribuie un cod / prompt

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.