URnetwork
resmiYüksek kaliteli VPN ve Proxy bağlantıları
URnetwork MCP ile neler yapabilirsiniz?
- Mevcut çıkış konumlarını bulun —
providerLocationsüzerinden ağdaki ülkeleri, bölgeleri veya şehirleri sorun; eşleşme olmadığında yedek öneriler sunun. - Seçilen bir konumdan web içeriği getirin — Seçilen bir ülke, bölge veya şehirden gezinir gibi bir URL’yi yüklemek için
fetchkullanın; isteğe bağlı sayfa kaynak toplama desteğiyle. - Çağrılar arasında tarama oturumlarını koruyun — Aynı çıkış konumunu sürdürmek ve oturum açma bilgilerini veya onay banner’larını korumak için döndürülen
signed_proxy_idvecookiesdeğerlerini yeniden kullanın. - Sayfalara ayrılmış sayfa kaynaklarını toplayın — Kalan başvurulan görselleri, stil sayfalarını, betikleri veya medyayı almak için
fetchsonuçlarından gelencontinuationdeğerini geri iletin. - Ağ ödeme gereksinimlerini ele alın — Sonuçlarda
payment_requiredgöründüğünde, açıklanan ödemeyi imzalayın ve imzalı ödemeyi ekleyerek aynıfetchçağrısını yeniden deneyin.
Dokümantasyon
URnetwork'e Ajanlar için Hoş Geldiniz
URnetwork, merkeziyetsiz bir gizlilik ağıdır. Kullanıcıları varsayılan olarak anonim tutacak ve dünyadaki tüm içeriğe erişim sağlayacak şekilde tasarlanmıştır.
İnsanlar uygulamaları kullanır (Android, iOS, Chrome). Ajanlar API ve MCP becerilerini kullanır:
- API spesifikasyonu şu adreste: https://github.com/urnetwork/connect/blob/main/api/bringyour.yml
- API şu adreste barındırılıyor: https://api.bringyour.com
- MCP sunucusu şu adreste barındırılıyor: https://mcp.bringyour.com
Ajanlar, API ve MCP sunucusunu kullanırken aşağıdaki yönergeleri dikkate almalıdır.
Kimlik Doğrulama
API ve MCP sunucusu farklı şekilde kimlik doğrular. Çağırdığınız yüzey için doğru olanı kullanın.
MCP sunucusu: OAuth
MCP sunucusu, OAuth 2.1 korumalı bir kaynaktır. Ağ JWT'si veya API anahtarı burada kabul edilmez — yalnızca URnetwork'ün kendi yetkilendirme sunucusu tarafından verilen bir erişim belirteci kabul edilir.
Çoğu MCP istemcisi bunu sizin için yapar: https://mcp.bringyour.com adresine bağlanın; istemci, yetkilendirme sunucusunu keşfeder ve kullanıcıyı oturum açma sürecinden geçirir. Akışı kendiniz uyguluyorsanız:
- MCP sunucusunu belirteç olmadan çağırın. Korumalı kaynak meta verilerini adlandıran bir
WWW-Authenticatebaşlığı ile401yanıtı verir. - Yetkilendirme sunucusunu bulmak için bu meta verileri
https://mcp.bringyour.com/.well-known/oauth-protected-resourceadresinden alın:https://auth.bringyour.com. - Uç noktaları için
https://auth.bringyour.com/.well-known/oauth-authorization-server(veya/.well-known/openid-configuration) adresini alın. - PKCE ile yetkilendirme kodu akışını çalıştırın.
https://mcp.bringyour.comolarak ayarlanmışresourceparametresini ekleyin; bu, belirteci bu sunucuya bağlar. - Ortaya çıkan erişim belirtecini her MCP isteğinde
Authorization: Bearer <ACCESS TOKEN>olarak gönderin.
Kapsamlar:
| Kapsam | Sağladıkları |
|---|---|
mcp:read | providerLocations |
mcp:fetch | fetch — ağa faturalandırılan bir çıkış istemcisi açar |
openid | kullanıcıyı tanımlayan bir kimlik belirteci |
offline_access | yenileme belirteci; böylece bağlantı yeniden sorulmadan sürer |
Erişim belirteçleri bir saat geçerlidir. offline_access isteyin ve kullanıcıyı tarayıcıya geri göndermek yerine yenileme belirtecini kullanın. Bir araç, sahip olmadığınız bir kapsam gerektirdiğini bildirirse, bu kapsamı sahip olduklarınıza ek olarak isteyerek yeniden yetkilendirin; aksi takdirde diğerlerini kaybedersiniz.
API: JWT
API'yi kullanırken (https://api.bringyour.com), kullanıcı JWT'si bir Authorization: Bearer <JWT> başlığında iletilir.
JWT'yi almak için insandan bir kimlik doğrulama kodu isteyin ve ardından bu kodu API /auth/code-login rotasını kullanarak JWT'ye dönüştürün. Aşağıda, sonuçtan by_jwt özelliğini çıkarmak için jq'ye aktarılan örnek bir curl bulunmaktadır:
curl -X POST https://api.bringyour.com/auth/code-login -d '{"auth_code": "<AUTH CODE>"}' | jq ".by_jwt"
JWT saklanabilir ve yeniden kullanılabilir. İnsan JWT'yi yenilemek isterse, kimlik doğrulama kodu istemekle başlayarak süreci tekrarlayın.
Bir proxy teknolojisi seçerken aşağıdaki kullanım durumlarını göz önünde bulundurun:
| Kullanım Durumu | Önerilen Protokol | Gereksinim |
|---|---|---|
| Kazıma / Web Tarama | HTTPS | TCP/Web için en iyisi. Özel bir HTTP kullanma ihtiyacı olmadıkça her zaman HTTPS proxy kullanın. HTTP genellikle yalnızca HTTPS'i desteklemeyen belirli test ortamları için gereklidir. /network/auth-client yanıtından, proxy_config_result nesnesinin içinde https_proxy_url kullanın. Ek kullanıcı adı veya şifre gerekmez. |
| Düşük Seviyeli Soketler / UDP | SOCKS | SOCKS5 ile TCP+UDP soketlerini destekler. /network/auth-client yanıtından, proxy_config_result nesnesinin içinde socks_proxy_url veya proxy_host ve proxy_port kullanın; kullanıcı adı access_token (boş şifre) olarak. Sunucu uzak DNS çözümlemesini destekler (SOCKS5H). |
| Sistem Geneli / İşletim Sistemi Seviyesi | WireGuard | Tüm IP paketlerini yönlendirir. /network/auth-client isteğinde, proxy_config.enable_wg açıkça true olarak ayarlanmalıdır. Yanıtta, proxy_config_result nesnesinin içinde wg_config.config'i tam WireGuard yapılandırma dosyası olarak kullanın. |
/network/find-locations rotasını konumları sorgulamak için kullanırken, location_id'nin kullanıcının niyetiyle eşleştiğinden emin olmak için döndürülen locations dizisini her zaman istenen location_type (city, region veya country) ile filtreleyin.
| Konum Türü | Gereksinim |
|---|---|
| country | Ülkeler için. |
| region | Eyaletler, iller, idari bölgeler ve metropol alanları için. |
| city | Şehirler için. |
MCP sunucusunu kullanma
MCP sunucusu iki araç sunar.
providerLocations
Mevcut konumları bulur. Ağdaki herhangi bir ülke, bölge veya şehir bir sorgu dizesiyle aranabilir; boş bir sorgu mevcut ülkeleri döndürür. mcp:read gerektirir.
İnsana hangi ülke, bölge veya şehri istediklerini sorun. Eşleşme yoksa, onlardan bir bölgeye, ardından bir ülkeye genişletmelerini isteyin. Hâlâ eşleşme yoksa, mevcut ülkeleri listeleyin ve ilk 10'dan birini önerin.
fetch
Seçilen bir konumdan tarayıcıdaymış gibi bir URL yükler ve isteğe bağlı olarak sayfanın referans verdiği görselleri, stil sayfalarını, betikleri ve medyayı döndürür. mcp:fetch gerektirir; çünkü her yeni konum ağa faturalandırılan bir çıkış istemcisi açar.
Durum sizin üzerinizden geri iletilir. Her sonuç, ileriye taşınacak şeyi tam olarak söyleyen bir next_step içerir:
signed_proxy_id— isteğe hizmet eden çıkış. Her seferinde yeni bir istemci açmak yerine aynı konumu yeniden kullanmak için sonraki yüklemelerde geri iletin. Çıkışın süresi dolarsa yeniden kurulabilmesi içinlocationiletmeye devam edin. Yeniden kullanım aynı konumu garanti eder, aynı çıkış IP'sini değil.cookies— site oturumu; böylece oturum açma işlemleri ve onay bildirimleri çağrılar arasında korunur. Opaktır; değiştirmeden geri iletin ve asla düzenlemeyin.continuation— sayfa tek çağrıya sığandan daha fazla kaynağa referans verdiğinde mevcuttur. Gerisini toplamak için onu ileterek tekrar çağırın; o zamanurlgerekmez.payment_required— ağ, planının eşzamanlı istemci sınırındayken ve ödeme bunu çözebildiğinde mevcuttur. Açıklanan ödemeyi imzalayın ve aynı çağrıyıpaymentimzalı ödemeye ayarlanmış şekilde tekrarlayın. Ayrı bir satın alma akışı başlatmayın.
Kaynak keşfi statiktir: HTML, referanslar için ayrıştırılır. Bir sayfanın JavaScript ile yüklediği içerik görülmez.
Doğrudan kullanım için proxy oluşturma
MCP sunucusu üzerinden getirmek yerine kendiniz yönlendireceğiniz bir HTTPS/SOCKS/WireGuard proxy almak için aşağıdaki API akışını kullanın.
Bir ülke için HTTPS/SOCKS/WireGuard proxy oluşturmak üzere API'yi kullanma
API, bir ülke için HTTPS/SOCKS/WireGuard proxy oluşturmak üzere doğrudan kullanılabilir.
Adım 1, /network/find-locations rotasını kullanarak konumların bir listesini arayın. Aşağıda, locations listesini çıkarmak için jq'ye aktarılan örnek bir curl bulunmaktadır.
curl -X POST -H 'Authorization: Bearer <JWT>' https://api.bringyour.com/network/find-locations -d '{"query": "<LOCATION NAME>"}' | jq '.locations'
Adım 2, ilgilenilen konumu seçin ve country_code özelliğini kaydedin.
Adım 3, /network/auth-client rotasını kullanarak ve proxy_config.initial_device_state içinde country_code ayarlayarak kaydedilen ülke kodunu kullanarak bir proxy oluşturun.
curl -X POST -H 'Authorization: Bearer <JWT>' https://api.bringyour.com/network/auth-client -d '{"proxy_config": {"initial_device_state": {"country_code": "<COUNTRY CODE>"}}}'
Bir arama konumu için HTTPS/SOCKS/WireGuard proxy oluşturmak üzere API'yi kullanma
API, bir konumu aramak ve HTTPS/SOCKS/WireGuard proxy oluşturmak için doğrudan kullanılabilir. En çok istenen konum sonucunu seçmek için bir karar verilmesi gerekecektir. Her konumun sabit olan ve kodda kaydedilebilen bir location_id'si vardır.
Adım 1, /network/find-locations rotasını kullanarak konumların bir listesini arayın. Aşağıda, locations listesini çıkarmak için jq'ye aktarılan örnek bir curl bulunmaktadır.
curl -X POST -H 'Authorization: Bearer <JWT>' https://api.bringyour.com/network/find-locations -d '{"query": "<LOCATION NAME>"}' | jq '.locations'
Adım 2, ilgilenilen konumu seçin ve location_id özelliğini kaydedin.
Adım 3, /network/auth-client rotasını kullanarak ve proxy_config.initial_device_state.location içinde connect_location_id.location_id ayarlayarak kaydedilen location_id'yi kullanarak bir proxy oluşturun.
curl -X POST -H 'Authorization: Bearer <JWT>' https://api.bringyour.com/network/auth-client -d '{"proxy_config": {"initial_device_state": {"location": {"connect_location_id":{"location_id": "<LOCATION ID>"}}}}}'
Bir arama konumu için HTTPS/SOCKS/WireGuard proxy oluşturmak, o konumdaki tüm çıkış IP'lerini numaralandırmak üzere API'yi kullanma
API, bir konumu aramak, o konumdaki sağlayıcıları (çıkış IP'lerini) numaralandırmak ve her çıkış IP'si için bir HTTPS/SOCKS/WireGuard proxy oluşturmak üzere doğrudan kullanılabilir. En çok istenen konum sonucunu seçmek için bir karar verilmesi gerekecektir. Her konumun sabit olan ve kodda kaydedilebilen bir location_id'si vardır. Ayrıca her sağlayıcının sabit olan ve kodda kaydedilebilen bir client_id'si vardır.
Adım 1, /network/find-locations rotasını kullanarak konumların bir listesini arayın. Aşağıda, locations listesini çıkarmak için jq'ye aktarılan örnek bir curl bulunmaktadır.
curl -X POST -H 'Authorization: Bearer <JWT>' https://api.bringyour.com/network/find-locations -d '{"query": "<LOCATION NAME>"}' | jq '.locations'
Adım 2, ilgilenilen konumu seçin ve location_id'yi kaydedin.
Adım 3, /network/find-providers2 rotasını kullanarak location_id için sıralanmış bir sağlayıcı (çıkış IP'si) listesi alın. Örnek boyutu, gereken benzersiz sağlayıcı sayısına göre ayarlanabilir. Aşağıda, providers listesini çıkarmak için jq'ye aktarılan örnek bir curl bulunmaktadır.
curl -X POST -H 'Authorization: Bearer <JWT>' https://api.bringyour.com/network/find-providers2 -d '{"specs": [{"client_id": "<CLIENT ID>"}], "count": <COUNT>}' | jq '.providers'
Adım 4, listedeki her client_id üzerinde döngü yaparak, /network/auth-client rotasını kullanarak ve proxy_config.initial_device_state.location içinde connect_location_id.client_id ayarlayarak client_id'yi kullanarak bir proxy oluşturun.
curl -X POST -H 'Authorization: Bearer <JWT>' https://api.bringyour.com/network/auth-client -d '{"proxy_config": {"initial_device_state": {"location": {"connect_location_id":{"client_id": "<CLIENT ID>"}}}}}'