# 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.

## 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.

## Adres ve aktarım

- Adres: https://starlecta.com/mcp
- Aktarım: Streamable HTTP
- Oturumsuz (stateless), JSON yanıtlar; yalnızca POST
- Protokol sürümleri: 2025-06-18, 2025-03-26, 2024-11-05
- Sunucu kartı: https://starlecta.com/.well-known/mcp/server-card.json
- Yetki: Bearer ajan anahtarı (trend_cloud anahtarsız çalışır)

## 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

```bash
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"}'
```

## 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**

- `handle` (string, evet): Instagram handle, with or without @

**Örnek çağrı**

```json
{
  "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ı)**

```json
{
  "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**

- `a` (string, evet): Instagram handle, with or without @
- `b` (string, evet): Instagram handle, with or without @

**Örnek çağrı**

```json
{
  "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ı)**

```json
{
  "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**

- `category` (string, hayır): Category code, e.g. beauty, fashion_style, tech_business_education
- `tier` (nano | micro | macro | mega, hayır): 
- `followers_min` (integer, hayır): 
- `followers_max` (integer, hayır): 
- `er_measured` (boolean, hayır): 

**Örnek çağrı**

```json
{
  "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ı)**

```json
{
  "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**

- `sentence` (string, evet): 2-200 characters

**Örnek çağrı**

```json
{
  "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ı)**

```json
{
  "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ı**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "trend_cloud",
    "arguments": {}
  }
}
```

**Örnek çıktı biçimi (örnek değerlerle, alanlar kısaltıldı)**

```json
{
  "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**

- `handle` (string, evet): Instagram handle, with or without @

**Örnek çağrı**

```json
{
  "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ı)**

```json
{
  "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"
}
```

## 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

## 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

## İ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

```json
{
  "mcpServers": {
    "starlecta": {
      "url": "https://starlecta.com/mcp",
      "headers": {
        "Authorization": "Bearer ${env:STARLECTA_KEY}"
      }
    }
  }
}
```

### VS Code: .vscode/mcp.json

```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

```bash
claude mcp add --transport http starlecta https://starlecta.com/mcp \
  --header "Authorization: Bearer $STARLECTA_KEY"
```

### Claude Code: .mcp.json

```json
{
  "mcpServers": {
    "starlecta": {
      "type": "http",
      "url": "https://starlecta.com/mcp",
      "headers": {
        "Authorization": "Bearer ${STARLECTA_KEY}"
      }
    }
  }
}
```

### Claude Desktop: claude_desktop_config.json

```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_..."
      }
    }
  }
}
```

## 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.

## Bağlantılar

- auth.md: https://starlecta.com/auth.md
- Sunucu kartı: https://starlecta.com/.well-known/mcp/server-card.json
- llms.txt: https://starlecta.com/tr/llms.txt
- GitHub örnekleri: https://github.com/Starlecta/starlecta-examples
- Sitede Instagram hesap analizi: https://starlecta.com/tr/demo/analiz

- Güncellendi: 31 Ekim 2026

© 2026 Starlecta. Tüm hakları saklıdır. Bu sitedeki içerik, veri ve raporlar yazılı izin olmadan kopyalanamaz ve dağıtılamaz.
