Giriş

Bu uygulamalı kılavuzda, mobil proxy'i MCP istemcisine adım adım bağlayarak AI araçlarınızın dış veri kaynakları ve API'lerle stabil ve öngörülebilir bir şekilde çalışmasını sağlayacaksınız. Öncelikle mobil proxy'lerin neden gerekli olduğunu ve MCP'nin (Model Context Protocol) nasıl çalıştığını kısaca açıklayacağız. Ardından ortamı hazırlayıp proxy'i bağlayacak, mobileproxy.space tabanlı gerçek bir örneği inceleyecek, kontrol işlemleri yapacak ve yaygın hataları ele alacağız. Sonuç olarak, ekibinize veya üretime taşınabilecek bir yapılandırmanız olacak.

Bu kılavuz, AI araçlarının ağ davranışlarını yeniden üretmek ve dış web siteleri ve API'lere erişimdeki kararsızlığı azaltmak isteyen geliştiriciler, veri analistleri ve entegrasyon mühendislerine yöneliktir. Eğer MCP ile yeni tanışıyorsanız, tüm adımlarda ilerleyebilirsiniz. İleri seviye kullanıcılar, hazır kod örnekleri ve optimizasyon ipuçları bulacaklar.

Başlamadan önce temel kavramları anlamak önemlidir: terminal nasıl açılır, Node.js nasıl kurulur, JSON yapılandırma dosyası nasıl düzenlenir ve günlükler nasıl okunur. Ağlar hakkında derin bilgiye ihtiyacınız yok. Gereken her şeyi süreç boyunca açıklayacağız.

Uygulama süresi: 60 ila 90 dakika arası, kullanılan araçların kurulu olup olmadığına ve elinizde hazır mobil proxy kimlik bilgileri olup olmadığına bağlıdır. Eğer MCP istemcisini ilk kez ayarlıyorsanız, tüm kontrolleri ve tanılama işlemlerini dikkatlice gözden geçirmek için 90 dakika ayırmanızı öneririz.

Not: Bu yapılandırmayı takım ortamına entegre ediyorsanız, yapılandırmaları ve şifreleri saklayacak tek bir yer hakkında önceden anlaşın; böylece geliştiricilerin kişisel dosyalarına proxy şifrelerini dağılmamış olursunuz.

Kontrol: "Sonuç Kontrolü" bölümünün sonunda, proxy'nin gerçekten kullanıldığından ve araçların mobil şebeke üzerinden internete başarılı bir şekilde bağlandığından emin olmak için kullanabileceğiniz bir kontrol listesi alacaksınız.

Ön Hazırlık

Doğru ve hızlı bir yapılandırma için tüm araç ve erişimlerinizi önceden toplayın. Bu, zaman tasarrufu sağlayacak ve sürecin ortasında hatalardan kaçınmanıza yardımcı olacaktır.

Gerekli Araçlar, Programlar ve Erişimler

  • İşletim Sistemi: Windows 10/11, macOS 12+ veya yazılım yükleme yetkisi olan Linux.
  • Node.js LTS 20+ (npm ile birlikte) JavaScript/TypeScript'te MCP sunucuları çalıştırmak için.
  • Kod Editörü: VS Code, JetBrains veya tercihinize göre başka bir editör.
  • Mobil proxy kimlik bilgileri: host, port, kullanıcı adı, şifre. İdeal olarak, IP dönüşüm URL'si ve "sticky" oturum parametrelerini de içermelidir.
  • MCP istemcisi: örneğin, Claude Desktop veya dış MCP sunucularını destekleyen Cline (VS Code eklentisi).
  • Ağ tanılama için temel yardımcı programlar: proxy üzerinden internete çıkışı kontrol etmek için curl veya benzeri araçlar.

Sistem Gereksinimleri

  • Çalışma makinenizde kararlı bir internet bağlantısı.
  • Mobil proxy'ye açık dış erişim (genellikle 3128, 8000, 8080 veya sağlayıcı tarafından belirtilen başka bir port).
  • Disk: Node.js paketleri ve günlükler için en az 200 MB.

İndirilmesi, Yüklenmesi ve Ayarlanması Gerekenler

  1. İşletim sisteminizin resmi dağıtımından Node.js LTS 20+'yi yükleyin.
  2. Kod ve yapılandırmaların saklanacağı bir çalışma projesi klasörü oluşturun, örneğin mcp-mobileproxy.
  3. MCP istemcisinin kurulu olduğundan emin olun: Claude Desktop'ı başlatın veya Cline yüklü VS Code'u açın.
  4. Mobil proxy kimlik bilgilerinizi (host, port, kullanıcı, şifre) hazırlayın, ayrıca IP dönüşüm URL'sini ve "sticky" oturumlar için gerekli parametreleri belirleyin.

Yedekleme Oluşturma

MCP istemcisinin yapılandırma dosyasını (örneğin JSON dosyasını) düzenliyorsanız, değişikliklerden önce orijinal dosyanın yedeğini alın. Bunu yanına .bak takısı ekleyerek kopyalayın. Bir şeyler ters giderse, orijinal ayarlarınıza hızlıca dönebilirsiniz.

Dikkat: Asla proxy şifrelerini açık kaynaklı repolarında saklamayın. Takım çalışmalarında, sızıntı riskini önlemek için, gizli yöneticiler veya çevresel değişkenler kullanın.

Kontrol: Node.js'in kurulu olduğundan emin olun (node -v komutu versiyonu gösterir) ve MCP istemcinizin yapılandırma dosyasının nerede olduğunu bilin. Mobil proxy kimlik bilgileriniz hazır olmalı ve internete erişiminiz stabil olmalıdır.

MCP Nedir (Model Context Protocol)

MCP, AI istemcileri (örneğin, masaüstü uygulamaları ve IDE eklentileri) ile MCP sunucuları tarafından sağlanan dış kaynaklar arasındaki etkileşimi standartlaştıran açık bir protokoldür. Fikir basittir: istemci, arayüzde "araçları" ve "kaynakları" görüntülerken, sunucu bu mantığı gerçekleştirir. Bu sayede aynı sunucu farklı istemcilerle bağlanabilir ve araçlar birbirine benzer görünür ve çalışır.

Anahtar Kavramlar Basit Bir Dille

  • MCP İstemcisi — model ile iletişim kurduğunuz ve hangi araçların ona erişim sağlayabileceğini seçtiğiniz uygulama. Örnekler: Claude Desktop, Cline.
  • MCP Sunucusu — "araçlar" (tools), "kaynaklar" (resources), "ipuçları" (prompts) uygulayan üçüncü parti program. Sunucu, yeteneklerin tanımlamalarını sağlar ve istemciden gelen çağrıları işler.
  • Araçlar — modelin gerçekleştirebileceği eylemler: web API'sine istek, dosya okuma, HTML ayıklama, proxy aracılığıyla HTTP isteği vb.
  • Taşıma Aracı — istemci ve sunucu arasındaki iletişim yolu (genellikle stdio veya web bağlantısı). Sizin için bu şeffaftır: sunucu başlatma komutunu ve parametreleri belirtirsiniz.

Çalışma Prensipleri

İstemci, MCP sunucusuyla oturum başlatır ve ondan yeteneklerin deklaratif bir tanımını alır: hangi araçların mevcut olduğu, hangi parametreleri kabul ettiği ve ne döndüreceği. Modelle iletişim kurarken bir eylem yapmasını istediğinizde, istemci sunucudaki ilgili aracı çağırır. Sunucu tüm "kirli" işi gerçekleştirir — internetteki kaynaklara erişir, veritabanlarına sorgu gönderir, dosyaları ayıklar ve sonucu istemciye geri döner. Bu senaryoda bizim için önemli olan, sunucunun ağ geçişlerinin mobil proxy üzerinden gitmesidir, doğrudan değil. Böylece AI araçlarının tüm istekleri öngörülebilir bir şekilde yönlendirilir: stabil IP, dönüşümler, "sticky" oturumlar, bölgesellik vb.

Başlamadan Önce Anlamanız Gerekenler

  • Proxy'i nerede etkinleştirmeniz gerektiği: küresel olarak çevresel değişkenler aracılığıyla mı yoksa MCP sunucusu kodunda yerel olarak mı. Her iki seçenek de geçerlidir ancak avantajları farklıdır.
  • İsteğin gerçekten proxy üzerinden gidip gitmediğini nasıl teyit edeceğiniz: örneğin dış IP'nizi sorgulayarak, proxy sağlayıcısının günlükleri veya başlıklarında izleme ile.
  • Ne tür bir IP dönüşüm stratejisine ihtiyacınız olduğu: manuel dönüşüm butonu, otomatik olarak N isteği sonrası veya görev süresince "sticky" oturumlar.

Öneri: Başlamadan önce dönüşüm stratejisini ayrıntılı planlayın. Sık dönüşümler her zaman yararlı değildir: birçok web sitesi belirli bir veri toplama veya API testi görevinde kararlı bir "sticky" oturum tercih eder.

Kontrol: MCP'nin, istemci ile dış araçlar arasında bir "köprü" olduğunu ve mobil proxy'nin bu araçların ağ çağrıları için kontrol edilen bir yol olduğunu anlamış olmalısınız. Amaç, tüm ağ adımlarının belirtilen proxy sağlayıcısı üzerinden geçmesini sağlamaktır.

AI Araçları için Mobil Proxy Neden Gereklidir

Mobil proxy, AI araçlarının dış kaynaklar ve API'lerle çalışırken önemli avantajlar sağlar:

  • Erişim Stabilitesi: bazı hizmetler IP tipi ve bu IP'den yapılan etkinliğe duyarlıdır. Mobil IP'ler genellikle farklı filtreleme heuristikleri kullanır ve bu da öngörülebilirliği artırır.
  • Esnek Dönüşüm: IP'leri butona basarak, zamanla ya da istek sayısına göre döndürebilirsiniz; böylece bir adreste "gürültü" ve gereksiz engellemeler birikiminden kaçınırsınız.
  • Oturumlar: "sticky" oturumlar, bir görev sırasında aynı IP'nin korunmasını sağlar (örneğin, 10-30 dakika), böylece akışta etkileşimi bozmaz.
  • Bölgesellik: Tarifenizin öngördüğü ölçüde bağlantı coğrafyasını seçmek, farklı ülkeler için hizmetlerin davranışını test etmekte yardımcı olur.

MCP bağlamında, bu, sunucu tarafında gerçekleştirilen her aracın, belirlediğiniz ağ yolunu kullanacağını ve bu sayede yeniden üretilebilirlik sağlayacağı anlamına gelir. Ayrıca, hata ayıklamada karışıklığı azaltır.

Dikkat: Mobil proxy'leri yalnızca yasal çerçevede ve hedef hizmetlerin kurallarına uygun olarak kullanın. Bu kılavuzdaki proxy yapılandırması, AI araçlarının stabilite ve tekrarlanabilirliğini sağlamak içindir; sınırlamaların aşılması için değil.

Öneri: Eğer kullanma durumunuz bir ajanın birden fazla kaynağa entegrasyonu ise, bunları oturumlara göre ayırın: bazı araçlar - "sticky" oturumlarda, diğerleri - hızlı dönen IP'de. Bu, kesişim ve artefaktları azaltır.

Kontrol: Kendi senaryonuzu oluşturun: mobil proxy'ye neden ihtiyacınız var (stabilite, oturumlar, bölgesellik), başarınızı nasıl ölçeceksiniz (daha az bağlantı hatası, günlüklerde stabil IP, beklenmedik engellemelerin olmaması).

Adım 1: Stratejimizi Planlıyoruz ve Mobil Proxy'ye Erişim Elde Ediyoruz

Aşamanın Amacı

Mobil proxy'nin kullanım parametrelerini belirlemek (oturum türleri, dönüşüm, bölgesellik) ve MCP istemcisi ve sunucu ile sonraki entegrasyon için çalışır kimlik bilgileri almaktır.

Adım Adım Talimat

  1. "Sticky" oturum yaşatıp yaşatmayacağınıza karar verin. Eğer ajanın tüm görev süresi boyunca bağlamı koruması gerekiyorsa, 10-30 dakika için "sticky" modunu seçin.
  2. Dönüşüm stratejisini seçin: manuel buton/URL, zamanlama veya istek sayısına göre. İlk başta manuel dönüşüm uygundur.
  3. Sağlayıcıdan bağlantı parametrelerini alın: host, port, user, password. Gerekirse dönüşüm URL'si ve "sticky" oturum için tapu şablonu da alın.
  4. İzinli IP listesi gerekip gerekmediğini kontrol edin (whitelist). Sağlayıcı çıkış IP'nizin bağlanması gerekip gerekmediğini istiyorsa, onu sağlayıcının kişisel alanında önceden ekleyin.
  5. Test curl işlemini gerçekleştirin. Komut: curl -x http://user:password@host:port https://api.ipify.org. Dış IP'niz proxy üzerinden dönmeli.
  6. Kimlik bilgilerini çevresel değişkenlere kaydedin: örneğin, PROXY_HOST, PROXY_PORT, PROXY_USER, PROXY_PASS. Bunlar, kod içinde tutmaktan daha güvenlidir.

Dikkat: Proxy verilerini asla açık kanallarda paylaşmayın. Meslektaşlarınıza iletirken şifreleme yöntemleri ve şifre döngüleri kullanın.

Öneri: Eğer sağlayıcı sınırlı süreli (yaşam süresi, coğrafya gibi) için ayrı kullanıcı oluşturmayı destekliyorsa, geliştirme, test ve üretim aşamaları için ayrı kimlik bilgileri oluşturun. Böylece yanlışlıkla tarifenizi aşmamış olursunuz.

Beklenen Sonuç

Mobil proxy'e ait host, port, kullanıcı adı ve şifreye sahipsiniz, ayrıca isteğe bağlı olarak dönüşüm URL'si ve "sticky" oturum talimatları. Test curl, trafiğinizin gerçekten proxy üzerinden gittiğini doğruluyor.

Olası Sorunlar ve Çözümler

  • 407 Proxy Authentication Required Hatası → Yanlış kullanıcı adı/parola. Kimlik bilgilerinizi kontrol edin. Özel karakterlerin URL'de doğru kodlandığından emin olun.
  • Timeout → Port, güvenlik duvarı tarafından engelleniyor. Sağlayıcının portuna dış bağlantılara izin verin veya alternatif portu kontrol edin.
  • Dış IP değişmiyor → Trafik proxy'yi atlayarak gidiyor. -x anahtarının sözdizimini ve yetkilendirmeyi kontrol edin.

Kontrol: curl komutu, sizin alışıldık IP'nizden farklı bir dış IP döner ve proxy sağlayıcınızın kişisel alanındaki verilerle eşleşir.

Adım 2: MCP İstemcisini Yükleme ve Ortamı Hazırlama

Aşamanın Amacı

Altyapıyı hazırlamak: MCP istemcisini (örneğin Claude Desktop) yüklemek veya kontrol etmek, MCP sunucusu projesi oluşturmak ve proxy üzerinden çalışma için bağımlılıkları ayarlamak.

Adım Adım Talimat

  1. Node.js'in kurulup kurulmadığını kontrol edin: terminalde node -v komutunu çalıştırın. Sürüm 20'den düşükse, güncel LTS sürümünü yükleyin.
  2. Proje klasörü oluşturun: mkdir mcp-mobileproxy && cd mcp-mobileproxy.
  3. Projenizi başlatın: npm init -y. Bu package.json dosyası oluşturacaktır.
  4. MCP bağımlılıklarını yükleyin: npm install @modelcontextprotocol/sdk axios https-proxy-agent.
  5. Örnek MCP sunucusu kodunu içeren index.js dosyasını oluşturun.
  6. MCP istemcisini açın. Claude Desktop şeklindeyse, ayar dosyası yapılandırmasını bulun. Windows'ta genelde kullanıcı profilinde uygulama veri dizininde tutulur, macOS'ta ise Library/Application Support dizinindedir. Düzenlemeden önce yapılandırma dosyasının yedeğini almayı unutmayın.
  7. Cline (VS Code) kullanıyorsanız, uzantının ayarlarını açarak kişisel MCP sunucularını ekleme bölümünü bulun (genellikle "mcp servers" ayarları kısmında yer alır). Projenizden sunucu betiğini eklemeye hazırlanın.

Öneri: MCP sunucusu projenizin yolunu boşluk ve kullanılmayan özel karakterlerden uzak tutun. Bu, yapılandırmayı kolaylaştırır ve tırnak işaretleri ile hata yapma risklerini azaltır.

Beklenen Sonuç

Yüklenmiş bağımlılıkları olan bir MCP sunucusu proje klasörü hazır. MCP istemcinizde yeni sunucuyu eklemek için nerede ve nasıl yapacağınızı biliyorsunuz.

Olası Sorunlar ve Çözümler

  • npm bulunamadı → Node.js, npm olmadan yüklenmiş veya PATH'e eklenmemiş. npm dahil olacak şekilde Node.js'i yeniden yükleyin ve terminali yeniden başlatın.
  • Klasöre erişim yok → Yazma izinlerine sahip bir kullanıcı ile terminali başlatın veya kendi profilinizde bir klasör kullanın.
  • MCP istemcisi yapılandırma dosyası bulunamadı → MCP istemcinizle ilgili yardım belgelerini açın veya dize mcp.html, yolunu öğrenmek için yerel dokümanı kontrol edin.

Kontrol: Proje klasöründe npm list komutunu çalıştırın ve @modelcontextprotocol/sdk, axios ve https-proxy-agent paketlerinin yüklü olduğunu kontrol edin. MCP istemcisinin yapılandırma dosyası bulundu ve orijinal durumunun yedeği alınmış olmalıdır.

Mobil Proxy'yi MCP İstemcisine Bağlama

Aşamanın Amacı

Sunucu üzerinden yürütülen araçların tüm ağ çağrılarının mobil proxy üzerinden gitmesini sağlamak. İki yaklaşımı inceleyeceğiz: küresel çevresel değişkenler ve kod seviyesinde proxy.

Adım Adım Talimat (istemci çevresel değişkenleri aracılığıyla)

  1. MCP istemcisi yapılandırmanızı açın ve kişisel sunucular ekleme bölümünü bulun (örneğin, mcpServers).
  2. Yeni bir sunucu ekleyin, Node.js'i çalıştırma komutunu ve index.js dosyanızın yolunu belirtin. Örnek yapı: sunucu adı, command alanı: node, args: ["path/to/index.js"].
  3. env bölümünde, HTTP_PROXY ve HTTPS_PROXY değişkenlerini http://user:password@host:port şeklinde tanımlayın. Eğer IP üzerinden yetkilendirilmemiş bir proxy kullanıyorsanız yalnızca host:port belirtin.
  4. Gerekirse proxy üzerinden geçmemesi gereken iç adresler için NO_PROXY ekleyin (örneğin, localhost, 127.0.0.1).
  5. Eğer sunucu üzerinden çağırmak istiyorsanız, dönüşüm için değişkenler ekleyin: örneğin, MOBILEPROXY_ROTATE_URL ve MOBILEPROXY_API_KEY eğer sağlayıcı bir anahtar gerektiriyorsa.
  6. Yapılandırmayı kaydedin ve MCP istemcisini yeniden başlatarak yeni kaydı okumaya başlayın ve sunucunuzu gerekli çevresel değişkenlerle başlatın.

Adım Adım Talimat (kod seviyesinde proxy ile)

  1. index.js dosyasını açın ve https-proxy-agent'i veya axios proxy yapılandırmasını ekleyin.
  2. process.env'den alınan veriler ile bir ajan oluşturun: host, port, user, password.
  3. Her bir HTTP isteğine MCP sunucusu içerisindeki araçlar için ajanı geçirin.
  4. Esneklik için, çevresel değişkenler belirtilmemişse doğrudan bağlantı kullanmayı ve eğer belirtilmişse proxy kullanımını sağlamayı ekleyin.

Öneri: İlk çalıştırma için istemci düzeyinde çevresel değişkenlerle başlamanız daha hızlı ve kolay olacaktır. Daha sonra gerektiğinde kodda ince bir kontrol ekleyebilirsiniz.

Beklenen Sonuç

MCP istemcisi, çevresel değişkenlerle sunucunuzu başlatıyor ve sunucu araçlarından çıkan tüm HTTP çağrıları mobil proxy üzerinden gerçekleştiriliyor.

Olası Sorunlar ve Çözümler

  • Sunucu başlatılamıyor → args içindeki dosya yolu yanlış veya çalıştırma yetkisi yok. Yolu kontrol edin, gerekirse mutlak yollar kullanın.
  • Proxy göz ardı ediliyor → İstemci çevresel değişkenleri sunucuya geçiremedi. Çevresel değişkenleri MCP sunucu yapılandırmasında belirttiğinizden emin olun, küresel veya başka bir bölümde değil.
  • Proxy'ye kimlik doğrulama geçemiyor → Kullanıcı adı/parola, URL kodlaması yapılmadan @ ve : karakterlerini içermemeli. Gerekirse bunları ayrı değişkenler (PROXY_USER, PROXY_PASS) olarak tanımlayıp kodda URI'yi oluşturun.

Kontrol: HTTP isteği yapan bir aracı başlatın ve proxy'yi etkinleştirdikten önceki ve sonraki dış IP'yi karşılaştırın. Bu, mobil proxy'nizin IP'si ile eşleşmelidir.

mobileproxy.space Tabanlı MCP Sunucu Örneği

Aşamanın Amacı

1) dış IP'yi mobil proxy üzerinden alabilen, 2) IP dönüşümünü başlatabilen, 3) mobil proxy üzerinden rastgele bir HTTP isteği gerçekleştirebilen minimum bir MCP sunucusu oluşturmaktır. Örnek olarak, @modelcontextprotocol/sdk paketini ve mobileproxy.space MCP sunucusunu kullanacağız.

MCP Sunucu Kodu (index.js)

Aşağıda JavaScript'te bir örnek bulunmaktadır. Bu üç aracı kaydeder: get_external_ip, rotate_ip ve fetch_url. Araçlar, parametreleri çevresel değişkenlerden alır. Dış IP için standart bir ipify uç noktası kullanılır, dönüşüm ise MOBILEPROXY_ROTATE_URL aracılığı ile yapılmaktadır.

Kod Örneği:

index.js olarak kaydedin

const { Server } = require('@modelcontextprotocol/sdk'); const axios = require('axios'); const { HttpsProxyAgent } = require('https-proxy-agent'); function buildProxyAgent() { const host = process.env.PROXY_HOST; const port = process.env.PROXY_PORT; const user = process.env.PROXY_USER; const pass = process.env.PROXY_PASS; if (!host || !port) return null; let auth = ''; if (user && pass) {auth = encodeURIComponent(user) + ':' + encodeURIComponent(pass) + '@'; } const proxyUrl = 'http://' + auth + host + ':' + port; return new HttpsProxyAgent(proxyUrl); } async function axiosViaProxy(url, opts = {}) { const agent = buildProxyAgent(); const cfg = { url, method: opts.method || 'GET', headers: opts.headers || {}, data: opts.data, timeout: 20000 }; if (agent) {cfg.httpsAgent = agent;cfg.httpAgent = agent;cfg.proxy = false; } return axios(cfg); } const server = new Server({ name: 'mcp-mobileproxy-space', version: '1.0.0' }); server.tool('get_external_ip', { description: 'Mobil proxy aracılığıyla dış IP döner', inputSchema: { type: 'object', properties: {}, additionalProperties: false } }, async () => { const res = await axiosViaProxy('https://api.ipify.org?format=json'); return { content: [{ type: 'text', text: JSON.stringify(res.data) }] }; }); server.tool('rotate_ip', { description: 'Mobil proxy sağlayıcısından IP dönüşümünü başlatır', inputSchema: { type: 'object', properties: {}, additionalProperties: false } }, async () => { const rotateUrl = process.env.MOBILEPROXY_ROTATE_URL; if (!rotateUrl) {return { content: [{ type: 'text', text: 'MOBILEPROXY_ROTATE_URL belirtilmemiş' }] }; } const res = await axiosViaProxy(rotateUrl); return { content: [{ type: 'text', text: 'Dönüşüm talep edildi: ' + res.status }] }; }); server.tool('fetch_url', { description: 'Mobil proxy aracılığıyla HTTP isteği',' inputSchema': { type: 'object', properties: { url: { type: 'string' }, method: { type: 'string', enum: ['GET','POST','PUT','DELETE'], default: 'GET' }, headers: { type: 'object', additionalProperties: { type: 'string' } }, body: { type: 'string' } }, required: ['url'], additionalProperties: false } }, async (input) => { const cfg = { method: input.method || 'GET', headers: input.headers || {}, data: input.body }; const res = await axiosViaProxy(input.url, cfg); const out = { status: res.status, headers: res.headers, snippet: typeof res.data === 'string' ? res.data.slice(0, 500) : JSON.stringify(res.data).slice(0, 500) }; return { content: [{ type: 'text', text: JSON.stringify(out) }] }; }); server.start();

Çevresel Değişkenlerin Ayarlanması

  1. MCP istemcisi yapılandırmasında, sunucu kaydınızın yanında env: PROXY_HOST, PROXY_PORT, PROXY_USER, PROXY_PASS ekleyin.
  2. Mobil sağlayıcı tarafından sağlanan MOBILEPROXY_ROTATE_URL'yi ekleyin. Örneğin, GET isteğiyle IP değişikliğini başlatan güvenli bir URL olabilir.
  3. Değişkenlerin uygulandığından emin olunması için MCP istemcisini yeniden başlatın.

Öneri: Eğer sağlayıcınız mobileproxy.space, kullanıcı adı veya talep parametreleriyle "sticky" oturumları destekliyorsa, PROXY_SESSION veya PROXY_ZONE gibi ayrı değişkenler oluşturun ve bunları dinamik olarak PROXY_USER oluşturma sürecinde kullanın.

Araçların Çalıştığını Kontrol Etme

  1. MCP istemcisi arayüzünde mcp-mobileproxy-space sunucusunun araçlar listesini bulun: get_external_ip, rotate_ip, fetch_url.
  2. get_external_ip'yi çağırın ve dış IP'nizin proxy üzerinden döndüğünden emin olun.
  3. rotate_ip'yi çağırın ve başarı durumu 200 veya sağlayıcı böyle dönüyorsa başka bir başarı kodu olup olmadığını kontrol edin.
  4. url parametresi ile fetch_url'yi çağırın: https://example.org ve cevapta bir HTML parçası ve 200 kodunun bulunup bulunmadığını kontrol edin.

Kontrol: get_external_ip'yi çağırdıktan sonra dönen dış IP, mobileproxy.space kişisel alanınızda görünen IP ile eşleşmelidir. rotate_ip'den sonra IP, tarifinize uygun şekilde yeni bir IP'ye dönecektir.

Olası Sorunlar ve Çözümler

  • Araçlar görünmüyor → Sunucu başlatılamadı. İstemci günlüklerini ve index.js dosyanızın yolunu kontrol edin. Sunucuyu ayrı bir şekilde başlatmak için: node index.js komutunu çalıştırarak olası hataları görebilirsiniz.
  • rotate_ip hata veriyor → MOBILEPROXY_ROTATE_URL değerini ve ağınızdan erişimi kontrol edin. URL'nin doğru ve ek bir yetkilendirme gerektirip gerektirmediğini kontrol edin.
  • fetch_url beklenmedik başlıkları döndürüyor → Bazı siteler User-Agent ve Accept-Language'a bağlıdır. Normal bir tarayıcıyı taklit etmek için bunları header’larda iletin.

Öneri: İsteklerin stabilitesi için header’lara User-Agent, Accept, Accept-Language ekleyin. Bu, HTML’yi ayıklarken ve belirli bir imzaya sahip bir istemci bekleyen API’lerle etkileşimde bulunurken özellikle faydalı olacaktır.

Adım 4: İstemci ve Sunucu için İnce Ayar

Aşamanın Amacı

Yapılandırmayı düzeltmek ve stabilize etmek: günlükleme, zaman aşımı, "sticky" oturumlar, sunucunun arızalandığında yeniden başlatılması, istek sıklığını sınırlama ve doğru dönüşüm stratejisi belirlemek.

Ayrıntılı Adım Adım Talimat

  1. Gelişmiş günlükleme ekleyin. index.js içindeki axiosViaProxy çağrılarını try/catch ile sarın, yanıt kodları, gecikmeler ve hataları zaman damgaları ile kaydedin.
  2. Zaman aşımını ayarlayın. Düşük stabilitedeki kaynaklar için zaman aşımını azaltın ve gerekiyorsa eksponansiyel gecikmeli tekrar (backoff) ekleyin.
  3. Kararlılığı gerektiren görevler için "sticky" oturumları etkinleştirin: session_id'yi env’de veya sunucu durumunda saklayın ve PROXY_USER’ı dinamik olarak oluşturun.
  4. fetch_url çağrılarının sıklığını sınırlandırın: istekler için bir sayaç ve bir alan üzerindeki istekler arasında bekleme süresi ekleyin. Bu, hedef kaynaklarda ani engellenme riskini azaltır.
  5. Sunucunun yeniden başlatılması için, ağ hataları nedeniyle düşerse, bir işlem yöneticisi kullanın (örneğin, node -- ile veya kendi ortamınıza uygun alternatif araçlarla), sunucunun otomatik olarak yeniden başlatılmasını sağlamak için.
  6. IP dönüşüm düzeninizi kodda yansıtın: Örneğin, N başarılı isteğin ardından veya sağlayıcınızın koşullarına izin veriyorsa belirli bir M dakikada dönüşüm gerçekleştirin.

Öneri: Sunucu durumu döndüren bir araç bulunan server_status ekleyin: aktif session_id, istek sayacı, bir sonraki dönüşüm zamanı. Bu destek ve kontrolü kolaylaştırır.

Beklenen Sonuç

MCP sunucunuz, rastgele kesintilere dayanıklı, "sticky" oturumlarını ve dönüşümü düzgün bir şekilde kullanıyor, önemli olayları günlüğe kaydediyor ve istek sıklığını kodu değiştirmeden yönetebiliyorsunuz.

Olası Sorunlar ve Çözümler

  • Aşırı günlükleme → Günlükleme düzeyleri (info, warn, error) ekleyin ve bunları LOG_LEVEL çevresel değişkeni aracılığıyla değiştirin.
  • Yavaş işleme → Çok fazla agresif gecikmeler tetiklediğinizi veya IP dönüşümünü sıkça yapıp yapmadığınızı kontrol edin.
  • Rastgele bağlantı kopmaları → Ajanlarda keep-alive'i etkinleştirin ve bir hosta aynı anda bağlantı sayısını azaltın.

Kontrol: Günlüklerde istikrarla gerçekleştirilmiş olan istekler görünecek, dönüşüm tetiklenirse yeni IP hızla get_external_ip çağrısıyla doğrulanacaktır. Hatalar, sunucu kapanmadan işleniyor olmalıdır.

Adım 5: Tanılama ve Günlükleme

Aşamanın Amacı

Ağ sorunlarını hızla tespit etmeyi ve düzeltmeyi öğrenmek: proxy'ye kimlik doğrulama, zaman aşımı, yanlış başlıklar, yönlendirme hataları ve çevresel değişken çatışmaları.

Adım Adım Talimat

  1. Başlatmadan önce çevresel değişkenleri kontrol edin: process.env.PROXY_HOST ve diğer anahtar değişkenleri sunucu başlangıcında günlüğe kaydedin (şifreler olmadan).
  2. Koddan ayrı bir test isteği (örneğin, ipify'ye) yapın ve yanıtın tam nesnesini yazdırın: kod, başlıklar, gövdenin ilk baytları.
  3. Minimum metrikleri alın: DNS süreleri, TLS bağlantı süreleri, toplam yanıt süresi. Bu, nerede bir "dar bölge" olduğunu anlamanıza yardımcı olacaktır.
  4. Gönderdiğiniz başlıkları kontrol edin: User-Agent, Accept, Content-Type. Hedef API veya sitenin beklentilerine uygun olduğundan emin olun.
  5. Karşılaştırma yapmak için curl ile test yapın. Eğer curl aynı proxy üzerinden istikrarlı çalışıyorsa ama sunucu çalışmıyorsa, sorunu kodda (ajan, zaman aşımı, axios için proxy=false) arayın.

Öneri: Kimlik doğrulama işlemlerinde maskeleme kullanarak günlük kaydı tutun: günlük çıktısında kullanıcı adının ve şifrenin bir kısmını yıldız karakterleri ile değiştirin. Bu, olayların analizini hızlandırır ve sırların sızma riskini azaltır.

Beklenen Sonuç

Hızla sorunları yerelleştiriyorsunuz: ağ zaman aşımını kimlik doğrulama hatalarından veya yanlış başlıklardan ayırt edebiliyor, hangi isteklerin neden yavaşladığını veya reddedildiğini görebiliyorsunuz.

Olası Sorunlar ve Çözümler

  • HTTP 403 veya 429 → Aşırı sık istekler veya şüpheli istemci imzası. İstek sıklığını azaltın, başlıkları ayarlayın ve göreve özel "sticky" oturumları kullanın.
  • Bağlantı hatası zaman zaman → Zaman aşımını artırın ve aşamalı artışla tekrar istemlerini etkinleştirin. Sağlayıcınızın mobil bağlantısının stabil olduğundan emin olun.
  • Veri uyumsuzluğu → Test ortamında proxy ile ve proxiesiz gelen yanıtları karşılaştırın. Kodlama ve gerekli Accept-Charset başlıklarını kontrol edin.

Kontrol: Test sonuçlarını gözden geçirin ve istek sürecinin her aşamasını ne kadar sürdüğünü belirleyin ve hedeflerinizi optimize etmek için doğrudan sorunu çözmeye odaklanın.

Sonuçların Kontrolü

Kontrol Listesi

  • MCP sunucu araçları istemcide görünmelidir.
  • get_external_ip çağrısı, mobil proxy'nin IP'sini döndürmelidir.
  • IP dönüşümü gerçekleştirilmeli ve IP değişimi ile onaylanmalıdır.
  • fetch_url ile rastgele bir istek birden fazla domaine başarıyla ulaşmalıdır.
  • Günlükler anlaşılır olmalı: yanıt kodları, zamanlamalar ve temel tanılama mesajları görünmelidir.

Test Etme Yöntemi

  1. Arka arkaya üç get_external_ip isteği gerçekleştirin ve IP'nizi kaydedin. Daha sonra rotate_ip'yi çağırın ve tekrar get_external_ip'yi gerçekleştirin. IP'nizin tarifinize uygun olarak değiştiğinden emin olun.
  2. İki farklı domain için fetch_url isteği yapın. Kod ve başlıkları karşılaştırın. Sistematik hataların olmadığından emin olun.
  3. "Sticky" oturumunu (eğer mevcutsa) devreye alın ve IP'nin oturum süresince değişmeden kaldığından emin olun.

Baskın Başarı Ölçütleri

  • Hedef kaynaklarınıza yönelik başarılı isteklerin kararlı bir yüzdesi (200 OK).
  • Öngörülebilir dönüşüm ve "sticky" oturum süresince beklenmedik "atlamalar" olmaması.
  • Doğru zaman aşımı ve uzatma süreleriyle sağlam zaman aşımı istatistikleri.

Öneri: CI'nizde otomatik bir "checkpoint" testi başlatın: bir get_external_ip ve bir fetch_url isteği, dağıtım öncesinde. Bu, sağlayıcınızda veya yapılandırmanızda önceden bir sorun ortaya çıkmasını sağlar.

Sık Yapılan Hatalar

Sorun → Sebep → Çözüm

  • Proxy uygulanmıyor → Çevresel değişkenler sunucu sürecine geçemiyor → MCP sunucu kaydı düzeyinde env belirtin ve istemciyi yeniden başlatın.
  • Proxy'ye kimlik doğrulaması geçerli değil → Özel karakterler URI'yi kırıyor → Kullanıcı adı/parola ayrı değişkenler olarak tanımlayın ve proxyUrl'yi encodeURIComponent ile oluşturun.
  • HTTP 429 Too Many Requests → Çok sık dönüşüm yapılıyor veya yüksek RPS → İstek sıklığını sınırlayın, kuyruk uygulayın, ardışık işlemler için "sticky" oturumları uygulayın.
  • Hedef servisten zaman zaman 5xx hatası → Agresif yeniden denemeler, dengesiz bir kaynakla çalışmayı zorlaştırıyor → Geri dönüşe jitter ekleyin ve tekrar sayısını azaltın.
  • Panelde araçlar görünmüyor → MCP sunucusu başlatılırken hata meydana geldi → Terminalde sunucuyu dar bir şekilde çalıştırın, yığın izini okuyun, sözdizim hatalarını düzeltin, ardından yeniden bağlayın.
  • Dönüşümden sonra IP değişmiyor → Dönüşüm tamamlanmamış veya yönlendirme önbelleklenmiş → Sağlayıcının belirttiği süreyi bekleyin veya dönüşüm işleminin durumunu doğrulayın.
  • Yerel servislerle çakışmalar → Her şeye proxy uygulandı, localhost dahil → NO_PROXY=localhost,127.0.0.1 kullanarak yerel çağrıların doğrudan gitmesini sağlayın.

Kontrol: Düzeltmelerden sonra sorunlu senaryoyu tekrar deneyin. Semptomun kaybolduğundan emin olun: proxy uygulanıyor, kimlik doğrulama geçiyor, yanıt kodları bekleniyor.

Ek Olanaklar

Gelişmiş Yapılandırmalar

  • Şifreler ve anahtarlar: tüm şifreler ve anahtarları çevresel değişkenler veya gizli yöneticilere taşımak. Bunları koda girmeyin.
  • Coğrafi Hedefleme: Eğer mobileproxy.space ülke/bölge seçeneği sunuyorsa, bir set_region aracı oluşturun ve coğrafyayı sunucu yeniden başlatmadan değiştirin.
  • Proxy Havuzları: Yüksek yüklerde birden fazla mobil nokta içeren bir havuz kullanın ve dağıtım kuralları belirleyin (yuvarlak-rota, alanına göre, göreve göre).
  • Sıklık Kontrolü: Sunucunuza global bir hız sınırlayıcı ekleyin, böylece ajanların disiplinine bağımlı olmazsınız.

Optimizasyon

  • Önbellekleme: değişmez kaynaklar için yanıtları kısa süreliğine önbelleğe alın. Bu, trafiği azaltır ve yanıtları hızlandırır.
  • Paralellik: Bir hosta yapılandırılmış eşzamanlı isteklerin sayısını sınırlayın; ancak, hostlar arasında paralellik izole etmeye izin verin, böylece "dar bölge" oluşturmazsınız.
  • Profil Oluşturma: alanlara ve istek türlerine göre metrikleri toplayın. Bu şekilde, hangi optimizasyonların en büyük etkiyi yaratacağını anlayacaksınız.

Başka Neler Yapılabilir

  • Hedef kaynakların erişilebilirliğini kontrol eden bir araç ekleyin (healthcheck_url) ve raporlayın.
  • Günlüklerin merkezileştirilmiş depolama alanına aktarımını sağlayın, örneğin sistem altyapınızın olay kaydı.
  • Ekibiniz için talimatlar hazırlayın ve bunları iç sayfada mcp.html ile konfigürasyon şablonlarıyla birlikte gösterin.
  • AI ajanları için proxy ayarlama konusunda detaylı materyali inceleyin: AI ajanları için proxy malzemesi.

Öneri: "Bağlantı profilleri" — dev, aşama, üretim — farklı limitler ve günlükleme düzeyleri ile tanımlayın. Bu, bakım ve denetimi kolaylaştırır.

SSS

1. Mobil Proxy'nin "sticky" oturumu ne kadar sürer?

Bu, sağlayıcının tarifesine bağlıdır. Genellikle sağlayıcılar 10-30 dakika aralığında sunar. mobileproxy.space kişisel alanınızda detayları kontrol edin ve kendi MCP sunucunuzda süreyi ayarlayın.

2. İsteğin gerçekten mobil proxy üzerinden gidip gitmediğini nasıl anlarım?

get_external_ip üzerinden proxy etkinleştirmeden önceki dış IP'nizi ve etkinleştirdikten sonraki dış IP'nizi karşılaştırın. Ek olarak, sunucu tarafında günlük tutun ve mevcutsa, sağlayıcının kişisel alanındaki verilerle kıyaslayın.

3. Farklı araçlar için farklı proxy'ler belirleyebilir miyim?

Evet. Kod düzeyinde, birden fazla proxy ajanı oluşturun ve bunları aracın ismine veya alanına göre seçin. İstemci düzeyinde — birden fazla sunucu ile farklı env'ler oluşturun.

4. Hedef site özel başlıklar gerektiriyorsa ne yapmalıyım?

fetch_url aracı ile gerekli başlıkları headers parametresi üzerinden geçirin. Genelde User-Agent, Accept, Accept-Language, Referer başlıkları faydalı olur.

5. Günlüklerde gizlilik ihlallerini nasıl önlerim?

Hassas satırları maskeleyin ve şifre içeren tam URL'leri günlüğe kaydetmeyin. Gizlilikleri yalnızca çevresel değişkenlerde saklayın ve şifrelerin döngüsünü kullanın.

6. Sadece belirli alanlar için proxy kullanmak mümkün mü?

Evet. Kod düzeyinde ihtiyaç duyulan alanlara proxy ajanını şartlı olarak uygulayabilirsiniz. Diğer tüm istekler doğrudan gönderilecektir. Veya iki araç oluşturun: fetch_proxy ve fetch_direct.

7. Dönüşüm IP'yi değiştirmiyorsa ne yapmalıyım?

Sağlayıcının belirttiği süreyi bekleyin ve dönüşüm durumunu kontrol edin. Hemen dönüşüm bekliyorsanız, burada "sticky" oturumunuz olmadığından emin olun.

8. Yüksek taleplere ölçeklendirmek için ne yapmalıyım?

Mobil noktalar havuzu kullanın, alanlar arasında paralelleşmeyi sınırlayın, istek kuyrukları ve akıllı gecikme (backoff) kullanın. Ajan çalışmaları için — görevleri profillere göre dağıtın.

9. Ekibin belgelerini nereye koymalıyım?

İç sayfa mcp.html talimatlar, yapılandırma şablonları ve dönüşüm prosedürleri için iyi bir seçenek. Geliştikçe güncellemeyi unutmayın.

10. mobileproxy.space'i hazır bir MCP sunucusu olarak bağlamak mümkün mü?

Evet, eğer uygun bir sunucu veya dönüşüm ve istekler için araçlar sunan bir adaptörünüz varsa. Yukarıdaki örnek, SDK temelinde böyle bir sunucu oluşturmanın nasıl olduğunu gösteriyor.

Öneri: İç sunucu "pasaportunu" tanıtın: isim, versiyon, araç listesi, sorumlu kişilerin bağlantısı. Bu, desteği hızlandırır ve yeni meslektaşların eğitimini kolaylaştırır.

Sonuç

Tüm aşamaları başarıyla tamamladınız: MCP'nin ne olduğunu ve mobil proxy'lerin AI araçlarının stabil çalışması için neden bu kadar önemli olduğunu anladınız; çevreyi hazırladınız; mobil proxy'yi MCP istemcisine bağladınız; mobileproxy.space tabanlı get_external_ip, rotate_ip ve fetch_url araçları ile çalışan bir MCP sunucusu örneği uyguladınız; günlükleme ve tanılama ile ince bir yapılandırmayı ayarladınız; testler gerçekleştirdiniz; yaygın hataları ve ileri düzey olanakları incelediniz. Artık, belediye yapılandırmanızı var: MCP istemcisi araçları yönetiyor, MCP sunucusu ağ işlemlerini gerçekleştiriyor ve mobil proxy öngörülebilir ve yapılandırılabilir bir ağ yolu sağlıyor.

İlerlemek için: 1) Sunucuyu farklı görevler için modüllere ayırın; 2) dev/aşama/üretim ortam profilleri ekleyin; 3) proxy havuzunu ve dinamik yol seçimlerini dahil edin; 4) iç sayfada detayları belgeleyin mcp.html ve detaylandırılmış AI ajanları için proxy malzemesine referans verin.

Otomasyona yönelik gelişin: ölçümleri, düşüş konusunda alarmları, otomatik testleri ve IP dönüşümünü güç ile veya zaman ile yönetilmiştir. Ne kadar iyi yapılandırılmış ağınız varsa, ajanları ölçeklendirmek ve hizmet kalitesini sağlamak o kadar kolay olur.

Öneri: mobileproxy.space sağlayıcınızın limitlerini ve tarifelerini düzenli olarak gözden geçirin, böylece yoğun saatlerde kuota konusunda sıkışmayın. Kapasite planlayın ve bir nokta erişilemez olduğu durum için yedek bir yapılandırmayı elinizde bulundurun.