Dokümanlar

MCP sunucusu

Starlecta MCP Sunucusu — Influencer keşfi ve rekabet istihbaratı

Starlecta'nın herkese açık influencer araçları, Model Context Protocol üzerinden bir yapay zekâ ajanına açık: influencer'a bak, iki hesabı aynı yöntemle karşılaştır, filtreyle ya da tek cümleyle ara, haftalık Trend Cloud'u oku. Veri Türkiye pazarı ve Instagram içindir.

01

Nedir

Bu, Starlecta'nın barındırılan MCP sunucusudur. Bir ajan (Claude, Cursor, VS Code ya da kendi istemciniz) bu adrese bağlanır, 6 aracı listeler ve çağırır. Araçlar sitedeki ücretsiz araçlarla aynı yoldan çalışır; cevaplar aynıdır.

Bir hesap "open" (herkese açık takipçi sayısı ve tarihli, ölçülmüş etkileşim oranı), "tracked" (ad, boyut, kategori; metrik yok) ya da "not_listed" olarak döner. Diğer her alan kilitli yer tutucudur. Starlecta Kalite Skoru bu araçlarda adlandırılmış hesaplar için yoktur.

02

Adres ve aktarım

03

Yetki ve anahtar

Anahtar gerektiren araçlar için ajan kendini bir kez kaydeder: https://starlecta.com/api/agent/keys adresine "label" (en çok 80 karakter), "email" ve "use" (en çok 200 karakter) alanlı bir JSON POST eder. Cevap "slk_" ile başlayan anahtarı bir kez gösterir; Starlecta yalnızca özetini saklar. Her istekte "Authorization: Bearer slk_..." başlığını gönderin.

Adres başına günlük anahtar sayısı sınırlıdır: bir anahtar alın ve yeniden kullanın. Anahtarı herkese açık bir sayfaya, depoya ya da başkalarının okuyabileceği bir isteme koymayın. Geri çağırmak için: support@starlecta.com. Ayrıntı: https://starlecta.com/auth.md

curl
curl -X POST https://starlecta.com/api/agent/keys \
  -H "Content-Type: application/json" \
  -d '{"label":"my-agent","email":"you@example.com","use":"Shortlist beauty creators for a campaign brief"}'
04

Araçlar

Araç adları, başlıkları, açıklamaları ve girdi şemaları sunucudan olduğu gibi İngilizce gelir; aşağıdaki liste aynı kaynaktan üretilir.

lookup_influencer

Look up an influencer. Public card of one Instagram influencer Starlecta tracks: tier, category, rounded followers and the measured engagement rate with its date. Status is open, tracked or not_listed.

Girdiler

AlanTürZorunluNot
handlestringevetInstagram handle, with or without @
Örnek çağrı
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "lookup_influencer",
    "arguments": {
      "handle": "example_handle"
    }
  }
}
Örnek çıktı biçimi (örnek değerlerle, alanlar kısaltıldı)
{
  "schema": "px11-lookup-v2",
  "status": "open",
  "profile": {
    "handle": "example_handle",
    "display_name": "Example Name",
    "platform": "instagram",
    "profile_url": "https://www.instagram.com/example_handle/",
    "category": "beauty",
    "tier": "macro",
    "followers": {
      "rounded": 250000,
      "unit": 10000,
      "as_of": "2026-10-20",
      "missing_reason": null
    }
  },
  "engagement": {
    "state": "measured",
    "rate": 2.4,
    "unit": "percent",
    "window_days": 90,
    "items_90d": 31,
    "as_of": "2026-10-20",
    "missing_reason": null
  },
  "quality_score": {
    "locked": true
  },
  "method_url": "https://starlecta.com/en/methods/engagement"
}

compare_influencers

Compare two influencers. Two influencers side by side on the same method and dates: followers, engagement rate and an engagement band.

Girdiler

AlanTürZorunluNot
astringevetInstagram handle, with or without @
bstringevetInstagram handle, with or without @
Örnek çağrı
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "compare_influencers",
    "arguments": {
      "a": "example_handle",
      "b": "other_handle"
    }
  }
}
Örnek çıktı biçimi (örnek değerlerle, alanlar kısaltıldı)
{
  "schema": "px11-compare-v2",
  "a": {
    "status": "open",
    "profile": {
      "handle": "example_handle",
      "tier": "macro",
      "followers": {
        "rounded": 250000
      }
    },
    "engagement": {
      "state": "measured",
      "rate": 2.4
    }
  },
  "b": {
    "status": "open",
    "profile": {
      "handle": "other_handle",
      "tier": "macro",
      "followers": {
        "rounded": 100000
      }
    },
    "engagement": {
      "state": "measured",
      "rate": 1.9
    }
  },
  "comparable": {
    "both_open": true,
    "same_tier": true,
    "er_both_measured": true,
    "er_dates_gap_days": 0,
    "er_dates_within_limit": true
  },
  "bands": {
    "engagement": {
      "band": "higher",
      "reason": null
    }
  },
  "notes": []
}

search_influencers

Search influencers by filters. Count of matching influencers and up to two open cards. Filters: category code, tier (nano, micro, macro, mega), follower bounds, measured engagement only.

Girdiler

AlanTürZorunluNot
categorystringhayırCategory code, e.g. beauty, fashion_style, tech_business_education
tiernano | micro | macro | megahayır
followers_minintegerhayır
followers_maxintegerhayır
er_measuredbooleanhayır
Örnek çağrı
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "search_influencers",
    "arguments": {
      "category": "beauty",
      "tier": "micro",
      "er_measured": true
    }
  }
}
Örnek çıktı biçimi (örnek değerlerle, alanlar kısaltıldı)
{
  "schema": "px11-search-v1",
  "status": "ok",
  "filters": {
    "category": "beauty",
    "tier": "micro",
    "followers_min": null,
    "followers_max": null,
    "er_measured": true
  },
  "count": 128,
  "count_label": null,
  "open_cards": [
    {
      "status": "open",
      "profile": {
        "handle": "example_handle",
        "tier": "macro",
        "followers": {
          "rounded": 250000
        }
      },
      "engagement": {
        "state": "measured",
        "rate": 2.4
      }
    }
  ],
  "locked_count": 126
}

ai_search_influencers

AI search for influencers. One sentence in Turkish or English (2 to 200 characters), read as filters and niche words. Returns the count, up to two open cards with a match share and the niches that matched.

Girdiler

AlanTürZorunluNot
sentencestringevet2-200 characters
Örnek çağrı
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "ai_search_influencers",
    "arguments": {
      "sentence": "micro beauty creators in Turkey with measured engagement"
    }
  }
}
Örnek çıktı biçimi (örnek değerlerle, alanlar kısaltıldı)
{
  "schema": "px11-ai-search-v1",
  "status": "ok",
  "parsed_filters": {
    "category": "beauty",
    "tier": "micro",
    "followers_min": null,
    "followers_max": null,
    "er_measured": true
  },
  "parsed_niches": [
    "skincare"
  ],
  "degraded": false,
  "count": 41,
  "count_label": null,
  "open_cards": [
    {
      "status": "open",
      "profile": {
        "handle": "example_handle",
        "tier": "macro",
        "followers": {
          "rounded": 250000
        }
      },
      "engagement": {
        "state": "measured",
        "rate": 2.4
      }
    }
  ],
  "open_matches": [
    {
      "match": 82,
      "niches": [
        "skincare"
      ]
    }
  ],
  "locked_count": 40
}

trend_cloud

Trend Cloud. What influencers share in the last 7 days: rising hashtags with post counts, and the most shared products, platforms and brands with share counts. Aggregate counts only; no key needed.

Örnek çağrı
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "trend_cloud",
    "arguments": {}
  }
}
Örnek çıktı biçimi (örnek değerlerle, alanlar kısaltıldı)
{
  "period": "last_7_days",
  "computed_at": "2026-10-30T03:00:00Z",
  "hashtags": [
    {
      "tag": "example",
      "posts": 120
    }
  ],
  "products": [
    {
      "name": "Example product",
      "brand": "Example brand",
      "shares": 45
    }
  ],
  "platforms": [
    {
      "name": "Example platform",
      "shares": 300
    }
  ],
  "brands": [
    {
      "name": "Example brand",
      "shares": 210
    }
  ],
  "source": "https://starlecta.com/en/tools/trend-cloud"
}

audit_influencer

Instagram account check. Reads one public Instagram account live and returns dated, counted metrics: followers, engagement rate over the latest items with n, average likes and comments, median Reel plays, posting frequency, Stories seen now, last post. Public accounts with 10,000+ followers. Not a score. Limited daily.

Girdiler

AlanTürZorunluNot
handlestringevetInstagram handle, with or without @
Örnek çağrı
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "audit_influencer",
    "arguments": {
      "handle": "example_handle"
    }
  }
}
Örnek çıktı biçimi (örnek değerlerle, alanlar kısaltıldı)
{
  "schema": "px11-audit-v1",
  "status": "ok",
  "handle": "example_handle",
  "display_name": "Example Name",
  "profile_url": "https://www.instagram.com/example_handle/",
  "fetched_at": "2026-10-30T20:41:07Z",
  "cache": {
    "hit": false,
    "expires_at": "2026-10-31T20:41:07Z"
  },
  "followers": {
    "rounded": 250000,
    "unit": 10000
  },
  "posts_total": 812,
  "engagement": {
    "state": "measured",
    "median_pct": 2.31,
    "mean_pct": 2.64,
    "items_used": 12,
    "items_fetched": 12,
    "hidden_likes_items": 0,
    "window_from": "2026-10-04",
    "window_to": "2026-10-29"
  },
  "averages": {
    "likes": 5120.5,
    "comments": 74.2,
    "items_used": 12
  },
  "reels": {
    "state": "measured",
    "median_plays": 48210,
    "reels_used": 9
  },
  "posting": {
    "last_30d": 12,
    "truncated": true,
    "per_week": null,
    "items_used": 12
  },
  "stories": {
    "state": "seen",
    "seen_now": 3
  },
  "last_post_on": "2026-10-29",
  "notes": [
    "stories_absence_not_proof"
  ],
  "methodology": "audit-v1"
}
05

Limitler ve hata davranışı

  • Anahtar başına günlük: profil sorgusu 30, karşılaştırma 15, filtreli arama 30, yapay zekâ araması 10, hesap analizi 5. Dakikada 6 istek, tüm araçlar birlikte. Bunlar başlangıç değerleridir; anahtarınızı veren cevap sizin değerlerinizi listeler.
  • Tüm anahtarlar için ortak bir günlük toplam da vardır (sayısı yayımlanmaz). Ziyaretçi limitlerinden ayrıdır. trend_cloud anahtar ve araç limitlerine girmez.
  • MCP girişinde IP başına dakikada 60 istek; gövde en çok 16 KiB.
  • 429: bir limit doldu. Cevaptaki Retry-After saniye kadar bekleyin. Araç içinden gelen 429, "isError" işaretli bir sonuç olarak "Retry after N seconds" metniyle döner.
  • Anahtarı olmayan ya da geçersiz anahtarla çağrılan anahtarlı araç, "isError" işaretli ve anahtarın nasıl alınacağını söyleyen bir sonuç verir (HTTP 200 içinde JSON-RPC sonucu); 401 ve {"error":"invalid_key"} düz HTTP uçlarında görülür. Geri çağrılmış anahtar da aynı şekilde reddedilir.
  • Tarayıcı kaynaklı (Origin başlıklı) çağrılar yalnızca Starlecta sitesinden kabul edilir; sunucu ve komut satırı istemcileri Origin göndermez.
  • Kataloğu kopyalamayın, toplu liste çıkarmayın ve limitleri birden çok anahtarla aşmayın; anahtar haber verilmeden iptal edilebilir. Kullanım koşulları: https://starlecta.com/en/terms
06

Verinin tazeliği

  • Her rakam tarihiyle gelir: etkileşim oranı "as_of" alanıyla ve son 90 günlük pencereyle ("window_days": 90) verilir; durum "measured", "stale" ya da "not_measured" olur. Rakamı alıntılarken tarihini de yazın.
  • İki hesabı karşılaştırırken "er_dates_gap_days" ve "er_dates_within_limit" iki ölçümün tarihleri arasındaki farkı gösterir; fark büyükse bant "not_comparable" olur.
  • Veri günlük toplanır ve puanlar günlük yenilenir. Trend Cloud'un son 7 günlük penceresi geceleri yenilenir ve cevapta "computed_at" taşır.
  • Yöntem: https://starlecta.com/en/methods/engagement
07

İstemci ayarları

Anahtarı kaynak dosyaya yazmak yerine bir ortam değişkeninde (STARLECTA_KEY) tutun. Biçimler, her istemcinin resmi belgesine göre doğrulandı: Cursor mcp.json içinde url ve headers alır ve ${env:NAME} çözer; VS Code'da üst anahtar "servers", tür "http" ve gizli girdi için "inputs" vardır; Claude Code "--transport http" ve "--header" alır.

Claude Desktop'ın Ayarlar > Bağlayıcılar (Connectors) bölümündeki özel bağlayıcılar adres girer ve kimlik doğrulamayı sunucunun kendi akışına (çoğunlukla OAuth) bırakır; bu sunucuda OAuth yoktur, bu yüzden bağlayıcıyla yalnızca trend_cloud çalışır. Anahtarlı araçlar için yapılandırma dosyasında "mcp-remote" kullanın. Windows'ta başlık değerini boşluksuz yazıp "Bearer ..." kısmını ortam değişkenine koymak gerekir; aşağıdaki örnek bunu yapar.

ChatGPT geliştirici modundaki özel bağlayıcılar OAuth ya da kimlik doğrulamasız çalışır. Başlık ile anahtar göndermeyi doğrulayamadık; bu nedenle ChatGPT'de yalnızca trend_cloud çalışır. Anahtarlı araçlar için REST uçlarını kullanın (https://starlecta.com/auth.md) ya da yukarıdaki istemcilerden birini.

Cursor: .cursor/mcp.json
{
  "mcpServers": {
    "starlecta": {
      "url": "https://starlecta.com/mcp",
      "headers": {
        "Authorization": "Bearer ${env:STARLECTA_KEY}"
      }
    }
  }
}
VS Code: .vscode/mcp.json
{
  "inputs": [
    {
      "type": "promptString",
      "id": "starlecta-key",
      "description": "Starlecta agent key",
      "password": true
    }
  ],
  "servers": {
    "starlecta": {
      "type": "http",
      "url": "https://starlecta.com/mcp",
      "headers": {
        "Authorization": "Bearer ${input:starlecta-key}"
      }
    }
  }
}
Claude Code
claude mcp add --transport http starlecta https://starlecta.com/mcp \
  --header "Authorization: Bearer $STARLECTA_KEY"
Claude Code: .mcp.json
{
  "mcpServers": {
    "starlecta": {
      "type": "http",
      "url": "https://starlecta.com/mcp",
      "headers": {
        "Authorization": "Bearer ${STARLECTA_KEY}"
      }
    }
  }
}
Claude Desktop: claude_desktop_config.json
{
  "mcpServers": {
    "starlecta": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://starlecta.com/mcp",
        "--transport",
        "http-only",
        "--header",
        "Authorization:${STARLECTA_AUTH}"
      ],
      "env": {
        "STARLECTA_AUTH": "Bearer slk_..."
      }
    }
  }
}
08

Bulmak, karşılaştırmak, kısa liste yapmak

Bir kampanya özeti için tipik akış dört çağrıdır. Çağrılar yukarıdaki örneklerle aynı biçimdedir.

  • Bul: ai_search_influencers ile bir cümle gönderin ("micro beauty creators in Turkey with measured engagement") ya da search_influencers ile category, tier ve er_measured verin. Cevap sayıyı ve en çok iki açık kartı verir; kilitli kimlikler listelenmez.
  • Bak: dönen açık kartlardan birini lookup_influencer ile açın ve "engagement.state", "rate" ve "as_of" alanlarını okuyun.
  • Karşılaştır: iki adayı compare_influencers ile aynı yöntem ve tarihlerle karşılaştırın; "comparable" ve "bands.engagement.band" değerlerine bakın.
  • Kısa liste: ölçülmüş oranı, aynı boyut grubu ve yakın ölçüm tarihi olan adayları tutun. Her rakamı tarihiyle birlikte kullanıcıya sunun; ayrıntılı panel için demo isteyin.

Tanımların tarihi 31 Ekim 2026