completion/complete (autocompletarea argumentelor) în Model Context Protocol (MCP)

Cererea prin care clientul obține de la server sugestii de completare pentru argumentele unui prompt sau ale unui șablon de resursă.

Specificație & cod MCP
{"method": "completion/complete", "params": {"ref": {...}, "argument": {"name": "...", "value": "..."}, "context": {"arguments": {...}}}}

Ce face completion/complete (autocompletarea argumentelor)

completion/complete oferă sugestii în timp ce utilizatorul completează argumentele unui prompt (identificat prin nume) sau ale unui șablon de resursă (identificat prin URI), similar autocompletării dintr-un IDE. Serverele care o suportă declară capabilitatea completions. Protocolul nu impune o interfață; clientul poate afișa sugestiile într-o listă derulantă sau altfel.

Cererea conține ref (ref/prompt cu name sau ref/resource cu uri, care poate fi un URI template), argument cu numele și valoarea curentă și, pentru argumente multiple, context.arguments cu valorile deja rezolvate. Răspunsul conține completion.values (cel mult 100, ordonate după relevanță), total opțional și hasMore.

Erori recomandate: -32601 dacă serverul nu suportă completarea, -32602 pentru un prompt inexistent sau argumente obligatorii lipsă, -32603 pentru erori interne. Serverele validează intrările, limitează rata și controlează accesul la sugestii sensibile; clienții folosesc debounce pentru cereri rapide.

Sintaxă și opțiuni

Opțiune / Parametru Descriere
ref {"type": "ref/prompt", "name": ...} sau {"type": "ref/resource", "uri": ...}.
argument.name / argument.value Argumentul completat și ce a tastat utilizatorul până acum.
context.arguments Valorile deja alese pentru celelalte argumente.
completion.values Sugestiile, cel mult 100.
completion.total Opțional: numărul total de potriviri.
completion.hasMore Dacă mai există rezultate.

Exemple practice

Exemplul 1: Sugestii pentru argumentul language

Câmpurile _meta obligatorii sunt omise, ca în exemplele din specificație.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "completion/complete",
  "params": {
    "ref": {
      "type": "ref/prompt",
      "name": "code_review"
    },
    "argument": {
      "name": "language",
      "value": "py"
    }
  }
}

Rezultat

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "resultType": "complete",
    "completion": {
      "values": ["python", "pytorch", "pyside"],
      "total": 10,
      "hasMore": true
    }
  }
}

Exemplul 2: Completare cu context

Limbajul ales anterior restrânge sugestiile pentru framework.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "completion/complete",
  "params": {
    "ref": {
      "type": "ref/prompt",
      "name": "code_review"
    },
    "argument": {
      "name": "framework",
      "value": "fla"
    },
    "context": {
      "arguments": {
        "language": "python"
      }
    }
  }
}

Greșeli frecvente și bune practici

  • Întorci mai mult de 100 de valori într-un răspuns. Folosește hasMore și total.
  • Trimiți o cerere la fiecare tastă. Specificația recomandă clienților debounce și cache pentru rezultate.

Comenzi înrudite

Învață AI • Comunitate & Q&A

Întrebări & Exemple practice: completion/complete (autocompletarea argumentelor)

Ai o întrebare despre completion/complete (autocompletarea argumentelor) 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.