Müşteri adı gibi kişisel bilgiler yazmayın.
Bir Yapay Zekâ Ajanı Bağlama (MCP)
Claude, ChatGPT, Cursor veya kendi ajanınızı MCP üzerinden kurumsal çalışma alanınıza bağlayın; ajan bir müşterinin belgelerinden DS-160 formları hazırlasın ve müşteri bağlantıları göndersin.
Bir göçmenlik danışmanlık firmasının kendi yapay zekâ ajanı, MCP (Model Context Protocol) üzerinden firmanın DS160.io çalışma alanında çalışabilir. Ajan, bir müşterinin belgelerinden veya e-postalarından bir form oluşturabilir, bulduğu cevapları doldurabilir, neyin hâlâ eksik olduğunu kontrol edebilir ve kalanını tamamlaması için müşteriye bir bağlantı gönderebilir. Ardından ekibiniz başvuruyu kontrol eder ve CEAC’ta kendisi imzalar.
Ajan tek bir kurumsal çalışma alanına bağlanır ve yalnızca sizin izin verdiğiniz işleri yapabilir. Yapabildiği her şey aynı zamanda DS160.io API’sinin bir uç noktasıdır.
Başlamadan önce
- Kurumsal bir çalışma alanı. MCP kurumsal çalışma alanlarında kullanılabilir.
- Sahip veya Yönetici erişimi. API anahtarlarını yalnızca çalışma alanının Sahipleri ve Yöneticileri oluşturabilir ve bir bağlantıya izin verebilir.
- Bir MCP istemcisi. Claude Code, Cursor, VS Code, Codex ve Windsurf bir API anahtarıyla bağlanır. claude.ai ve ChatGPT ise DS160.io’ya giriş yaparak bağlanır.
Sunucunun adresi şudur:
https://www.ds160.io/api/mcp
Çalışma alanınızın kendi alan adı olsa bile bu adresi kullanın.
API anahtarıyla bağlanma
- Çalışma alanı ayarları → Ekip ve erişim → API anahtarları bölümünü açın ve API anahtarı oluştur düğmesine tıklayın.
- Anahtara ajanın adını verin (ör. Claude Code, kabul ekibi), MCP hazır ayarını seçin ve anahtarı oluşturun. Hazır ayar
runs:writedışındaki tüm kapsamları işaretler; ajanın ihtiyaç duymadığı kapsamların işaretini kaldırın. - Gizli anahtarı kopyalayın.
ds160_sk_ile başlar ve yalnızca bir kez gösterilir. - Sunucuyu, gizli anahtar bir
Authorizationbaşlığında olacak şekilde istemcinize ekleyin. Claude Code’da:
claude mcp add --transport http ds160 https://www.ds160.io/api/mcp --header "Authorization: Bearer ds160_sk_…"
Diğer istemciler aynı adresi ve başlığı kendi ayarlarında alır. Cursor’da (.cursor/mcp.json):
{
"mcpServers": {
"ds160": {
"url": "https://www.ds160.io/api/mcp",
"headers": { "Authorization": "Bearer ds160_sk_…" }
}
}
}
VS Code’da (.vscode/mcp.json), aynı url ve headers değerlerini "type": "http" ile "servers" altına ekleyin. Gizli anahtarı commit ettiğiniz dosyaların dışında tutun: istemcinizin ortam değişkenleri veya gizli girdiler desteği varsa onu kullanın.
claude.ai veya ChatGPT’yi bağlama
claude.ai ve ChatGPT anahtar göndermez. Bunun yerine DS160.io’ya giriş yaparak bağlanırlar:
- claude.ai veya ChatGPT’de
https://www.ds160.io/api/mcpadresini özel bağlayıcı (custom connector) olarak ekleyin. - İstendiğinde kendi hesabınızla DS160.io’ya giriş yapın.
- Ajanın çalışacağı kurumsal çalışma alanını seçin.
- İstenen izinleri inceleyin, ardından izin vermek için tıklayın.
Ajan bundan sonra o çalışma alanında sizin adınıza hareket eder. Bir bağlantıya izin vermek için çalışma alanının Sahibi veya Yöneticisi olmanız gerekir.
Kapsamlar: her biri neye izin verir
| Kapsam | Ajanın yapabilecekleri |
|---|---|
forms:read | Formları listelemek, bir formun adını ve durumunu okumak, neyin eksik olduğunu kontrol etmek, bir gönderimi takip etmek |
forms:write | Form oluşturmak (ve okumak) |
forms:clone | Mevcut bir formu yeni bir forma kopyalamak |
client-links:write | Başvuru sahiplerine gönderilecek müşteri bağlantıları oluşturmak |
answers:read | Bir formun cevaplarını okumak |
answers:write | Bir formun cevaplarını yazmak ve kaldırmak |
runs:write | CEAC’ta bir gönderim başlatmak ve takip etmek |
answers:read, başvuru sahiplerinin kişisel verilerini DS160.io’nun dışına gönderir. Ajanın okuduğu adlar, doğum tarihleri, pasaport numaraları, seyahat geçmişi ve diğer tüm DS-160 cevapları ajana ve onu çalıştıran tarafa (örneğin bir yapay zekâ sağlayıcısına) iletilir. Müşterilerinin verilerinin veri sorumlusu olarak buna izin verilip verilmeyeceğine çalışma alanınız karar verir ve bu veriler DS160.io’dan çıktıktan sonra onlardan çalışma alanınız sorumludur (bkz. gizlilik politikası ve Veri İşleme Sözleşmesi). Ajanın yalnızca form doldurması gerekiyorsa answers:read kapsamını vermeyin: yalnızca answers:write ile cevapları geri okumadan yazabilir.
Ajanın yapabilecekleri ve yapamayacakları
- Bir formu hazırlayabilir: formu oluşturabilir, müşterinin gönderdiklerinden cevapları doldurabilir, hangi soruların hâlâ eksik olduğunu veya reddedileceğini görebilir ve kalanı için müşteriye bir bağlantı gönderebilir.
- Yazdığı her cevap, form düzenleyicisinin kontrol ettiği gibi kontrol edilir. Soru İngilizce dışındaki harflere izin vermiyorsa metin büyük harflerle kaydedilir. Uymayan bir cevap bir gerekçeyle reddedilir ve toplu işlemdeki diğer cevaplar bundan etkilenmez.
- Her değişiklik kaydedilir. Formun Değişiklik geçmişi, her değişikliği bir anahtar için “API key ad”, bir bağlantı için “üye via ajan” olarak gösterir.
- İmzalayamaz veya gönderemez. Bir ajanın başlattığı gönderim, çalışma alanının ayarı ne olursa olsun her zaman imzalamadan önce durur: bir kişi başvuruyu kontrol eder ve CEAC’ta imzalar (bkz. İmzalamadan Önce İnceleme).
- CEAC’ın captcha’larını yazamaz. Gönderim beklerken bunları bir kişi DS160.io’da yazar; gönderim, birine ne zaman ve nerede ihtiyaç olduğunu ajana bildirir.
- Form oluşturmak, uygulamada form oluşturmak gibi faturalandırılır: oluşturulan veya klonlanan her form, oluşturulmuş bir form sayılır.
- Yalnızca kendi çalışma alanında çalışır. Diğer çalışma alanlarını göremez ve başka bir çalışma alanındaki bir form bulunamadı olarak bildirilir.
Araçlar
| Araç | Ne yapar | Kapsam |
|---|---|---|
list_forms | Çalışma alanının formlarını en yeniden başlayarak listeler | forms:read |
get_form | Bir formun adını, durumunu ve onayını okur | forms:read |
create_form | Bir form oluşturur (oluşturulan form başına faturalandırılır) | forms:write |
clone_form | Bir formu, isteğe bağlı olarak bazı bölümleri dışarıda bırakarak yeni bir forma kopyalar | forms:clone |
create_client_link | Bir form için müşteri bağlantısı oluşturur | client-links:write |
search_docs | Bu dokümanlarda arama yapar; anahtar veya bağlantı başına günde 200 arama | herhangi biri |
describe_form_pages | Formun sayfalarını ve her soruyu listeler: cevap yolu, türü, zorunlu olup olmadığı, açılır liste değerleri ve her cevabın açtığı sorular; her cevap türü için JSON ile birlikte | herhangi biri |
get_answers | Bir formun cevaplarını, formun tamamı veya tek bir sayfa için okur | answers:read |
set_answers | Çağrı başına en fazla 200 cevabı sırayla yazar: her biri yazılır, kaldırılır (değer null) veya bir kod ve gerekçeyle reddedilir | answers:write |
get_form_progress | Her bölüm için: durumu, cevaplanmamış zorunlu sorular ve yola göre sorunlar; ayrıca formun tamamlanıp tamamlanmadığı | forms:read, answers:read veya answers:write |
start_run | Seçilen bir konsolosluk için CEAC’ta bir gönderim başlatır; imzalamadan önce durur | runs:write |
get_run | Bir gönderimin durumu, nerede olduğunun özeti, bir kişiye ihtiyaç olup olmadığı ve gönderimin bağlantısı | runs:write veya forms:read |
Erişimi iptal etme
- Bir anahtar: Çalışma alanı ayarları → Ekip ve erişim → API anahtarları bölümünden iptal edin. Ajanın yaptığı bir sonraki çağrı reddedilir.
- Bir bağlantı (claude.ai, ChatGPT): Hesap ve Güvenlik bölümünden veya tüm çalışma alanı için Çalışma alanı ayarları bölümünden iptal edin. İkisi de mevcut bağlantıları listeler.
Bir anahtar sızmış olabilirse veya bir ajan artık kullanılmıyorsa hemen iptal edin.
Ajanı başvuru sahibinin verdikleriyle sınırlayın
Bir DS-160’ı, her cevabın doğru olduğunu beyan eden başvuru sahibi imzalar. Ajanınıza yalnızca başvuru sahibinin size verdiklerinden (belgeleri, e-postaları ve cevapları) yararlanarak cevap vermesini, asla tahmin etmemesini veya cevap uydurmamasını söyleyin. Emin olmadığı yerde soruyu boş bırakmalıdır; böylece get_form_progress soruyu eksik olarak gösterir ve müşteri veya ekibiniz onu cevaplar. Formu kimse imzalamadan önce inceleyin.
Sorun giderme
| Sorun | Ne yapmalı |
|---|---|
İstemci bağlanamıyor veya 401 alıyor | Adresin https://www.ds160.io/api/mcp ve başlığın tam gizli anahtarla Authorization: Bearer <secret> olduğunu kontrol edin. İptal edilmiş bir anahtar yeniden kullanılamaz: yeni bir anahtar oluşturun. |
| Bir araç bir kapsamın eksik olduğunu söylüyor | Anahtarda veya bağlantıda bu kapsam yok. Bu kapsamla bir anahtar oluşturun (veya yeniden bağlanıp kapsama izin verin), ardından eskisini iptal edin. |
| Bir cevap reddediliyor | Gerekçesini okuyun. Doğru yol ve bir açılır listenin kabul ettiği değerler için describe_form_pages kullanın. |
start_run reddediliyor | get_form_progress, her bölümde neyin eksik veya hatalı olduğunu listeler. Bunları tamamlayın, ardından gönderimi yeniden başlatın. Formun bir gönderimi zaten sürüyorsa onu get_run ile takip edin. |
Gönderim needsPerson ile bekliyor | Biri gönderimin bağlantısını DS160.io’da açar ve captcha’yı yazar. Gönderim imzaya hazır olduğunda biri başvuruyu kontrol eder ve CEAC’ta imzalar. |