Unleash

resmi

Unleash özellik bayraklarını yönetmek ve en iyi uygulamaları otomatikleştirmek için MCP sunucusu.

Unleash MCP ile neler yapabilirsiniz?

  • Kod değişikliklerini değerlendir — Bir kod değişikliği için riski puanlamak ve bir özellik bayrağı gerekip gerekmediğini önermek üzere evaluate_change çağrısı yapın.
  • Özellik bayrakları oluştur — Tür, açıklama ve proje hedeflemesiyle yeni bir bayrak sağlamak için create_flag kullanın.
  • Mevcut bayrakları tespit et — Kodda veya git geçmişinde yeniden kullanılabilir bayrakları bulmak ve kopyaları önlemek için detect_flag çalıştırın.
  • Sarmalama rehberliği alın — Bir bayrağı uygulamak için dile özgü kod şablonları için wrap_change isteyin.
  • Dağıtımı ve durumu yönetin — set_flag_rollout yüzdelerini yapılandırın, ardından bayrakları etkinleştirmek veya devre dışı bırakmak için toggle_flag_environment kullanın.
  • Bayrakları inceleyin ve listeleyin — Bayrak meta verilerini, stratejilerini ve proje envanterlerini gözden geçirmek için get_flag_state veya list_flags kullanın.

Dokümantasyon

Unleash MCP Sunucusu

Amaç odaklı bir Model Context Protocol (MCP) sunucusu olup Unleash özellik bayraklarını yönetmek için tasarlanmıştır. Bu sunucu, LLM destekli kodlama asistanlarının Unleash en iyi uygulamalarını takip ederek özellik bayrakları oluşturmasını ve yönetmesini sağlar.

Geri bildirim paylaşmak için topluluk Slack'ine katılın veya GitHub'da bir sorun açın.

Genel Bakış

Bu MCP sunucusu, Unleash Admin API ile entegre olan araçlar sağlar ve AI kodlama asistanlarının şunları yapmasına olanak tanır:

  • Özellik bayrakları oluşturma uygun doğrulama ve tipleme ile.
  • Mevcut bayrakları tespit etme kopyaları önlemek veya yeniden kullanımı teşvik etmek için.
  • Değişiklikleri değerlendirme bir özellik bayrağının ne zaman gerekli olduğuna karar vermek için.
  • İlerlemeyi akışa alma işlemler sırasında görünürlük için.
  • Hataları zarif bir şekilde ele alma yararlı ipuçları ile.
  • En iyi uygulamaları takip etme Unleash dokümantasyonundan.

Mevcut araçlar

MCP sunucusu aşağıdaki araçları sunar:

  • create_flag: Unleash'te bir özellik bayrağı oluşturur.
  • evaluate_change: Riski puanlar ve özellik bayrağı kullanımını önerir.
  • detect_flag: Kopyaları önlemek için mevcut özellik bayraklarını keşfeder.
  • wrap_change: Bir değişikliğin özellik bayrağıyla nasıl sarılacağına dair rehberlik sağlar.
  • set_flag_rollout: Bir özellik bayrağı için yayınlama stratejileri yapılandırır (bayrağı etkinleştirmez).
  • get_flag_state: Bir özellik bayrağının meta verilerini ve etkinleştirme stratejilerini yüzeye çıkarır.
  • list_flags: Bir projedeki tüm özellik bayraklarını listeler, isteğe bağlı sayfalama ve sıralama düzeni ile.
  • list_projects: Yapılandırılmış token için kullanılabilir Unleash projelerini listeler, isteğe bağlı sayfalama ile.
  • toggle_flag_environment: Bir ortamda özellik bayrağını etkinleştirir veya devre dışı bırakır.
  • remove_flag_strategy: Bir ortamdan özellik bayrağının stratejisini siler.
  • cleanup_flag: Bayraklı kod yollarını güvenli bir şekilde kaldırmak için talimatlar üretir.

Temel iş akışı

Bir AI asistanı için temel iş akışı şu şekilde tasarlanmıştır:

  1. evaluate_change: Önce, bir bayrağın gerekli olup olmadığını görmek için bir kod değişikliğini değerlendirin.
  2. detect_flag: Bu genellikle kopya bayrakların oluşturulmasını önlemek için evaluate_change tarafından otomatik olarak çağrılır.
  3. create_flag: Yeni bir bayrak gerekiyorsa, bu araç onu Unleash'te oluşturur.
  4. wrap_change: Son olarak, bu araç yeni bayrağı uygulamak için dile özgü kodu sağlar.

Temel iş akışı araçları hakkında daha fazla bilgi için Araç referansı bölümüne bakın.

Ön koşullar

Sunucuyu çalıştırmadan önce aşağıdakilere ihtiyacınız vardır:

  • Node.js 22 veya üstü
  • pnpm paket yöneticisi veya npm
  • Bir Unleash örneği (barındırılan veya kendi kendine barındırılan)
  • Özellik bayrakları oluşturma iznine sahip bir kişisel erişim belirteci

Başlarken

Bu bölüm, Unleash MCP sunucusunu kurmanın ve çalıştırmanın farklı yollarını kapsar. Ajanlar (Claude Code ve Codex gibi) için bir kurulum izleyebilir, MCP'yi npx kullanarak bağımsız bir süreç olarak çalıştırabilir veya bir yerel geliştirme kurulumu kullanabilirsiniz.

Ajan kurulumu

MCP sunucusunu doğrudan Claude Code veya Codex'e ekleyebilirsiniz. Ajan yapılandırmaları yol belirleyicidir. MCP'yi kullanmak istediğiniz projenin kök dizininden aşağıdaki komutu çalıştırmalısınız.

Claude Code için:

claude mcp add unleash \
    --env UNLEASH_BASE_URL={{your-instance-url}} \
    --env UNLEASH_PAT={{your-personal-access-token}} \
    -- npx -y @unleash/mcp@latest --log-level error

Codex için:

codex mcp add unleash \
    --env UNLEASH_BASE_URL={{your-instance-url}} \
    --env UNLEASH_PAT={{your-personal-access-token}} \
    -- npx -y @unleash/mcp@latest --log-level error

Uzaktan ajan kurulumu (deneysel)

MCP sunucusunu yerel olarak çalıştırmak yerine, Unleash örneğinizin yerleşik uzak MCP sunucusuna doğrudan HTTP üzerinden bağlanabilirsiniz. Bu, Streamable HTTP taşımasını kullanır — yerel bir süreç gerekmez.

Not: Uzaktan MCP, Unleash örneğinizde etkinleştirilmesi gereken deneysel bir özelliktir. Etkinleştirmek için Unleash ekibiyle iletişime geçin.

OAuth

OAuth akışı tarayıcınızı açar, Unleash'e giriş yapmanızı sağlar ve otomatik olarak kısa ömürlü bir PAT sağlar. Manuel belirteç yönetimi gerekmez.

Claude Code için:

claude mcp add unleash https://{{your-instance-url}}/api/admin/mcp --transport http

Codex için:

codex mcp add unleash https://{{your-instance-url}}/api/admin/mcp --transport http

İlk kullanımda, istemci otomatik olarak giriş için tarayıcınızı açar. Unleash ile kimlik doğruladıktan sonra, bir PAT oluşturulur ve sonraki tüm istekler için kullanılır.

PAT varsayılan olarak 24 saat sonra sona erer.

Kişisel Erişim Belirteci (PAT)

Zaten bir PAT'niz varsa veya başsız/etkileşimli olmayan erişime ihtiyacınız varsa (CI boru hatları, paylaşılan geliştirici ortamları, OAuth'u desteklemeyen istemciler) bu yöntemi kullanın.

PAT oluşturmak için: Unleash örneğinize giriş yapın, Profil > Kişisel Erişim Belirteçleri'ne gidin ve yeni bir belirteç oluşturun.

Claude Code için:

claude mcp add unleash https://{{your-instance-url}}/api/admin/mcp \
  --transport http \
  --header "Authorization: Bearer {{your-personal-access-token}}"

Codex için:

codex mcp add unleash https://{{your-instance-url}}/api/admin/mcp \
  --transport http \
  --header "Authorization: Bearer {{your-personal-access-token}}"

--header bayrağı PAT'yi doğrudan gönderir ve OAuth akışını tamamen atlar.

npx ile hızlı başlangıç

MCP sunucusunu depoyu klonlamadan npx kullanarak bağımsız bir süreç olarak çalıştırabilirsiniz. Yapılandırmayı ortam değişkenleri veya komutu çalıştırdığınız dizindeki yerel bir .env dosyası aracılığıyla sağlayın:

UNLEASH_BASE_URL={{your-instance-url}} \
UNLEASH_PAT={{your-personal-access-token}} \
UNLEASH_DEFAULT_PROJECT={{default_project_id}} \
npx @unleash/mcp@latest --log-level debug

CLI, yerel derleme ile aynı bayrakları destekler (örneğin, --dry-run, --log-level).

Yerel geliştirme kurulumu

Yerel geliştirme için projeyi kurmak üzere şu adımları izleyin.

  1. Bağımlılıkları yükleyin

Depoyu klonlayın ve pnpm kullanarak bağımlılıkları yükleyin. Corepack, herkesin aynı pnpm sürümünde kalmasını sağlar:

git clone https://github.com/Unleash/unleash-mcp.git
cd unleash-mcp

# Enable Corepack once per machine, then prepare the pnpm this repo expects
corepack enable
corepack prepare pnpm@11.0.8 --activate

pnpm install
  1. Claude veya Codex'ten doğrudan dev modunda çalıştırın

npm run çıktısından ve tsx watch başlıklarından kaçının çünkü ekstra stdout, MCP el sıkışmasını bozar. İki sessiz seçenek:

A) Derlenmiş JS kullanın (en güvenilir)

npm run build
# or keep it hot in another terminal: npm run build:watch

claude mcp add unleash-dev \
  --env UNLEASH_BASE_URL={{your-instance-url}} \
  --env UNLEASH_PAT={{your-personal-access-token}} \
  --env LOG_LEVEL=debug \
  --env APP_LOG_FILE="$(pwd)/app.log" \
  --env MCP_STDIO_LOG_FILE="$(pwd)/mcp-stdio.log" \
  -- node "$(pwd)/dist/index.js"

codex mcp add unleash-dev \
  --env UNLEASH_BASE_URL={{your-instance-url}} \
  --env UNLEASH_PAT={{your-personal-access-token}} \
  --env LOG_LEVEL=debug \
  --env APP_LOG_FILE="$(pwd)/app.log" \
  --env MCP_STDIO_LOG_FILE="$(pwd)/mcp-stdio.log" \
  -- node "$(pwd)/dist/index.js"

B) TypeScript'i doğrudan kullanın (derleme yok)

claude mcp add unleash-dev \
  --env UNLEASH_BASE_URL={{your-instance-url}} \
  --env UNLEASH_PAT={{your-personal-access-token}} \
  --env LOG_LEVEL=debug \
  --env APP_LOG_FILE="$(pwd)/app.log" \
  --env MCP_STDIO_LOG_FILE="$(pwd)/mcp-stdio.log" \
  -- node --no-warnings --import tsx "$(pwd)/src/index.ts"

codex mcp add unleash-dev \
  --env UNLEASH_BASE_URL={{your-instance-url}} \
  --env UNLEASH_PAT={{your-personal-access-token}} \
  --env LOG_LEVEL=debug \
  --env APP_LOG_FILE="$(pwd)/app.log" \
  --env MCP_STDIO_LOG_FILE="$(pwd)/mcp-stdio.log" \
  -- node --no-warnings --import tsx "$(pwd)/src/index.ts"

Notlar:

  • node --import tsx sessizdir (npm yaşam döngüsü çıktısı yok) ve TS'yi doğrudan çalıştırır; derlemeden kaçınmak istediğinizde bunu kullanın.
  • node dist/index.js en güvenli seçimdir; ajan komutu sabit kalırken değişikliklerde yeniden derlemek için npm run build:watch ile eşleştirin.
  • Günlükler depo kökünde kalır (app.log, mcp-stdio.log), her ikisi de gitignore edilmiştir.

Günlük kontrolü

  • LOG_LEVEL (tercih edilen): uygulama günlüğü ayrıntı düzeyini kontrol eder (debug, info, warn, error). Ayarlanmadığında error varsayılanına döner.
  • --log-level CLI bayrağı: tek seferlik bir değişiklik istediğinizde LOG_LEVEL için isteğe bağlı geçersiz kılma.
  • APP_LOG_FILE (isteğe bağlı): ayarlanırsa, uygulama günlükleri bu dosyaya yazılır (stdout'a değil). Ayarlanmazsa, günlükler stderr'e gider.
  • MCP_STDIO_LOG_FILE (isteğe bağlı): ayarlanırsa, MCP stdin/stdout/stderr kanal önekleriyle bu tek dosyaya tee'lenir. Protokol mesajları yine de normal şekilde stdout üzerinden akar.

İstemci atıfı

Bir MCP istemcisi başlatma sırasında clientInfo gönderdiğinde (Claude Code, Cursor, Copilot, Windsurf, Codex, Kiro ve diğer uyumlu istemciler), sunucu giden Unleash Admin API çağrılarında User-Agent başlığını zenginleştirir:

User-Agent: unleash-mcp/<version> (MCP Server; client=claude-code/1.2.3)

Bu, Unleash olay günlüklerinin "bu bayrağı hangi AI aracı oluşturdu veya değiştirdi" sorusunu sunucu tarafında herhangi bir değişiklik olmadan yanıtlamasını sağlar. Atıf değerleri, User-Agent başlığını bozamayacak şekilde temizlenir.

Zenginleştirmeyi devre dışı bırakmak ve unleash-mcp/<version> (MCP Server)'e dönmek için UNLEASH_MCP_CLIENT_ATTRIBUTION=off ayarlayın. Varsayılan: etkin.

Araç referansı

Bu bölüm, temel araçların her birini ayrıntılı olarak açıklar: amacı, parametreleri ve çıktısı.

Bayrak oluştur

create_flag aracı, kapsamlı doğrulama ve ilerleme takibi ile Unleash'te yeni bir özellik bayrağı oluşturur.

Ne zaman kullanılır

Bir özellik bayrağının gerekli olduğunu zaten belirlediğinizde (örneğin, evaluate_change çalıştırdıktan sonra) ve doğru tür ve meta verilerle oluşturmaya hazır olduğunuzda bu aracı kullanın.

Parametreler

Araç aşağıdaki parametreleri kabul eder:

  • name (gerekli): Proje içinde benzersiz özellik bayrağı adı.
  • type (gerekli): Yaşam döngüsünü ve amacı belirten özellik bayrağı türü.
    • release: Kullanıcılara kademeli özellik yayınları.
    • experiment: A/B testleri ve deneyler.
    • operational: Sistem davranışı ve operasyonel anahtarlar.
    • kill-switch: Acil kapatmalar veya devre kesiciler.
    • permission: Kullanıcı rollerine veya yetkilerine göre özellik erişimini kontrol edin.
  • description (gerekli): Bayrağın neyi kontrol ettiğinin ve neden var olduğunun net açıklaması.
  • projectId (isteğe bağlı): Hedef proje (varsayılan UNLEASH_DEFAULT_PROJECT).
  • impressionData (isteğe bağlı): Analitik takibini etkinleştirin (varsayılan false).

Kullanım örneği

Ajan istemi

Use create_flag with:
- name: "new-checkout-flow"
- type: "release"
- description: "Gradual rollout of the redesigned checkout experience"
- projectId: "ecommerce"

Araç yükü

{
  "name": "new-checkout-flow",
  "type": "release",
  "description": "Gradual rollout of the redesigned checkout experience with improved conversion tracking",
  "projectId": "ecommerce",
  "impressionData": true
}

Araç çıktısı

Başarı durumunda, araç Unleash Admin UI'daki yeni özellik bayrağının URL'sini, programatik erişim için bir MCP kaynak bağlantısını, oluşturma zaman damgasını ve yapılandırma ayrıntılarını içeren bir JSON nesnesi döndürür.

Değişikliği değerlendir

evaluate_change aracı, bir kod değişikliğinin bir özellik bayrağının arkasında olup olmadığını değerlendirir. Değişikliğin yapısını, bağlamını ve potansiyel riskini inceler ve bir açıklama ve sonraki adımlarla bir öneri döndürür.

Ne zaman kullanılır

Bir özellik veya değişikliğin başında, işin bir özellik bayrağı gerektirip gerektirmediğini anlamak istediğinizde evaluate_change kullanın. Bu araç ayrıca hangi bayrak türünü kullanacağınızdan emin olmadığınızda veya yayınlama planlaması için rehberlik istediğinizde de yararlıdır.

Nasıl çalışır

Araç, Unleash en iyi uygulamalarına dayalı olarak LLM asistanı için ayrıntılı, markdown biçimli rehberlik döndürür.

Rehberlik şunları içerir:

  • Üst bayrak tespiti: Kodun mevcut bayraklar tarafından zaten korunup korunmadığını kontrol eder.
  • Risk değerlendirmesi: Riskli işlemleri belirlemek için kod kalıplarını analiz eder.
  • Kod türü değerlendirmesi: Değişikliği sınıflandırır (örneğin, test, yapılandırma, özellik veya hata düzeltmesi).
  • Öneri: Bir bayrak oluşturmayı, mevcut bir bayrağı kullanmayı veya bayrağı atlamayı önerir.
  • Sonraki eylemler: Sonra ne yapılacağına dair belirli talimatlar sağlar.

evaluate_change bir bayrağın gerekli olduğunu belirlediğinde, şu açık talimatları sağlar:

  1. Özellik bayrağını oluşturmak için create_flag aracını çağırın.
  2. Dile özgü kod sarma rehberliği almak için wrap_change aracını çağırın.
  3. Tespit edilen kalıpları izleyerek sarılmış kodu uygulayın.

Değerlendirme süreci

Araç net bir değerlendirme sürecini izler:

Step 1: Gather code changes (git diff, read files)
        ↓
Step 2: Check for parent flags (avoiding nesting)
        ↓
Step 3: Assess code type (test? config? feature?)
        ↓
Step 4: Evaluate risk (auth? payments? API changes?)
        ↓
Step 5: Calculate risk score
        ↓
Step 6: Make recommendation
        ↓
Step 7: Take action (create flag or proceed without)

Risk değerlendirmesi

Araç, riski puanlamak için dil bağımsız kalıplar kullanır:

  • Kritik risk (Puan +5): Örneğin, kimlik doğrulama, ödemeler, güvenlik ve veritabanı işlemleri.
  • Yüksek risk (Puan +3): Örneğin, API değişiklikleri, harici hizmetler veya yeni sınıflar.
  • Orta risk (Puan +2): Örneğin, asenkron işlemler veya durum yönetimi.
  • Düşük risk (Puan +1): Örneğin, hata düzeltmeleri, yeniden düzenlemeler veya küçük değişiklikler.

Puanlar eşleşen kategoriler arasında birikir. Toplam, bir risk seviyesine karşılık gelir:

  • Kritik: Puan ≥ 5
  • Yüksek: Puan ≥ 3
  • Orta: Puan ≥ 2
  • Düşük: Puan < 2

Çıktı, LLM'nin kendi kendine değerlendirdiği kesinliği temsil eden bir confidence puanı (0-1) içerir; bu, daha fazla bağlam sağlandıkça artar.

Bir hariç tutulan kategori, içerikten bağımsız olarak özellik bayrakları gerektirmeyen dosyaları kapsar: test dosyaları (*.test.ts, *_test.go, vb.), yapılandırma dosyaları (*.config.js, .env, *.yaml) ve dokümantasyon dosyaları (*.md, docs/**). Yalnızca hariç tutulan dosyalarla sınırlı değişiklikler bir bayrak önerisini tetiklemez.

Kategori başına anahtar kelimeler, dosya glob'ları, kod kalıpları ve gerekçeler dahil tam kalıp tanımları src/evaluation/riskPatterns.ts içindedir.

Üst bayrak tespiti

Araç, diller arasında yaygın kalıpları arar, örneğin:

  • Koşullar: if (isEnabled('flag')), if client.is_enabled('flag'):
  • Atamalar: const enabled = useFlag('flag')
  • Kancalar: const enabled = useFlag('flag') → {enabled && <Component />}
  • Korumalar: if (!isEnabled('flag')) return;
  • Sarmalayıcılar: withFeatureFlag('flag', () => {...})

Parametreler

Tüm parametreler isteğe bağlıdır, ancak daha fazla bağlam daha iyi önerilere yol açar:

  • repository (string): Depo adı veya yolu.
  • branch (string): Geçerli dal adı.
  • files (array): Değiştirilen dosyaların listesi.
  • description (string): Değişikliğin açıklaması.
  • riskLevel (enum): Kullanıcı tarafından değerlendirilen low, medium, high veya critical.
  • codeContext (string): Üst bayrak algılaması için çevreleyen kod.

Kullanım örneği

Aracı istemi

Aracının bağlamı toplamasına izin verdiğiniz basit kullanım:

Use evaluate_change to help me determine if I need a feature flag

Açık talimatlar:

Use evaluate_change with:
- description: "Add Stripe payment processing"
- riskLevel: "high"

Araç yükü

{
  "repository": "my-app",
  "branch": "feature/stripe-integration",
  "files": ["src/payments/stripe.ts"],
  "description": "Add Stripe payment processing",
  "riskLevel": "high",
  "codeContext": "surrounding code for parent flag detection"
}

Araç çıktısı

Değerlendirme sonucunu içeren bir JSON nesnesi döndürür; bir needsFlag boolean, bir recommendation (ör. "create_new"), önerilen bir bayrak adı, risk seviyesi ve ayrıntılı bir explanation içerir.

{
  "needsFlag": true,
  "reason": "new_feature",
  "recommendation": "create_new",
  "suggestedFlag": "stripe-payment-integration",
  "riskLevel": "critical",
  "riskScore": 5,
  "explanation": "This change integrates Stripe payments, which is critical risk...",
  "confidence": 0.9
}

Bayrağı algıla

detect_flag aracı, kod tabanında mevcut özellik bayraklarını bulur; böylece yinelenenler oluşturmak yerine bunları yeniden kullanabilirsiniz. Bu araç otomatik olarak evaluate_change iş akışına entegre edilmiştir, ancak manuel olarak da kullanılabilir.

Ne zaman kullanılır

Yeni bir özellik bayrağı oluşturmadan önce veya kod değerlendirmesi sırasında, kullanım durumunuzu zaten kapsayabilecek mevcut bayrakları kontrol etmek için bu aracı kullanın. Bu, bayrak yinelenmesini önlemeye yardımcı olur.

Nasıl çalışır

Araç kapsamlı arama talimatları döndürür ve birden çok algılama stratejisi kullanır:

  • Dosya tabanlı algılama: Değiştirdiğiniz dosyalarda mevcut bayrakları arayın.
  • Git geçmişi analizi: Commit geçmişinde yakın zamanda eklenen bayrakları arayın.
  • Anlamsal ad eşleştirme: Açıklamaları mevcut bayrak adlarıyla eşleştirin.
  • Kod bağlamı analizi: Değişikliğin etrafındaki kodu inceleyin.

Araç daha sonra bir puanlama sürecini izler:

Step 1: Execute file-based search (grep for flag patterns in target files)
        ↓
Step 2: Search git history for recent flag additions
        ↓
Step 3: Perform semantic matching (description → flag names)
        ↓
Step 4: Analyze code context (if provided)
        ↓
Step 5: Combine scores from all methods
        ↓
Step 6: Return best candidate with confidence score

Güven seviyeleri

Araç, güven puanlarıyla adayları döndürür:

  • Yüksek ≥0.7: Güçlü eşleşme; yeniden kullanım önerilir.
  • Orta 0.4-0.7: Olası eşleşme; manuel olarak inceleyin.
  • Düşük <0.4: Zayıf eşleşme; büyük olasılıkla yeni bir bayrak oluşturun.

Parametreler

  • description (zorunlu): Değişikliğin veya özelliğin açıklaması. Örneğin, "payment processing with Stripe", "new checkout flow".
  • files (isteğe bağlı): Değiştirilen dosyalar. Örneğin, ["src/payments/stripe.ts", "src/checkout/flow.ts"].
  • codeContext (isteğe bağlı): Bayrakları taramak için yakındaki kod.

Kullanım örneği

Aracı istemi

Bir bayrak oluşturmadan önce mevcut bayrakları kontrol edin:

Use detect_flag with description "payment processing with Stripe"

Değerlendirmeye otomatik olarak entegre edilir:

Use evaluate_change - automatically searches for existing flags

Araç yükü

{
  "description": "payment processing with Stripe",
  "files": ["src/payments/stripe.ts"]
}

Araç çıktısı

Bir bayrağın bulunup bulunmadığını gösteren bir JSON nesnesi döndürür. flagFound true ise, bayrağın adını, konumunu, güven puanını ve eşleşme nedenini içeren bir candidate nesnesi içerir.

Eşleşme bulundu:

{
  "flagFound": true,
  "candidate": {
    "name": "stripe-payment-integration",
    "location": "src/payments/stripe.ts:42",
    "context": "if (client.isEnabled('stripe-payment-integration')) {",
    "confidence": 0.85,
    "reasoning": "Found in same file you're modifying, added 2 days ago",
    "detectionMethod": "file-based"
  }
}

Eşleşme bulunamadı:

{
  "flagFound": false,
  "candidate": null
}

Değişikliği sarmala

wrap_change aracı, kodu özellik bayraklarıyla sarmak için dile özgü kod parçacıkları ve rehberlik üretir. LLM'lerin ve geliştiricilerin kod tabanındaki mevcut kalıpları izlemesine ve bayrakları doğru şekilde kullanmasına yardımcı olur.

Ne zaman kullanılır

Bir özellik bayrağı oluşturduktan sonra (create_flag ile) ve bunu kodunuzda uygulamanız gerektiğinde bu aracı kullanın. Mevcut kod tabanı kalıplarını izlediğinizden emin olmak istediğinizde veya çerçeveye özgü örneklere (ör. React, Django) ihtiyaç duyduğunuzda özellikle yararlıdır.

Nasıl çalışır

Bu araç, evaluate_change → create_flag → wrap_change iş akışındaki son adımdır.

Araç yanıtında aşağıdaki rehberliği sağlar:

  1. Arama talimatları: Kod tabanınızda grep kullanarak mevcut bayrak kalıplarını bulmak için adım adım kılavuz.
  2. Kalıp algılama: Yaygın kalıpları tanımlar (örneğin, içe aktarmalar, istemci değişken adları, yöntem adları veya sarmalama stilleri).
  3. Varsayılan şablonlar: Kalıp bulunamazsa yedek kod parçacıkları.
  4. Çerçeveye özgü örnekler: React, Express, Django ve diğerleri için özelleştirilmiş kalıplar.
  5. Birden çok kalıp: If blokları, koruma cümleleri, hook'lar, dekoratörler, ara katman yazılımları ve daha fazlası.

Desteklenen diller ve çerçeveler:

  • TypeScript/JavaScript: Node.js, React Hooks, Express ara katman yazılımı.
  • Python: FastAPI, Django, Flask dekoratörleri.
  • Go: Standart if blokları, HTTP ara katman yazılımı.
  • Ruby: Rails denetleyicileri.
  • PHP: Laravel denetleyicileri.
  • C#: .NET/ASP.NET denetleyicileri.
  • Java: Spring Boot.
  • Rust: Actix/Rocket işleyicileri.

Parametreler

  • flagName (zorunlu): Kodu sarmak için özellik bayrağı adı. Örneğin: "new-checkout-flow" veya "stripe-integration".
  • language (isteğe bağlı): Programlama dili (sağlanmazsa fileName'ten otomatik algılanır). Desteklenenler: typescript, javascript, python, go, ruby, php, csharp, java, rust
  • fileName (isteğe bağlı): Değiştirilen dosya adı (dili algılamaya yardımcı olur). Örneğin: "checkout.ts", "payment.py" veya "handler.go".
  • codeContext (isteğe bağlı): Mevcut kalıpları algılamaya yardımcı olacak çevreleyen kod.
  • frameworkHint (isteğe bağlı): Özelleştirilmiş şablonlar için çerçeve. Örneğin, "React", "Express", "Django", "Rails" veya "Spring Boot".

Kullanım örneği

Aracı istemi

Use wrap_change with:
- flagName: "new-checkout-flow"
- fileName: "src/components/checkout.ts"
- frameworkHint: "React"

Araç yükü

{
  "flagName": "new-checkout-flow",
  "fileName": "checkout.ts",
  "frameworkHint": "React"
}

Araç çıktısı

Kullanıcıya kodunu nasıl saracağı konusunda rehberlik eden kapsamlı, markdown biçimli bir dize döndürür. Bu, bir hızlı başlangıç, arama talimatları, yer tutucularla sarmalama talimatları, dil için mevcut tüm şablonlar ve SDK belgelerine bağlantılar içerir.

# Feature Flag Wrapping Guide: "new-checkout-flow"

**Language:** TypeScript
**Framework:** React

## Quick Start
[Recommended pattern with import and usage]

## How to Search for Existing Flag Patterns
[Step-by-step Grep instructions]

## How to Wrap Code with Feature Flag
[Wrapping instructions with examples]

## All Available Templates
[If-block, guard clause, hooks, ternary, etc.]

Bayrak yayılımını ayarla

set_flag_rollout aracı, bir özellik bayrağı ortamında bir flexibleRollout stratejisi yapılandırır. Yayılım yüzdesini, yapışkanlığı ve isteğe bağlı strateji düzeyi varyantlarını ayarlar. Bu, bayrağı etkinleştirmez; açmak için toggle_flag_environment kullanın.

Ne zaman kullanılır

create_flag ile bir bayrak oluşturduktan sonra, etkinleştirmeden önce trafiğin nasıl dağıtılacağını yapılandırmak için bu aracı kullanın. Ayrıca mevcut bir yayılım yüzdesini güncellemek veya varyantlar eklemek için de kullanın.

Parametreler

  • featureName (zorunlu): Özellik bayrağı adı.
  • environment (zorunlu): Hedef ortam (örneğin, "production", "development").
  • rolloutPercentage (zorunlu): Özelliği alacak trafiğin yüzdesi (0-100).
  • projectId (isteğe bağlı): Proje kimliği (varsayılan UNLEASH_DEFAULT_PROJECT).
  • groupId (isteğe bağlı): Yapışkanlık gruplama anahtarı (varsayılan özellik adıdır).
  • stickiness (isteğe bağlı): Yapışkanlık alanı (varsayılan "default").
  • title (isteğe bağlı): Strateji için açıklayıcı başlık.
  • disabled (isteğe bağlı): Stratejiyi devre dışı durumda oluşturun (varsayılan false).
  • variants (isteğe bağlı): Her biri name, weight (0-1000), isteğe bağlı weightType ("variable" veya "fix"), stickiness ve payload ({type, value}) içeren strateji düzeyi varyantlarının listesi.

Kullanım örneği

Aracı istemi

Use set_flag_rollout with:
- featureName: "new-checkout-flow"
- environment: "production"
- rolloutPercentage: 25

Araç yükü

{
  "featureName": "new-checkout-flow",
  "environment": "production",
  "rolloutPercentage": 25,
  "projectId": "ecommerce",
  "stickiness": "userId"
}

Araç çıktısı

Yapılandırılan yüzdeyle bir onay, Unleash Yönetici Arayüzü'ndeki bayrağa bir bağlantı, Yönetici API stratejileri URL'si ve bayrak için bir MCP kaynak bağlantısı döndürür.

Bayrak durumunu al

get_flag_state aracı, Unleash Yönetici API'sinden bir özellik bayrağının geçerli meta verilerini ve ortam stratejilerini getirir. Bayrağın türünü, etkin/arşivlenmiş durumunu, izlenim verisi ayarını ve her ortam için etkin stratejilerin ve varyantların bir özetini döndürür.

Ne zaman kullanılır

Bir bayrağı değiştirmeden önce incelemek, ortamlar arasında kaç stratejinin etkin olduğunu kontrol etmek veya remove_flag_strategy'i çağırmadan önce strateji kimliklerini bulmak için bu aracı kullanın.

Parametreler

  • featureName (zorunlu): Özellik bayrağı adı.
  • projectId (isteğe bağlı): Proje kimliği (varsayılan UNLEASH_DEFAULT_PROJECT).
  • environment (isteğe bağlı): Sonuçları tek bir ortama filtreleyin (büyük/küçük harf duyarsız).

Kullanım örneği

Aracı istemi

Use get_flag_state with:
- featureName: "new-checkout-flow"
- environment: "production"

Araç yükü

{
  "featureName": "new-checkout-flow",
  "projectId": "ecommerce",
  "environment": "production"
}

Araç çıktısı

Bayrağın metin özetini (tür, etkin/arşivlenmiş/izlenim verisi, proje, strateji sayılarıyla ortam özetleri) ve kullanıcı arayüzü ile API bağlantılarını döndürür. Yapılandırılmış çıktı, tüm ortamlar ve strateji ayrıntılarıyla birlikte tam özellik nesnesini içerir.

Bayrakları listele

list_flags aracı, bir projedeki özellik bayraklarını numaralandırır ve sayfalama ve sıralama düzeniyle yapılandırılmış bir envanter döndürür. Etkin ve arşivlenmiş bayraklar ayrı ayrı döndürülür: denetim iş akışları için tam bir envanter oluşturmak üzere bir kez archived: false (varsayılan) ve bir kez archived: true ile çağırın.

Ne zaman kullanılır

Bir aracının hangi bayrakların zaten mevcut olduğunu keşfetmesi gerektiğinde bu aracı kullanın; örneğin bir projeyi denetlemek, temizlik için adaylar bulmak veya bir bayrak oluşturmadan veya sarmadan önce bağlam oluşturmak için. unleash://projects/{projectId}/feature-flags kaynağının aracı tarafından çağrılabilir eşdeğeridir (bkz. MCP kaynakları).

Parametreler

  • projectId (isteğe bağlı): Bayrakların listeleneceği proje (varsayılan UNLEASH_DEFAULT_PROJECT; tek bir proje mevcut olduğunda otomatik çözümlenir).
  • archived (isteğe bağlı): Etkin bayraklar yerine arşivlenmiş bayrakları listelemek için true. Varsayılan false. Etkin ve arşivlenmiş bayraklar aynı yanıtta döndürülemez.
  • limit (isteğe bağlı): Sayfa başına maksimum bayrak (varsayılan: sunucu sayfa boyutu, genellikle 50).
  • order (isteğe bağlı): Bayrak adına göre sıralama düzeni, asc veya desc (varsayılan: asc).
  • offset (isteğe bağlı): Sayfalama için atlanacak bayrak sayısı (varsayılan: 0).

Kullanım örneği

Aracı istemi

Use list_flags with:
- projectId: "ecommerce"
- archived: false

Araç yükü

{
  "projectId": "ecommerce",
  "archived": false,
  "limit": 50,
  "order": "asc"
}

Araç çıktısı

projectId, archived, order, limit, offset, nextOffset, totalFlags ve flags dizisiyle (her biri ad, tür, proje, arşivlenmiş durum ve bağlantılar içerir) birlikte bir metin özeti ve yapılandırılmış içerik döndürür. Büyük projelerde gezinmek için nextOffset kullanın.

Projeleri listele

list_projects aracı, yapılandırılmış belirtecin kullanabildiği Unleash projelerini sayfalama ve sıralama düzeniyle numaralandırır.

Ne zaman kullanılır

Hedef proje bilinmediğinde veya bir aracının bayrakları listelemeden veya oluşturmadan önce bir proje seçmesi gerektiğinde bu aracı kullanın. unleash://projects kaynağının aracı tarafından çağrılabilir eşdeğeridir (bkz. MCP kaynakları).

Parametreler

  • limit (isteğe bağlı): Sayfa başına maksimum proje (varsayılan: sunucu sayfa boyutu, genellikle 20).
  • order (isteğe bağlı): Proje oluşturma zamanına göre sıralama düzeni, asc veya desc (varsayılan: desc, en yeniden en eskiye).
  • offset (isteğe bağlı): Sayfalama için atlanacak proje sayısı (varsayılan: 0).

Kullanım örneği

Aracı istemi

Use list_projects to see which projects are available.

Araç yükü

{
  "limit": 20,
  "order": "desc"
}

Araç çıktısı

order, limit, offset, nextOffset, totalProjects ve projects dizisiyle (her biri kimlik, ad, açıklama, mod, oluşturma zamanı ve URL içerir) birlikte bir metin özeti ve yapılandırılmış içerik döndürür.

Bayrak ortamını değiştir

toggle_flag_environment aracı, belirli bir ortamda bir özellik bayrağını etkinleştirir veya devre dışı bırakır. Kademeli yayılımlar için, etkinleştirmeden önce set_flag_rollout ile bir strateji yapılandırın.

Ne zaman kullanılır

Bir yayılım stratejisi yapılandırdıktan sonra bir bayrağı açmak veya bir olay sırasında veya bir yayılımı tamamladıktan sonra bir bayrağı devre dışı bırakmak için bu aracı kullanın.

Parametreler

  • featureName (zorunlu): Özellik bayrağı adı.
  • environment (zorunlu): Değiştirilecek ortam (örneğin, "production").
  • enabled (zorunlu): Etkinleştirmek için true, devre dışı bırakmak için false.
  • projectId (isteğe bağlı): Proje kimliği (varsayılan: UNLEASH_DEFAULT_PROJECT).

Kullanım örneği

Aracı komutu

Use toggle_flag_environment with:
- featureName: "new-checkout-flow"
- environment: "production"
- enabled: true

Araç yükü

{
  "featureName": "new-checkout-flow",
  "environment": "production",
  "enabled": true,
  "projectId": "ecommerce"
}

Araç çıktısı

Yeni durumun onayını, ortamın bir özetini (etkin/devre dışı, strateji sayısı) ve Unleash Yönetim Arayüzü ile Yönetim API'sindeki bayrağa bağlantıları döndürür.

Bayrak stratejisini kaldır

remove_flag_strategy aracı, bir özellik bayrağı ortamından strateji yapılandırmasını siler. Strateji kimliğini bulmak için önce get_flag_state kullanın.

Ne zaman kullanılır

Bu aracı eski stratejileri temizlemek veya mevcut bir stratejiyi kaldırıp set_flag_rollout ile yeni bir strateji yapılandırarak değiştirmek için kullanın.

Parametreler

  • featureName (zorunlu): Özellik bayrağı adı.
  • environment (zorunlu): Stratejinin kaldırılacağı ortam.
  • strategyId (zorunlu): Kaldırılacak stratejinin kimliği (bunu get_flag_state ile bulun).
  • projectId (isteğe bağlı): Proje kimliği (varsayılan: UNLEASH_DEFAULT_PROJECT).

Kullanım örneği

Aracı komutu

Use get_flag_state to find strategy IDs for "new-checkout-flow" in production,
then use remove_flag_strategy to delete the old strategy.

Araç yükü

{
  "featureName": "new-checkout-flow",
  "environment": "production",
  "strategyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "projectId": "ecommerce"
}

Araç çıktısı

Kaldırma onayını, ortamda kalan strateji sayısını ve Unleash Yönetim Arayüzü ile Yönetim API'sindeki bayrağa bağlantıları döndürür.

Bayrak temizliği

cleanup_flag aracı, istenen kod yolunu korurken özellik bayrağı kodunu kod tabanından güvenle kaldırmak için adım adım talimatlar üretir.

Ne zaman kullanılır

Bu aracı, bir özellik bayrağı yaşam döngüsünü tamamladığında kullanın:

  • Bir dağıtım %100'e ulaştığında ve bayrağa artık ihtiyaç duyulmadığında.
  • Deneysel bir özellik kullanımdan kaldırılırken (devre dışı yolu koruyun).
  • Artık gerekli olmayan bir acil durum anahtarı kaldırılırken.
  • Eski bayrakların teknik borç temizliği sırasında.

Nasıl çalışır

Araç, LLM'yi şu adımlarda yönlendiren kapsamlı temizlik talimatları döndürür:

  1. grep desenlerini kullanarak bayrağın tüm geçtiği yerleri bulma.
  2. Kullanım desenlerini belirleme (if-else blokları, üçlü ifadeler, koruma cümleleri, hook'lar, dekoratörler, ara katmanlar).
  3. Doğru kod yolunu koruyarak bayrak kontrollerini kaldırma.
  4. Dile özgü rehberlikle kullanılmayan içe aktarımları temizleme.
  5. Temizlik sonrası arama ve test adımlarıyla değişiklikleri doğrulama.

preservePath sağlanmazsa, araç devam etmeden önce kullanıcıya hangi yolun korunacağını sorma talimatlarını döndürür.

Parametreler

  • flagName (zorunlu): Kaldırılacak özellik bayrağının adı (örneğin, "new-checkout-flow").
  • preservePath (isteğe bağlı): Tamamlanan dağıtımlar için tipik olan bayrak açık kod yolunu korumak için "enabled" veya kaldırılan deneyler için bayrak kapalı yolunu korumak için "disabled". Atlanırsa, araç kullanıcıya sormanızı ister.
  • files (isteğe bağlı): Temizlenecek belirli dosyalar. Atlanırsa, tüm kod tabanında arama yapar.
  • language (isteğe bağlı): Özel içe aktarma temizliği rehberliği için programlama dili (örneğin, "typescript", "python"). Sağlanmazsa files üzerinden otomatik algılanır.

Kullanım örneği

Aracı komutu

Use cleanup_flag with:
- flagName: "new-checkout-flow"
- preservePath: "enabled"

Araç yükü

{
  "flagName": "new-checkout-flow",
  "preservePath": "enabled",
  "files": ["src/components/checkout.tsx", "src/api/checkout.ts"],
  "language": "typescript"
}

Araç çıktısı

Temizlik kapsamını ve korunan yolu, tüm geçtiği yerleri bulmak için grep komutlarını, desen başına kaldırma talimatlarını, dile özgü içe aktarma temizliğini ve temizlik sonrası doğrulama adımlarını (yeniden arama, testleri çalıştırma, manuel inceleme) kapsayan bir markdown kılavuzu döndürür.

MCP kaynakları

Sunucu, proje ve özellik bayrağı verilerini okumak için MCP kaynaklarını kaydeder. Tüm kaynaklar JSON döndürür ve 60 saniye boyunca önbelleğe alınır.

URI şablonuAçıklama
unleash://projects{?limit,order,offset}Projeleri listele. Varsayılan sayfa boyutu: 20, oluşturma zamanına göre sıralanır (en yeni önce).
unleash://projects/{projectId}/feature-flags{?limit,order,offset}Bir projedeki bayrakları listele. Varsayılan sayfa boyutu: 50, alfabetik olarak sıralanır.
unleash://projects/{projectId}/feature-flags/{flagName}Tek özellik bayrağı meta verileri.

İlk iki şablon isteğe bağlı sorgu parametrelerini kabul eder: limit (sayfa boyutu), order (asc veya desc) ve offset (sayfalama başlangıcı). Yanıtlar fetchedAt, cached, totalProjects veya totalFlags ve nextOffset alanlarını içerir.

Kaynaklar ve araçlar: MCP kaynakları uygulama tarafından kontrol edilir, bu nedenle birçok istemci bunları yalnızca kullanıcı odaklı arayüzlerde (örneğin #-bahsetmeleri) gösterir ve aracının resources/read öğesini kendi başına çağırmasına izin vermez. Bir aracının programatik olarak projeleri veya bayrakları listelemesi gerektiğinde, aynı verileri araç arayüzü üzerinden döndüren list_projects ve list_flags araçlarını kullanın. detect_flag envanter analizi aynı yolu kullanır.

Örnek kaynak okuma

Read unleash://projects/ecommerce/feature-flags?limit=10&order=asc

ecommerce projesindeki ilk 10 özellik bayrağını alfabetik olarak sıralanmış ve sayfalama meta verileriyle döndürür.

Mimari

Sunucu, odaklanmış ve amaca yönelik bir tasarım izler.

Yapı

src/
├── index.ts                     # Stdio CLI entry point
├── server.ts                    # Transport-agnostic server factory
├── remote.ts                    # HTTP request handler for embedded mode
├── config.ts                    # Configuration loading and validation
├── context.ts                   # Shared runtime context
├── version.ts                   # Version constant
├── unleash/
│   └── client.ts                # Unleash Admin API client
├── tools/
│   ├── types.ts                 # Shared ToolDefinition type
│   ├── createFlag.ts            # create_flag tool
│   ├── evaluateChange.ts        # evaluate_change tool
│   ├── detectFlag.ts            # detect_flag tool
│   ├── wrapChange.ts            # wrap_change tool
│   ├── cleanupFlag.ts           # cleanup_flag tool
│   ├── setFlagRollout.ts        # set_flag_rollout tool
│   ├── getFlagState.ts          # get_flag_state tool
│   ├── toggleFlagEnvironment.ts # toggle_flag_environment tool
│   └── removeFlagStrategy.ts    # remove_flag_strategy tool
├── resources/
│   └── unleashResources.ts      # MCP resource handlers (projects, flags)
├── prompts/
│   └── promptBuilder.ts         # Markdown formatting utilities
├── evaluation/
│   ├── riskPatterns.ts          # Risk assessment patterns
│   └── flagDetectionPatterns.ts # Parent flag detection patterns
├── detection/
│   ├── flagDiscovery.ts         # Flag discovery strategies
│   └── flagScoring.ts           # Scoring and ranking logic
├── knowledge/
│   └── unleashBestPractices.ts  # Best practices knowledge base
├── templates/
│   ├── languages.ts             # Language detection and metadata
│   ├── wrapperTemplates.ts      # Code wrapping templates
│   ├── searchGuidance.ts        # Pattern search instructions
│   └── cleanupGuidance.ts       # Flag cleanup instructions
└── utils/
    ├── errors.ts                # Error normalization
    ├── streaming.ts             # Progress notifications
    └── stdioLogging.ts          # Stdio protocol traffic logging

Tasarım ilkeleri

  • İnce yüzey alanı: Yalnızca temel yetenekler için gereken uç noktalar.
  • Amaca yönelik: Her modül belirli, iyi tanımlanmış bir amaca hizmet eder.
  • Açık doğrulama: Zod şemaları, API çağrılarından önce tüm girdileri doğrular.
  • Hata normalizasyonu: Tüm hatalar {code, message, hint} biçimine dönüştürülür.
  • İlerleme akışı: Uzun süren işlemler görünürlük sağlar.
  • En iyi uygulama entegrasyonu: Unleash belgelerinden gelen rehberlik, araç açıklamalarına gömülüdür.

Yapılandırma

Bu bölüm, tüm yapılandırma seçenekleri için hızlı bir başvuru sağlar.

Ortam değişkenleri:

  • UNLEASH_BASE_URL: Unleash örneğinizin URL'si (zorunlu). Hem https://your-instance.getunleash.io hem de https://your-instance.getunleash.io/api kabul edilir — sunucu, varsa sondaki /api öğesini normalleştirir, böylece çoğu Unleash SDK'sının beklediği aynı değeri yapıştırabilirsiniz.
  • UNLEASH_PAT: Kişisel erişim belirteci (zorunlu).
  • UNLEASH_DEFAULT_PROJECT: MCP'nin kullanması gereken varsayılan proje kimliği (isteğe bağlı).

CLI bayrakları:

  • --dry-run: Gerçek API çağrıları yapmadan işlemleri simüle eder.
  • --log-level: Günlük ayrıntı düzeyini ayarlar (debug, info, warn, error).

En iyi uygulamalar

Bu sunucu, resmi belgelerdeki Unleash en iyi uygulamalarını teşvik eder:

Bayrak yaşam döngüsü

  1. Amaçla oluşturun: Amacı belirtmek için doğru bayrak türünü seçin.
  2. Açıkça belgeleyin: "Neden"i açıklayan açıklamalar yazın.
  3. Temizlik için planlayın: Özellik bayrakları geçicidir; kaldırılmalarını planlayın.
  4. Kullanımı izleyin: Önemli bayraklar için izlenim verilerini etkinleştirin.

Bayrak türleri

  • Sürüm bayrakları: Kademeli özellik dağıtımları için (tam dağıtımdan sonra kaldırın).
  • Deney bayrakları: A/B testleri için (analizden sonra kaldırın).
  • Operasyonel bayraklar: Sistem davranışı için (daha uzun ömürlü, periyodik olarak gözden geçirin).
  • Acil durum anahtarları: Acil durum kontrolleri için (özellik stabil olana kadar koruyun).
  • İzin bayrakları: Erişim kontrolü için (daha uzun ömürlü, izinleri gözden geçirin).

Adlandırma kuralları

  • kebab-case kullanın: new-checkout-flow
  • Açıklayıcı olun: enable-ai-recommendations, flag1 değil.
  • Gerektiğinde kapsam ekleyin: mobile-push-notifications.

API referansı

Bu sunucu Unleash Yönetim API'sini kullanır. Tam API belgeleri için bkz.:

Kullanılan uç noktalar

  • GET /api/admin/projects - Projeleri listele
  • GET /api/admin/projects/{projectId}/features - Özellik bayraklarını listele
  • POST /api/admin/projects/{projectId}/features - Özellik bayrağı oluştur
  • GET /api/admin/projects/{projectId}/features/{featureName} - Bayrak ayrıntılarını al
  • POST /api/admin/projects/{projectId}/features/{featureName}/environments/{environment}/strategies - Dağıtım stratejisi ekle
  • DELETE /api/admin/projects/{projectId}/features/{featureName}/environments/{environment}/strategies/{strategyId} - Stratejiyi kaldır
  • POST /api/admin/projects/{projectId}/features/{featureName}/environments/{environment}/on - Bayrağı etkinleştir
  • POST /api/admin/projects/{projectId}/features/{featureName}/environments/{environment}/off - Bayrağı devre dışı bırak

Sorun giderme

Yapılandırma sorunları

Hata: "UNLEASH_BASE_URL must be a valid URL": Temel URL'nizin protokol dahil tam olduğundan emin olun. Örneğin, https://app.unleash-hosted.com/instance. Sondaki eğik çizgileri kaldırın.

Hata: "UNLEASH_PAT is required": .env dosyanızın var olduğunu ve UNLEASH_PAT={{your-personal-access-token}} içerdiğini kontrol edin. Belirtecin Unleash'te geçerli olduğunu doğrulayın.

API sorunları

Hata: "HTTP_401": Kişisel erişim belirteciniz geçersiz veya süresi dolmuş olabilir. Profil > Profil ayarlarını görüntüle > Kişisel API belirteçleri > Yeni belirteç altından yeni bir belirteç oluşturun.

Hata: "HTTP_403": Belirtecinizin bu projede bayrak oluşturma izni yok. Unleash'te rolünüzü ve izinlerinizi gözden geçirin.

Hata: "HTTP_404": Proje kimliği mevcut değil. Unleash Yönetim Arayüzü'nde proje kimliğini doğrulayın.

Hata: "HTTP_409": Bu ada sahip bir bayrak projede zaten mevcut. Farklı bir ad kullanın veya mevcut bayrağı yeniden kullanın.

Lisans

MIT

Katkıda bulunma

Bu, odaklanmış bir kapsama sahip amaca yönelik bir projedir. Katkılar şunları yapmalıdır:

  • Mevcut araç yüzeyi ve MCP kaynak modeliyle uyumlu olmalıdır.
  • İnce, amaca yönelik mimariyi korumalıdır.
  • Unleash en iyi uygulamalarını izlemelidir.
  • Net belgeler içermelidir.