Nu introduceți date personale, cum ar fi numele unui client.
Conectarea unui agent AI (MCP)
Conectați Claude, ChatGPT, Cursor sau propriul agent la workspace-ul business prin MCP, ca să pregătească formulare DS-160 din documentele unui client și să trimită linkuri.
Agentul AI propriu al unei firme de imigrare poate lucra în workspace-ul său DS160.io prin MCP (Model Context Protocol). Din documentele sau emailurile unui client, agentul poate crea un formular, completa răspunsurile pe care le găsește, verifica ce mai lipsește și trimite clientului un link pentru a completa restul. Angajații dumneavoastră verifică apoi cererea și o semnează ei înșiși pe CEAC.
Agentul se conectează la un singur workspace business și poate face doar ceea ce îi permiteți. Fiecare lucru pe care îl poate face este și un endpoint al API-ului DS160.io.
Înainte de a începe
- Un workspace business. MCP este disponibil pentru workspace-urile business.
- Acces de Proprietar sau Administrator. Doar Proprietar și Administrator din workspace pot crea chei API sau permite o conexiune.
- Un client MCP. Claude Code, Cursor, VS Code, Codex și Windsurf se conectează cu o cheie API. claude.ai și ChatGPT se conectează prin autentificare în DS160.io.
Adresa serverului este:
https://www.ds160.io/api/mcp
Folosiți această adresă chiar dacă workspace-ul dumneavoastră are propriul domeniu.
Conectare cu o cheie API
- Deschideți Setări spațiu de lucru → Echipă și acces → Chei API și apăsați Creați cheie API.
- Denumiți cheia după agent (de exemplu Claude Code, echipa de admisie), alegeți presetarea MCP și creați cheia. Presetarea bifează toate scope-urile cu excepția
runs:write; debifați orice scope de care agentul nu are nevoie. - Copiați secretul. Începe cu
ds160_sk_și este afișat o singură dată. - Adăugați serverul în clientul dumneavoastră, cu secretul într-un header
Authorization. În Claude Code:
claude mcp add --transport http ds160 https://www.ds160.io/api/mcp --header "Authorization: Bearer ds160_sk_…"
Alți clienți primesc aceeași adresă și același header în setările lor. În Cursor (.cursor/mcp.json):
{
"mcpServers": {
"ds160": {
"url": "https://www.ds160.io/api/mcp",
"headers": { "Authorization": "Bearer ds160_sk_…" }
}
}
}
În VS Code (.vscode/mcp.json), adăugați aceleași url și headers sub "servers", cu "type": "http". Nu păstrați secretul în fișiere pe care le publicați în depozitul de cod: folosiți variabilele de mediu sau câmpurile pentru secrete ale clientului, acolo unde există.
Conectarea claude.ai sau ChatGPT
claude.ai și ChatGPT nu trimit o cheie. Ele se conectează prin autentificare în DS160.io:
- În claude.ai sau ChatGPT, adăugați
https://www.ds160.io/api/mcpca un conector personalizat. - Când vi se cere, autentificați-vă în DS160.io cu propriul cont.
- Alegeți workspace-ul business în care va lucra agentul.
- Verificați permisiunile cerute, apoi apăsați pentru a permite.
Agentul acționează apoi în numele dumneavoastră, în acel workspace. Trebuie să fiți Proprietar sau Administrator al workspace-ului pentru a permite o conexiune.
Scope-uri: ce permite fiecare
| Scope | Ce poate face agentul |
|---|---|
forms:read | Listează formulare, citește numele și starea unui formular, verifică ce lipsește, urmărește o trimitere |
forms:write | Creează formulare (și le citește) |
forms:clone | Copiază un formular existent într-unul nou |
client-links:write | Creează linkuri de client de trimis solicitanților |
answers:read | Citește răspunsurile unui formular |
answers:write | Scrie și șterge răspunsurile unui formular |
runs:write | Pornește o trimitere pe CEAC și o urmărește |
answers:read scoate datele personale ale solicitanților din DS160.io. Numele, datele de naștere, numerele de pașaport, istoricul de călătorii și orice alt răspuns DS-160 pe care îl citește agentul ajung la agent și la cine îl rulează, de exemplu un furnizor de AI. Workspace-ul dumneavoastră, ca operator al datelor clienților săi, decide dacă acest lucru este permis și răspunde pentru aceste date după ce părăsesc DS160.io (vedeți politica de confidențialitate și Acordul de prelucrare a datelor). Dacă agentul trebuie doar să completeze formulare, nu îi acordați answers:read: doar cu answers:write poate scrie răspunsuri fără să le citească înapoi.
Ce poate și ce nu poate face agentul
- Poate pregăti un formular: îl creează, completează răspunsuri din ce a trimis clientul, vede ce întrebări mai lipsesc sau ar fi refuzate și trimite clientului un link pentru rest.
- Fiecare răspuns pe care îl scrie este verificat așa cum îl verifică editorul formularului. Textul este salvat cu majuscule, cu excepția cazului în care întrebarea permite litere din afara alfabetului englez. Un răspuns care nu se potrivește este refuzat cu un motiv, iar restul lotului nu este afectat.
- Fiecare modificare este înregistrată. Istoricul câmpului din formular arată fiecare modificare ca „Cheie API nume” pentru o cheie sau ca „membru prin agent” pentru o conexiune.
- Nu poate semna sau depune. O trimitere pornită de un agent se oprește întotdeauna înainte de semnare, indiferent de setarea workspace-ului: o persoană verifică cererea și o semnează pe CEAC (vedeți Verificarea unui DS-160 pe CEAC înainte de semnare).
- Nu poate tasta captcha-urile CEAC. Le tastează o persoană în DS160.io, cât timp trimiterea așteaptă; trimiterea îi spune agentului când și unde este nevoie de cineva.
- Crearea unui formular se facturează ca în aplicație: fiecare formular creat sau clonat contează ca formular creat.
- Lucrează doar în propriul workspace. Nu vede alte workspace-uri, iar un formular din alt workspace este raportat ca negăsit.
Instrumente
| Instrument | Ce face | Scope |
|---|---|---|
list_forms | Listează formularele workspace-ului, cele mai noi primele | forms:read |
get_form | Citește numele, starea și consimțământul unui formular | forms:read |
create_form | Creează un formular (facturat per formular creat) | forms:write |
clone_form | Copiază un formular într-unul nou, opțional fără unele secțiuni | forms:clone |
create_client_link | Creează un link de client pentru un formular | client-links:write |
search_docs | Caută în această documentație, 200 de căutări pe zi per cheie sau conexiune | oricare |
describe_form_pages | Listează paginile formularului și fiecare întrebare: calea răspunsului, tipul, dacă este obligatorie, valorile listelor derulante și întrebările pe care le deschide fiecare răspuns, cu JSON-ul pentru fiecare tip de răspuns | oricare |
get_answers | Citește răspunsurile unui formular, pentru întregul formular sau o pagină | answers:read |
set_answers | Scrie până la 200 de răspunsuri per apel, în ordine: fiecare este scris, șters (valoare null) sau refuzat cu un cod și un motiv | answers:write |
get_form_progress | Pentru fiecare secțiune: starea, întrebările obligatorii fără răspuns și problemele pe căi; și dacă formularul este complet | forms:read, answers:read sau answers:write |
start_run | Pornește o trimitere pe CEAC pentru consulatul ales; se oprește înainte de semnare | runs:write |
get_run | Starea unei trimiteri, un rezumat al stadiului ei, dacă este nevoie de o persoană și linkul către ea | runs:write sau forms:read |
Revocarea accesului
- O cheie: revocați-o în Setări spațiu de lucru → Echipă și acces → Chei API. Următorul apel al agentului este refuzat.
- O conexiune (claude.ai, ChatGPT): revocați-o în Cont și securitate sau, pentru întregul workspace, în Setări spațiu de lucru. Ambele listează conexiunile existente.
Revocați imediat dacă o cheie s-ar fi putut scurge sau un agent nu mai este folosit.
Agentul să se limiteze la ce a dat solicitantul
Un DS-160 este semnat de solicitant, care declară că fiecare răspuns este adevărat. Spuneți-i agentului să răspundă doar din ce v-a dat solicitantul (documentele, emailurile și răspunsurile sale) și să nu ghicească sau să inventeze niciodată un răspuns. Când nu este sigur, trebuie să lase întrebarea goală, astfel încât get_form_progress să o arate ca lipsă, iar clientul sau angajații dumneavoastră să răspundă. Verificați formularul înainte ca cineva să-l semneze.
Depanare
| Problemă | Ce trebuie făcut |
|---|---|
Clientul spune că nu se poate conecta sau primește 401 | Verificați că adresa este https://www.ds160.io/api/mcp și headerul este Authorization: Bearer <secret>, cu secretul întreg. O cheie revocată nu mai poate fi folosită: creați una nouă. |
| Un instrument spune că lipsește un scope | Cheii sau conexiunii îi lipsește acel scope. Creați o cheie cu el (sau conectați-vă din nou și permiteți-l), apoi revocați-o pe cea veche. |
| Un răspuns este refuzat | Citiți motivul. Folosiți describe_form_pages pentru calea corectă și valorile pe care le acceptă o listă derulantă. |
start_run este refuzat | get_form_progress listează ce lipsește sau este greșit în fiecare secțiune. Completați, apoi porniți din nou trimiterea. Dacă o trimitere a formularului este deja în curs, urmăriți-o cu get_run. |
Trimiterea așteaptă cu needsPerson | Cineva deschide linkul trimiterii în DS160.io și tastează captcha-ul. Când trimiterea este gata de semnare, cineva verifică cererea și o semnează pe CEAC. |