Klasik bir tarayıcı, bir proxy listesi alır, bunu sırayla dener ve anti-bot sistemi bir desen fark ettiğinde devre dışı kalır. AI ajanı farklı çalışır: engellemeyi görür, IP'yi değiştirme kararı alır, başlıkları değiştirir, istekleri yavaşlatır - ve tüm bunları sizin müdahaleniz olmadan yapar. Ajanı, MCP sunucusunu ve API proxy'yi bir araya getirerek, oturumları koruyan bir sistem oluşturmayı inceliyoruz, hatta korumalı sitelerde bile.
MCP sunucusu nedir ve tarayıcıya neden gereklidir
MCP (Model Context Protocol) - AI ajanının (örneğin, Claude veya herhangi bir tool-calling destekleyen LLM tabanlı) dış araçlara tek bir arayüz üzerinden erişmesini sağlayan açık bir protokoldür. Daha önce, modelin dış bir API'ye erişimini sağlamak için her görev için özel bir sarmalayıcı yazmak gerekiyordu. MCP sunucusu bunu farklı bir şekilde çözer: ajanların ihtiyaç duyduğunda kendilerinin çağırabileceği bir dizi "araç" (tools) tanımlar.
Tarama bağlamında bu şöyle görünür: ajan "500 ürünün fiyatını pazar yerinden topla" görevini alır. fetch_page aracı aracılığıyla istekler yapmaya başlar, 403 yanıtını veya bir CAPTCHA görür, kendisi rotate_proxy aracını çağırır, yeni bir IP alır ve isteği tekrarlar - operatörün müdahalesi olmadan. MCP sunucusu burada, ajanın mantığı ile proxy altyapısı arasında bir "köprü" rolü oynar.
Zamanlayıcıya göre rotasyon yapan sıradan bir betikten temel fark: ajan, IP değişikliği kararını bağlam temelinde alır - yanıt kodu, sayfanın içeriği, belirli bir alanın engellenme hızı. Bir oturum için bir IP tutabilir ve yalnızca veri toplama için "soğuk" istekler için IP'yi değiştirebilir, stratejileri anlık olarak birleştirir.
AI ajanının neden IP değişimine ihtiyacı var, sadece bir proxy listesi değil
Eğer ajana 50 proxy'den oluşan statik bir liste verirseniz ve bunları sırayla denemesini isterseniz, normal bir betikte elde edeceğinizle aynı sonucu alırsınız: istek desenleri, anti-bot sistemi tarafından aralıklar, başlıklar ve IP sıralaması ile hızla hesaplanır. Wildberries, Ozon, Avito ve diğer büyük platformlar davranışsal analizi kullanır - yalnızca IP'ye değil, aynı zamanda User-Agent, çerezler, TLS parmak izi ve belirli bir adresle ilişkili istek hızının nasıl değiştiğine de bakarlar.
AI ajanı bu sorunu temelde farklı bir şekilde çözer. O:
- Yanıt koduna (403, 429, CAPTCHA'ya yönlendirme) bakarak mevcut IP'nin "yakalandığını" belirleyebilir ve bu alan için yeni bir IP isteyebilir;
- Çok aşamalı senaryolar için bir IP üzerinde "yapışkan" oturum (sticky session) tutabilir - örneğin, kimlik doğrulama + kişisel panelin taraması;
- İsteklerin sıklığını sitenin tepkisine göre ayarlayabilir, katı bir zamanlayıcı ile çalışmak yerine;
- IP değişimini başlık değişimi ve anti-tespit araçları (Dolphin Anty veya AdsPower gibi) aracılığıyla tarayıcı taklidi ile birleştirebilir, eğer tarama headless tarayıcı üzerinden yapılıyorsa.
Bu nedenle "ajan + MCP sunucusu + API proxy" kombinasyonu, statik rotasyona göre yasaklama oranını önemli ölçüde azaltır: IP değişikliği kararı, engelleme gerçekleştiğinde alınır, takvimle değil.
Bağlantının mimarisi: ajan → MCP → API proxy → tarayıcı
Çalışma şeması dört katmandan oluşur ve her birinin sorumluluk alanını anlamak önemlidir:
- AI ajanı (tool-calling destekleyen LLM) - hangi sayfayı tarayacağına, IP'yi değiştirip değiştirmeyeceğine, yavaşlayıp yavaşlamayacağına karar verir;
- MCP sunucusu - ajana bir dizi araç sağlar:
get_page,rotate_ip,check_proxy_status; - API proxy sağlayıcısı - talep üzerine yeni bir IP verir, coğrafi konumu gösterir, bağlantı türünü (konut, mobil, veri merkezi) belirtir;
- Tarayıcı/HTTP istemcisi - hedef siteye alınan proxy parametreleri ile gerçek isteği gerçekleştirir.
Önemli bir nokta: MCP sunucusu kendisi siteyi taramaz - yalnızca ajana olanaklar sunar. "403 durumunda ne yapmalı" mantığı modelde kalır, MCP sunucusu yalnızca komutları yerine getirir ve sonucu döner. Bu ayrım, proxy sağlayıcısını veya tarayıcıyı değiştirmeyi, ajanın mantığını yeniden yazmadan sağlar - MCP sunucusundaki aracın uygulanmasını güncellemek yeterlidir.
Pratik öneri
Ajanınıza "ham" API proxy sağlayıcısına doğrudan erişim vermeyin - bunu sınırlı parametre seti (ülke, IP türü, session_id) ile ayrı bir MCP aracına sarın. Bu, modelin yanlış bir istek oluşturma ve "limitini yakma" riskini azaltır.
Ajan taraması için hangi proxy türünü seçmelisiniz
Proxy türü, ajanın ne sıklıkla rotate_ip çağırması gerektiğini ve kaç isteğin engellenmeden geçtiğini doğrudan etkiler. Aşağıda, ajanın taraması için geçerli olan görevler açısından bir karşılaştırma bulunmaktadır.
| Proxy Türü | Ajana ne zaman kullanılmalı | Artıları | Eksileri |
|---|---|---|---|
| Konut Proxy'leri | Pazar yerleri, anti-bot koruması olan siteler (Wildberries, Ozon) | Gerçek kullanıcı IP'leri, düşük yasaklama oranı | Veri merkezi proxy'lerinden daha pahalı, hız düğüme bağlı |
| Mobil Proxy'ler | Sosyal medya ve reklam panelleri ile ajanın akışı içinde çalışma | Siteler üzerinde maksimum güven, operatörün IP'si gibi | Daha yüksek maliyet, sınırlı rotasyon hızı |
| Veri Merkezi Proxy'leri | Sert anti-bot koruması olmayan sitelerden büyük veri toplama | Yüksek hız, IP başına düşük maliyet | Kolayca tespit edilir, daha sık ajanın aracılığıyla rotasyon gerektirir |
Pratikte, ajan türleri birleştirebilir: "ısınma" için konut proxy'leri aracılığıyla bir oturum başlatabilir ve tamamen teknik bir engel aşma için veri merkezi proxy'lerine geçebilir - eğer MCP aracı IP türünü parametre olarak belirtmeye izin veriyorsa.
Proxy rotasyonu ile MCP sunucusunun adım adım kurulumu
Python'da minimum bir çalışma bağlantısını inceleyelim. MCP sunucusu, bir sayfa alma ve proxy sağlayıcısı aracılığıyla IP değiştirme için iki aracı tanımlar.
from mcp.server.fastmcp import FastMCP
import httpx
mcp = FastMCP("proxy-parser-agent")
# Mevcut proxy oturumu deposu
current_session = {"proxy_url": None, "country": "ru"}
def get_new_proxy(country: str = "ru") -> str:
"""Proxy sağlayıcısından yeni bir IP talep eder"""
response = httpx.get(
"https://api.proxycove.com/v1/get-endpoint",
params={"country": country, "type": "residential"},
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
data = response.json()
return f"http://{data['username']}:{data['password']}@{data['host']}:{data['port']}"
@mcp.tool()
def rotate_ip(country: str = "ru") -> str:
"""Ajan için araç: belirtilen ülkeden yeni bir IP adresine geçiş"""
current_session["proxy_url"] = get_new_proxy(country)
current_session["country"] = country
return f"IP güncellendi, bölge: {country}"
@mcp.tool()
def fetch_page(url: str) -> dict:
"""Ajan için araç: mevcut proxy aracılığıyla sayfa alma"""
if not current_session["proxy_url"]:
current_session["proxy_url"] = get_new_proxy(current_session["country"])
proxies = {"http://": current_session["proxy_url"], "https://": current_session["proxy_url"]}
try:
r = httpx.get(url, proxies=proxies, timeout=15)
return {"status_code": r.status_code, "content": r.text[:3000]}
except httpx.RequestError as e:
return {"status_code": 0, "error": str(e)}
if __name__ == "__main__":
mcp.run()
Mantık basit: ajan fetch_page çağırır, yanıtında status_code: 403 görür ve buna dayanarak rotate_ip çağırmaya karar verir. "10 istekte bir IP değiştir" gibi katı kurallar yok - model, sunucunun gerçek yanıtına göre yönlenir.
Üretim için bu koda eklemek gerekir: her rotasyonu zaman damgası ile günlüğe kaydetmek, dakikada rotasyon sayısını sınırlamak (modelin gerçek bir sorunu çözmek yerine IP değişimi üzerinde "dönmesini" önlemek için) ve oturum seviyesinde zaman aşımı ayarları, böylece "yapışkan" IP'nin gerektiğinden uzun süre tutulmaması.
Claude, LangChain ve AutoGPT ile entegrasyon
MCP, başlangıçta Claude Desktop ve Claude API için bir protokol olarak tanıtılmaktadır, ancak açık spesifikasyonu sayesinde üçüncü taraf çerçeveler tarafından da desteklenmektedir. Eğer ajanınızı LangChain üzerinde inşa ediyorsanız, MCP sunucusu langchain-mcp-adapters aracılığıyla bağlanır, bu da MCP araçlarını standart LangChain Araçları haline getirir - ajan bunları diğer herhangi bir işlev gibi görür.
MCP'nin yerel desteği olmayan AutoGPT benzeri ajanlar için, yerel bir HTTP köprüsü kurabilirsiniz: MCP sunucusu, normal bir REST hizmeti gibi çalışır ve ajan uç noktaları kendi standart işlev çağırma mekanizması aracılığıyla çağırır. Bu biraz daha az şık ama belirli bir yığın üzerine kurulmuş ekipler için çalışan bir seçenektir.
Anti-tespit tarayıcıları ile bağlantı hakkında ayrıca konuşmak gerekir. Eğer tarama doğrudan HTTP istekleri ile değil, headless Chrome/Playwright aracılığıyla yapılıyorsa (ağır JS koruması olan siteler için gereklidir), MCP sunucusu yalnızca proxy'yi değil, aynı zamanda tarayıcı profilini de yönetebilir - ajana, Dolphin Anty veya Octo Browser'da zaten bağlanmış bir proxy uç noktası ile profil başlatma aracı iletebilir. Bu durumda, ajan sadece hangi profili ve hangi ülkeyi kullanacağını belirtir, tüm teknik kısım MCP aracının arkasında gizlidir.
Pratik vakalar: Wildberries, Ozon, SMM-analizi
Wildberries'de fiyat izleme. Ajan, 2000 SKU'den oluşan bir liste alır, ürün kartlarını gezer, CAPTCHA veya boş yanıt aldığında kendisi konut proxy'leri aracılığıyla IP'yi değiştirir ve isteği gecikme ile tekrarlar. Statik bir betikten farklı olarak, sabit rotasyona sahip böyle bir bağlantı, platform tarafında korumanın arttığı durumlarda bile veri toplama hızını istikrarlı tutar - ajan sadece engelleme desenlerine "daha yavaş" tepki verir, IP'leri yasaklanmadan önce sırayla denemek yerine istek sıklığını azaltır.
Ozon Satıcı API'si ve web arayüzünden veri toplama. Burada ajan, iki modu birleştirir: kişisel panele yapılan yetkilendirilmiş istekler, tüm çalışma günü boyunca "yapışkan" IP üzerinden gider (tekrar iki faktörlü kimlik doğrulama tetiklememek için), ürün kartlarının kamu taraması ise her istekte rotasyon ile yapılır.
Instagram ve TikTok'taki rakipler için SMM analizi. Ajan, rakip hesapların listesindeki kamu istatistiklerini (beğeniler, yorumlar, erişim) toplar, istekleri mobil proxy'ler aracılığıyla dağıtarak, uygulama kullanıcılarının normal trafiğini taklit eder, veri merkezi IP'si ile bot trafiği değil.
Üç durumda da ekip zaman tasarrufu - taramada değil (bunu daha önce otomatikleştirmek mümkündü), karmaşık manuel yeniden deneme, geri dönüş ve rotasyon kurallarını yazma ve sürdürme gereksiniminin olmamasındadır. Ajan, sitenin koruma değişikliklerine kendisi uyum sağlar, kodu yeniden yazmadan.
AI ajanı ve proxy bağlantısındaki yaygın hatalar
- Çok sık rotasyon. Eğer ajana her hapşırdığında IP'yi değiştirmesine izin verirseniz, site, bir User-Agent'tan anormal IP değişim hızından dolayı alt ağın tüm aralığını yasaklamaya başlayabilir.
- Çerezlerin IP ile bağlanmaması. Eğer ajan IP'yi değiştirirse ama eski oturum çerezlerini kullanmaya devam ederse, anti-bot sistemi coğrafi konum ve oturum uyumsuzluğunu hemen tespit eder.
- Rotasyon sayısı için limit yok. Sınırlama olmadan, model hata döngüsünde tüm trafik limitini gereksiz denemelerle "yakabilir" (örneğin, site tamamen kapalıysa ve belirli bir IP'yi yasaklamıyorsa).
- TLS parmak izinin göz ardı edilmesi. IP değişikliği, HTTP istemcisini değiştirmeden yapılırsa işe yaramaz, eğer site botları TLS el sıkışma imzasına göre tanımlıyorsa - burada headless tarayıcı ile bir bağlantıya ihtiyaç vardır, sadece httpx istekleri ile değil.
- Ajanın "ham" proxy kimlik bilgilerine doğrudan erişimi. Modelin API proxy'ye doğrudan giriş/şifre erişimi vermek, diyalogların günlüğe kaydedilmesi sırasında sızıntı riski taşır - MCP aracını bir ara katman olarak kullanın.
Sonuç
AI ajanının MCP sunucusu ve API proxy ile bağlantısı, tarama mantığını değiştirir: katı zamanlayıcı kurallarına göre rotasyon yerine, ajan IP değişikliği kararını engelleme gerçekleştiğinde alır, "yapışkan" ve tek seferlik oturumları birleştirir, belirli bir siteye uyum sağlar, kodu yeniden yazmadan. Bu, özellikle aktif anti-bot koruması olan platformlarda - pazar yerlerinde, sosyal medyada, reklam platformlarında belirgindir.
Pazar yerleri ve ciddi korumaya sahip siteler için, mimariye konut proxy'leri dahil etmek en iyisidir - bu, ajana IP'lerin hızlı bir şekilde tükenmeden manevra yapması için daha fazla "alan" sağlar. Eğer görev sosyal medya ve mobil uygulamalarla ilgiliyse, mobil proxy'lere dikkat edin - bunlar anti-bot sistemlerinde daha az şüphe uyandırır. Daha az korunan kaynaklardan büyük teknik veri toplama için hızlı ve uygun maliyetli veri merkezi proxy'leri uygundur, ajan bunları bütçeyi optimize etmek için konut IP'leri ile birleştirebilir.