DOKÜMANTASYON

Adversee MCP sunucusu

Model Context Protocol (Streamable HTTP, durumsuz) üzerinden salt okunur erişim. Bu sayfa kurulumu, araçları, sınırları ve verinin nasıl okunması gerektiğini anlatır.

Hızlı başlangıç

  1. Panelde Ayarlar > API (MCP) sekmesinden bir anahtar üretin. Anahtar adv_ ile başlar ve yalnız bir kez gösterilir.
  2. İstemcinizi aşağıdaki adrese, Authorization: Bearer <anahtar> başlığıyla bağlayın.
  3. İstemcide araç listesini görüyorsanız bağlantı tamamdır. İlk deneme için asistandan rakip listesini isteyin.

Sunucu adresi

https://adversee.com/api/mcp

Kimlik doğrulama

Her istek Authorization: Bearer adv_… başlığı taşır. Anahtar kişiseldir ve bir çalışma alanına bağlıdır; asistan o çalışma alanının verisini sizin rolünüzle görür.

Her istekte anahtarın iptal edilmediği, hesabınızın aktif olduğu ve hâlâ ekipte olduğunuz yeniden sınanır. Ekipten çıkarılıp yeniden davet edilen kullanıcı yeni anahtar üretmelidir.

Kullanıcı başına çalışma alanında en çok 10 aktif anahtar olabilir. Anahtarlar panelden iptal edilir.

İstemci kurulumu

Claude Code

Terminalde tek komut:

claude mcp add --transport http adversee https://adversee.com/api/mcp \
  --header "Authorization: Bearer adv_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

Cursor

~/.cursor/mcp.json (ya da projede .cursor/mcp.json) dosyasına:

{
  "mcpServers": {
    "adversee": {
      "url": "https://adversee.com/api/mcp",
      "headers": { "Authorization": "Bearer adv_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" }
    }
  }
}

Claude Desktop

Claude Desktop'ın ayar dosyası uzak sunucuya doğrudan bağlanmaz; mcp-remote köprüsüyle bağlanır (Node.js gerekir). claude_desktop_config.json dosyasına ekleyip uygulamayı yeniden başlatın. Anahtarın ortam değişkeninde durması Windows'taki boşluk sorununu önler.

{
  "mcpServers": {
    "adversee": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote", "https://adversee.com/api/mcp",
        "--transport", "http-only",
        "--header", "Authorization:${ADVERSEE_AUTH}"
      ],
      "env": { "ADVERSEE_AUTH": "Bearer adv_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" }
    }
  }
}

Doğrudan HTTP

Herhangi bir MCP istemcisi ya da test için JSON-RPC isteği:

curl -s https://adversee.com/api/mcp \
  -H "Authorization: Bearer adv_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"adversee_list_competitors","arguments":{}}}'

Araçlar

Tüm araçlar salt okunurdur. Parametre adları API'de olduğu gibidir. Rakip süzgeçleri slug ya da ad kabul eder; slug'lar adversee_list_competitors'tan gelir.

adversee_list_competitors

İzlenen rakipler: ad, slug, site, aktif ve arşiv kampanya sayısı.

Parametre yok.

adversee_list_campaigns

Kampanyalar: başlık, link, durum, tarihler, ilk görülme, kategori ve grup.

ParametreTipAçıklama
rakipmetinRakip slug'ı ya da adı.
durumaktif · yakinda · pasif · kaldirildiKampanya durumu.
limit1-100 (25)Kayıt sayısı.
offset≥0 (0)Sayfalama.

adversee_get_campaign

Tek kampanya: okunan alanlar (limit, çevrim, oran), şartlar ve son anlık görüntüler.

ParametreTipAçıklama
iduuidadversee_list_campaigns'ten.

adversee_list_events

Hareketler, en yeni önce. Kampanya, banner, Meta, kesinti ve geçilme olayları; değişen alanlar 'ayrinti'de.

ParametreTipAçıklama
rakipmetinSlug ya da ad; izlemeden çıkarılmış marka için slug.
tipmetinVirgülle birden çok olay tipi (ör. new_campaign,banner_eklendi).
baslangicISO tarih-saat, saat dilimliBu andan (dahil) sonrası.
bitisISO tarih-saat, saat dilimliBu andan öncesi.
cursormetinÖnceki yanıtın sonrakiCursor değeri.
limit1-100 (25)Sayfa boyu.

adversee_get_digest

Günlük (09:00) ya da haftalık (pazartesi) özet: rakip başına banner ve Meta hareket sayıları.

ParametreTipAçıklama
donemgun · hafta (gun)Özet dönemi.
adet1-14 (1)Kaç dönem, en yeni önce.

adversee_list_homepage_banners

Anasayfa slider banner'ları (masaüstü/mobil): kalıcı kimlik, sıra, hedef, ilk/son görülme, kalkma zamanı, önceki sürüm, görünüm başına son tur ve sınıflama.

ParametreTipAçıklama
rakipmetinSlug ya da ad.
durumaktif · kalkan (aktif)Yayındakiler ya da son 30 günde kalkanlar.
turteklif · icerik · marka_geneliSınıflama süzgeci.
kategorimetinKategori anahtarı ya da adı.
grupmetinOyun grubu anahtarı ya da adı.
oyunmetinGörselde yazan oyun adında geçen metin.

adversee_get_banner_history

Bir rakibin slider'ının tur tur sıralı listesi (2 saatte bir tur).

ParametreTipAçıklama
rakipslugZorunlu.
gorunummasaustu · mobilZorunlu.
baslangicISO tarih-saat, saat dilimliYoksa bitişten 24 saat önce.
bitisISO tarih-saat, saat dilimliYoksa şimdi. Pencere en çok 7 gün.

adversee_list_meta_ads

Meta (Facebook/Instagram) reklamları: kütüphane kodu ve linki, başlangıç, ilk/son görülme, bitti zamanı, metin, hedef, sınıflama ve marka bazında kapsam.

ParametreTipAçıklama
rakipmetinSlug ya da ad.
durumaktif · biten (aktif)Aktif ya da biten reklamlar.
tur · kategori · grup · oyunmetinBanner aracındaki sınıflama süzgeçleri.
limit1-100 (25)Kayıt sayısı.
offset≥0 (0)Sayfalama.

adversee_get_image

Banner ya da reklam görseli, MCP görüntüsü olarak (png, jpeg, gif, webp; en çok 3,7 MB). Daha büyük ya da başka türde görselde panel linki döner.

ParametreTipAçıklama
turbanner · metaGörselin geldiği yüzey.
gorselIduuidBanner ya da Meta aracının çıktısından.

adversee_get_overtakes

Rakiplerin sizi geçtiği alanlar (ör. üst limit, oran): açık geçilmeler ve son kapananlar.

Parametre yok.

Örnek yanıtlar

Kısaltılmış yanıtlar; '…' kısaltılan değerdir.

adversee_get_banner_history

{
  "marka": { "slug": "rakip-a", "ad": "Rakip A" },
  "gorunum": "mobil",
  "kayitBaslangici": "2026-10-06 11:50:16+00",
  "turlar": [
    { "turId": "…", "zaman": "2026-10-07T10:00:12Z", "durum": "tamam",
      "liste": [
        { "sira": 1, "slideId": "…", "gorselId": "…", "hedef": "https://…", "gorselLinki": "https://adversee.com/app/panel-api/vitrin/gorsel/…" },
        { "sira": 2, "slideId": "…", "gorselId": "…", "hedef": null, "gorselLinki": "…" }
      ] },
    { "turId": "…", "zaman": "2026-10-07T12:00:09Z", "durum": "engel",
      "liste": null, "listeYokNedeni": "olculemedi" }
  ]
}

adversee_list_events

{
  "hareketler": [
    { "id": "…", "tip": "banner_eklendi", "baslik": "…", "rakip": "Rakip A",
      "rakipSlug": "rakip-a", "seviye": "hamle", "zaman": "2026-10-07T10:00:12.318Z",
      "kampanyaId": null, "ayrinti": { "gorunum": "mobil", "url": "https://…" } }
  ],
  "sonrakiCursor": "b2xheTo…"
}

Banner ve Meta öğelerindeki sınıflama

"siniflama": {
  "tur": "teklif",
  "kategori": { "key": "ek_kazanc", "ad": "Ek Kazanç" },
  "grup": { "key": "bas_kazan", "ad": "Bas Kazan" },
  "oyun": "Efsane Mücevher Avcısı",
  "istemSurumu": 2,
  "onerilenKampanya": { "id": "…", "baslik": "…", "guven": 85 }
}

Sınırlar

  • İstek sınırı: Anahtar başına dakikada 60 istek; aşılırsa 429.
  • Toplu istek yok: JSON-RPC batch desteklenmez; her çağrı ayrı istek.
  • Gövde boyutu: İstek gövdesi en çok 4 MB.
  • Görsel boyutu: Görüntü olarak en çok 3,7 MB; üstünde panel linki döner.
  • Geçersiz anahtar: Aynı adresten dakikada 20'den fazla geçersiz anahtar denemesi 429 alır; geçerli anahtarlar etkilenmez.
  • Tazelenme: Banner 2 saatte, Meta 6 saatte bir taranır; daha sık çekmek yeni veri getirmez.

Hata kodları

DurumAnlamı
401Anahtar yok, biçimi bozuk, iptal edilmiş ya da üyelik sona ermiş.
429Dakikalık istek sınırı ya da geçersiz anahtar sınırı aşıldı.
400Gövde geçerli JSON değil ya da toplu (batch) istek gönderildi.
413Gövde 4 MB'ı aşıyor.
405Sunucu durumsuz; yalnız POST desteklenir.
isErrorAraç çalıştı ama sonuç vermedi (ör. 'Kayıt bulunamadı.' ya da geçersiz tarih); açıklama mesajdadır.

Veriyi doğru okumak

  • null 'yok' demek değildir, 'bilinmiyor' demektir. Ölçülemeyen değer 0 olarak verilmez.
  • Banner sıra geçmişinde başarısız turun listesi null'dır ve listeYokNedeni nedenini söyler: olculemedi, eksik, kayit_hatasi ya da kayit_oncesi.
  • Banner sıra geçmişi 06.10.2026'dan itibaren birikiyor; daha önceki turlar kayit_oncesi döner.
  • Hareketleri düzenli çekerken baslangic'i son çekimden 15 dakika geriye alın ve kayıtları id ile tekilleştirin; aynı anda yazılan kayıtlar birkaç saniye geç görünebilir.
  • Tarih parametreleri saat dilimiyle verilmelidir (ör. 2026-10-07T00:00:00Z ya da +03:00).
  • Meta, giriş yapmamış ziyaretçiye büyük sayfalarda yalnız ilk sayfayı gösteriyor, bazı sayfaları hiç göstermiyor. 'kapsam' alanı bunu marka bazında söyler; sayılar farklı reklam görseli sayısıdır.
  • Görsel sınıflama yapay zekâ tahminidir: emin olunmayan alan null kalır, oyun adı yalnız görselde yazıyorsa verilir, kampanya eşleşmesi kesin bağ değil güven puanlı öneridir.
  • Bir Meta reklamı 'bitti' sayılmadan önce en az 12 saat ve en az 3 tam okunan turda görünmemiş olmalıdır.
Adversee MCP dokümantasyonu · Adversee