Unleash

resmi

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

Unleash MCP ile neler yapabilirsiniz?

  • Özellik bayrakları oluşturun — Asistanın create_flag ile yeni bir bayrak oluşturmasını isteyin; ad, tür ve açıklama belirterek.
  • Bir değişikliğin bayrak gerektirip gerektirmediğini değerlendirin — Kodu değiştirmeden önce riski değerlendirmek ve bir öneri almak için evaluate_change kullanın.
  • Mükerrerleri önlemek için mevcut bayrakları tespit edin — Kullanım durumunuzu zaten kapsayan bayraklar için kod tabanında arama yapmak üzere detect_flag çalıştırın.
  • Kod sarma yönlendirmesi alın — Bir bayrak oluşturduktan sonra, bunu uygulamak için dile özgü kod parçacıkları oluşturmak üzere wrap_change kullanın.
  • Kademeli dağıtımları yapılandırın — Bir bayrağı etkinleştirmeden önce set_flag_rollout ile dağıtım yüzdesini ve yapışkanlığı ayarlayın.
  • Bayrakları değiştirin ve stratejileri yönetintoggle_flag_environment ile bayrakları etkinleştirin veya devre dışı bırakın, remove_flag_strategy ile stratejileri kaldırın ve get_flag_state ile durumu inceleyin.

Dokümantasyon

Unleash MCP Sunucusu

Model Context Protocol (MCP) için, Unleash özellik bayraklarını yönetmek üzere amaca yönelik olarak geliştirilmiş bir sunucu. 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 kanalımıza katılın veya GitHub'da bir konu açın.

Genel Bakış

Bu MCP sunucusu, Unleash Admin API ile entegre olan araçlar sunarak yapay zeka kodlama asistanlarının şunları yapmasına olanak tanır:

  • Özellik bayrakları oluşturma: Uygun doğrulama ve tipleme ile.
  • Mevcut bayrakları tespit etme: Tekrarları önlemek veya yeniden kullanımı teşvik etmek için.
  • Değişiklikleri değerlendirme: Bir özellik bayrağına ne zaman ihtiyaç duyulduğuna karar vermek için.
  • İlerlemeyi akış olarak izleme: İşlemler sırasında görünürlük sağlamak için.
  • Hataları zarifçe ele alma: Yararlı ipuçlarıyla birlikte.
  • En iyi uygulamaları takip etme: Unleash dokümantasyonundan yararlanarak.

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: Tekrarları önlemek için mevcut özellik bayraklarını keşfeder.
  • wrap_change: Bir değişikliğin özellik bayrağına nasıl sarılacağı konusunda rehberlik sağlar.
  • set_flag_rollout: Bir özellik bayrağı için kullanıma sunma stratejilerini yapılandırır (bayrağı etkinleştirmez).
  • get_flag_state: Bir özellik bayrağının meta verilerini ve etkinleştirme stratejilerini gösterir.
  • list_flags: Bir projedeki tüm özellik bayraklarını, isteğe bağlı sayfalama ve sıralama düzeniyle listeler.
  • list_projects: Yapılandırılan token için mevcut Unleash projelerini, isteğe bağlı sayfalama ile listeler.
  • toggle_flag_environment: Bir ortamda bir özellik bayrağını etkinleştirir veya devre dışı bırakır.
  • remove_flag_strategy: Bir ortamdan bir ö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 yapay zeka asistanı için temel iş akışı şu şekilde tasarlanmıştır:

  1. evaluate_change: Önce, bir bayrağa ihtiyaç olup olmadığını görmek için bir kod değişikliğini değerlendirin.
  2. detect_flag: Bu, yinelenen bayraklar oluşturmayı önlemek için genellikle 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 üzeri
  • 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 izinlerine sahip bir kişisel erişim token'ı

Başlangıç

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 kurulumu takip edebilir, MCP'yi npx kullanarak bağımsız bir süreç olarak çalıştırabilir veya yerel geliştirme kurulumunu kullanabilirsiniz.

Ajan kurulumu

MCP sunucusunu doğrudan Claude Code veya Codex'e ekleyebilirsiniz. Ajan yapılandırmaları yola özeldir. Aşağıdaki komutu, MCP'yi kullanmak istediğiniz projenin kök dizininden ç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

Uzak ajan kurulumu (deneysel)

MCP sunucusunu yerel olarak çalıştırmak yerine, doğrudan Unleash örneğinizin yerleşik uzak MCP sunucusuna HTTP üzerinden bağlanabilirsiniz. Bu, Akışkan HTTP aktarımını kullanır — yerel bir sürece gerek yoktur.

Not: Uzak 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'te oturum açmanızı sağlar ve otomatik olarak kısa ömürlü bir PAT sağlar. Manuel token 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 oturum açmanız için tarayıcınızı otomatik olarak açacaktır. Unleash ile kimlik doğrulaması yapıldı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 Token'ı (PAT)

Zaten bir PAT'iniz olduğunda veya başsız/etkileşimsiz erişime ihtiyaç duyduğunuzda (CI ardışık düzenleri, paylaşılan geliştirici ortamları, OAuth'u desteklemeyen istemciler) bu yöntemi kullanın.

PAT oluşturmak için: Unleash örneğinizde oturum açın, Profil > Kişisel Erişim Token'ları bölümüne gidin ve yeni bir token 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'i doğrudan göndererek OAuth akışını tamamen atlar.

npx ile Hızlı Başlangıç

Depoyu klonlamadan MCP sunucusunu bağımsız bir süreç olarak npx kullanarak çalıştırabilirsiniz. Yapılandırmayı, komutu çalıştırdığınız dizindeki ortam değişkenleri veya 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 --log-level debug

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

Yerel geliştirme kurulumu

Projeyi yerel geliştirme için ayarlamak üzere bu adımları izleyin.

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

Depoyu klonlayın ve pnpm kullanarak bağımlılıkları yükleyin. Corepack herkesi aynı pnpm sürümünde tutar:

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. Doğrudan Claude veya Codex'ten geliştirme modunda çalıştırın

npm run çıktısından ve tsx watch banner'larından kaçının çünkü stdout'a yazılan herhangi bir ekstra çıktı 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) Doğrudan TypeScript 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'i doğrudan çalıştırır; derleme yapmaktan 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'a eklenmiştir.

Günlük kontrolü

  • LOG_LEVEL (tercih edilir): uygulama günlüğü ayrıntı düzeyini kontrol eder (debug, info, warn, error). Ayarlanmadığında varsayılan error olur.
  • --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ı normal şekilde stdout üzerinden akmaya devam eder.

İ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, herhangi bir sunucu tarafı değişikliği olmadan "hangi yapay zeka aracının bu bayrağı oluşturduğunu veya değiştirdiğini" 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 amacı, parametreleri ve çıktısı dahil olmak üzere ayrıntılı olarak açıklar.

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ğuna zaten karar verdiğinizde (örneğin, evaluate_change çalıştırdıktan sonra) ve doğru tip 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ğı tipi.
    • release: Kullanıcılara kademeli özellik sunumları.
    • experiment: A/B testleri ve deneyler.
    • operational: Sistem davranışı ve operasyonel geçişler.
    • kill-switch: Acil durum kapatmaları veya devre kesiciler.
    • permission: Kullanıcı rollerine veya yetkilerine göre özellik erişimini kontrol eder.
  • description (gerekli): Bayrağın neyi kontrol ettiğinin ve neden var olduğunun açık açıklaması.
  • projectId (isteğe bağlı): Hedef proje (varsayılan UNLEASH_DEFAULT_PROJECT).
  • impressionData (isteğe bağlı): Analitik takibini etkinleştir (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ç, yeni özellik bayrağının Unleash Admin UI'daki 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ğı arkasında olup olmaması gerektiğini değerlendirir. Değişikliğin yapısını, bağlamını ve potansiyel riskini inceler ve bir açıklama ve sonraki adımlarla birlikte bir öneri döndürür.

Ne zaman kullanılır

Bir özelliğin veya değişikliğin başlangıcında, çalışmanın bir özellik bayrağı gerektirip gerektirmediğini anlamak istediğinizde evaluate_change kullanın. Bu araç, hangi bayrak tipini kullanacağınızdan emin olmadığınızda veya kullanıma sunma planlaması konusunda 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 zaten mevcut bayraklar tarafından korunup korunmadığını kontrol eder.
  • Risk değerlendirmesi: Riskli işlemleri belirlemek için kod desenlerini analiz eder.
  • Kod tipi 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: Ne yapılması gerektiğine dair özel talimatlar sağlar.

evaluate_change bir bayrağa ihtiyaç olduğunu belirlediğinde, şunlar için 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 desenleri takip ederek sarılmış kodu uygulayın.

Değerlendirme süreci

Araç net bir değerlendirme sürecini takip eder:

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 dilden bağımsız desenler 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 toplanır. Toplam bir risk seviyesine eşlenir:

  • 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 ve sağlanan daha fazla bağlamla artan bir confidence puanı (0-1) içerir.

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

Kategori başına anahtar kelimeler, dosya globları, kod desenleri ve gerekçe dahil olmak üzere tam desen tanımları src/evaluation/riskPatterns.ts içindedir.

Üst bayrak tespiti

Araç, diller arasında aşağıdakiler gibi yaygın desenleri arar:

  • Koşullar: if (isEnabled('flag')), if client.is_enabled('flag'):
  • Atamalar: const enabled = useFlag('flag')
  • Kancalar: const enabled = useFlag('flag'){enabled && <Component />}
  • Koruyucular: if (!isEnabled('flag')) return;
  • Sarı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): low, medium, high veya critical, kullanıcı tarafından değerlendirildiği şekilde.
  • codeContext (string): Üst flag tespiti için çevreleyen kod.

Kullanım örneği

Ajan istemi

Ajanı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ı

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

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

Flag tespit et

detect_flag aracı, kod tabanındaki mevcut özellik flag'lerini bulur, böylece yinelenenler oluşturmak yerine onları yeniden kullanabilirsiniz. Bu araç, evaluate_change iş akışına otomatik olarak entegre edilmiştir ancak manuel olarak da kullanılabilir.

Ne zaman kullanılır

Bu aracı, yeni bir özellik flag'i oluşturmadan önce veya kod değerlendirmesi sırasında, kullanım durumunuzu zaten kapsayabilecek mevcut flag'leri kontrol etmek için kullanın. Bu, flag tekrarını önlemeye yardımcı olur.

Nasıl çalışır

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

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

Ardından araç bir puanlama süreci 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; muhtemelen yeni bir flag oluşturun.

Parametreler

  • description (gerekli): 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ı): Flag'leri taramak için yakındaki kod.

Kullanım örneği

Ajan istemi

Bir flag oluşturmadan önce mevcut flag'leri kontrol edin:

Use detect_flag with description "payment processing with Stripe"

Değerlendirmede 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 flag bulunup bulunmadığını belirten bir JSON nesnesi döndürür. flagFound true ise, flag'in 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 flag'leriyle sarmalamak için dile özgü kod parçacıkları ve rehberlik üretir. LLM'lerin ve geliştiricilerin kod tabanındaki mevcut kalıpları takip etmelerine ve flag'leri doğru kullanmalarına yardımcı olur.

Ne zaman kullanılır

Bu aracı, bir özellik flag'i oluşturduktan sonra (create_flag ile) ve bunu kodunuzda uygulamanız gerektiğinde kullanın. Özellikle mevcut kod tabanı kalıplarını takip ettiğinizden emin olmak istediğinizde veya çerçeveye özgü örneklere (ör. React, Django) ihtiyaç duyduğunuzda kullanışlıdır.

Nasıl çalışır

Bu araç, evaluate_changecreate_flagwrap_change iş akışındaki son adımdır.

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

  1. Arama talimatları: grep kullanarak kod tabanınızda mevcut flag kalıplarını bulmak için adım adım kılavuz.
  2. Kalıp tespiti: 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: Hiçbir kalıp bulunamazsa yedek kod parçacıkları.
  4. Çerçeveye özgü örnekler: React, Express, Django ve diğerleri için özel kalıplar.
  5. Birden çok kalıp: If-blokları, guard clause'ları, hook'lar, dekoratörler, middleware ve daha fazlası.

Desteklenen diller ve çerçeveler:

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

Parametreler

  • flagName (gerekli): Kodun sarmalanacağı özellik flag adı. Örneğin: "new-checkout-flow" veya "stripe-integration".
  • language (isteğe bağlı): Programlama dili (sağlanmazsa fileName'den otomatik tespit edilir). Desteklenen: typescript, javascript, python, go, ruby, php, csharp, java, rust
  • fileName (isteğe bağlı): Değiştirilen dosya adı (dili tespit etmeye yardımcı olur), Örneğin: "checkout.ts", "payment.py" veya "handler.go".
  • codeContext (isteğe bağlı): Mevcut kalıpları tespit etmeye yardımcı olacak çevreleyen kod.
  • frameworkHint (isteğe bağlı): Özel şablonlar için çerçeve. Örneğin, "React", "Express", "Django", "Rails" veya "Spring Boot".

Kullanım örneği

Ajan 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 sarmalayacağı 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.]

Flag kullanıma sunmayı ayarla

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

Ne zaman kullanılır

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

Parametreler

  • featureName (gerekli): Özellik flag adı.
  • environment (gerekli): Hedef ortam (örneğin, "production", "development").
  • rolloutPercentage (gerekli): Özelliği alacak trafik 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ştur (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üzeyinde varyantların listesi.

Kullanım örneği

Ajan 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üzde, Unleash Yönetici Arayüzü'ndeki flag'e bir bağlantı, Yönetici API stratejileri URL'si ve flag için bir MCP kaynak bağlantısı ile bir onay döndürür.

Flag durumunu al

get_flag_state aracı, Unleash Yönetici API'sinden bir özellik flag'inin mevcut meta verilerini ve ortam stratejilerini getirir. Flag'in türünü, etkin/arşivlenmiş durumunu, izlenim verisi ayarını ve ortam başına aktif stratejilerin ve varyantların bir özetini döndürür.

Ne zaman kullanılır

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

Parametreler

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

Kullanım örneği

Ajan 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ı

Flag'in bir metin özetini (tür, etkin/arşivlenmiş/izlenim-verisi, proje, strateji sayılarıyla ortam özetleri) ve UI ve 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.

Flag'leri listele

list_flags aracı, bir projedeki özellik flag'lerini numaralandırır ve sayfalandırma ve sıralama düzeni ile yapılandırılmış bir envanter döndürür. Aktif ve arşivlenmiş flag'ler 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) ile ve bir kez archived: true ile çağırın.

Ne zaman kullanılır

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

Parametreler

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

Kullanım örneği

Ajan 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 dizisini (her biri ad, tür, proje, arşivlenmiş durumu ve bağlantılar içerir) içeren bir metin özeti artı yapılandırılmış içerik döndürür. Büyük projelerde sayfalandırma için nextOffset kullanın.

Projeleri listele

list_projects aracı, yapılandırılan token için kullanılabilir Unleash projelerini sayfalandırma ve sıralama düzeni ile numaralandırır.

Ne zaman kullanılır

Bu aracı, hedef proje bilinmediğinde veya bir ajanın flag'leri listelemek veya oluşturmak için bir proje seçmesi gerektiğinde kullanın. unleash://projects kaynağının ajan 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 yeni önce).
  • offset (isteğe bağlı): Sayfalandırma için atlanacak proje sayısı (varsayılan: 0).

Kullanım örneği

Ajan 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 dizisini (her biri kimlik, ad, açıklama, mod, oluşturma zamanı ve URL içerir) içeren bir metin özeti artı yapılandırılmış içerik döndürür.

Flag ortamını değiştir

toggle_flag_environment aracı, belirli bir ortamda bir özellik flag'ini etkinleştirir veya devre dışı bırakır. Kademeli kullanıma sunmalar için, etkinleştirmeden önce set_flag_rollout ile bir strateji yapılandırın.

Ne zaman kullanılır

Bu aracı, bir kullanıma sunma stratejisi yapılandırdıktan sonra bir flag'i açmak veya bir olay sırasında veya bir kullanıma sunmayı tamamladıktan sonra bir flag'i devre dışı bırakmak için 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

Ajan istemi

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önetici Arayüzü ile Yönetici 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 aracını kullanın.

Ne zaman kullanılır

Bu aracı, eski stratejileri temizlemek veya mevcut bir stratejiyi kaldırıp set_flag_rollout ile yenisini 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 (get_flag_state aracılığıyla bulun).
  • projectId (isteğe bağlı): Proje kimliği (varsayılan: UNLEASH_DEFAULT_PROJECT).

Kullanım örneği

Ajan istemi

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önetici Arayüzü ile Yönetici API'sindeki bayrağa bağlantıları döndürür.

Bayrağı temizle

cleanup_flag aracı, istenen kod yolunu korurken özellik bayrağı kodunu kod tabanından güvenli bir şekilde 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ç kalmadığında.
  • Deneysel bir özelliği kullanımdan kaldırırken (devre dışı yolu koruyun).
  • Artık gerekli olmayan bir acil durum anahtarını kaldırırken.
  • Eski bayrakların teknik borç temizliği sırasında.

Nasıl çalışır

Araç, LLM'ye şu adımlarda rehberlik eden 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, guard cümleleri, kancalar, dekoratörler, ara yazılımlar).
  3. Doğru kod yolunu koruyarak bayrak kontrollerini kaldırma.
  4. Dile özgü rehberlikle kullanılmayan içe aktarmaları temizleme.
  5. Temizlik sonrası arama ve test adımlarıyla değişiklikleri doğrulama.

Eğer preservePath sağlanmazsa, araç devam etmeden önce kullanıcıya hangi yolun korunacağını sormak için talimatlar 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ı): Bayrak açık kod yolunu korumak için "enabled" (tamamlanmış dağıtımlar için tipik) veya bayrak kapalı yolunu korumak için "disabled" (kaldırılan deneyler için). Atlanırsa, araç kullanıcıya sormanızı ister.
  • files (isteğe bağlı): Temizlenecek belirli dosyalar. Atlanırsa, tüm kod tabanını arar.
  • 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

Ajan istemi

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 ö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ıralı (en yeni önce).
unleash://projects/{projectId}/feature-flags{?limit,order,offset}Bir projedeki bayrakları listele. Varsayılan sayfa boyutu: 50, alfabetik sıralı.
unleash://projects/{projectId}/feature-flags/{flagName}Tekil özellik bayrağı meta verisi.

İ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 kontrollüdür, bu nedenle birçok istemci bunları yalnızca kullanıcı odaklı arayüz üzerinden (örneğin #-bahsetmeleri) sunar ve ajanın kendi başına resources/read çağırmasına izin vermez. Bir ajanı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 izler.

Örnek kaynak okuma

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

ecommerce projesindeki ilk 10 özellik bayrağını, alfabetik sıralı ve sayfalama meta verisiyle döndürür.

Mimari

Sunucu, odaklı 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: Tüm girdiler API çağrılarından önce Zod şemalarıyla doğrulanır.
  • Hata normalleştirme: Tüm hatalar {code, message, hint} formatına 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 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 örnek URL'niz (zorunlu). Hem https://your-instance.getunleash.io hem de https://your-instance.getunleash.io/api kabul edilir — sunucu, varsa sondaki /api işaretini kaldırır, böylece çoğu Unleash SDK'sının beklediği 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 et.
  • --log-level: Günlük ayrıntı düzeyini ayarla (debug, info, warn, error).

En iyi uygulamalar

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

Bayrak yaşam döngüsü

  1. Amaçla oluştur: Amacı belirtmek için doğru bayrak türünü seçin.
  2. Açıkça belgelendirin: "Neden"i açıklayan açıklamalar yazın.
  3. Temizlik için plan yapın: Özellik bayrakları geçicidir; kaldırılmalarını planlayın.
  4. Kullanımı izleyin: Önemli bayraklar için izlenim verisini 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 kontrol için (özellik kararlı 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 değil flag1.
  • Gerektiğinde kapsam ekleyin: mobile-push-notifications.

API başvurusu

Bu sunucu, Unleash Yönetici API'sini kullanır. Tam API belgeleri için bakınız:

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 detayları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 geçerli bir URL olmalı": Temel URL'nizin protokol dahil eksiksiz olduğundan emin olun. Örneğin, https://app.unleash-hosted.com/instance. Sondaki eğik çizgileri kaldırın.

Hata: "UNLEASH_PAT gerekli": .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'teki rolünüzü ve izinlerinizi gözden geçirin.

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

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

Lisans

MIT

Katkıda bulunma

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

  • Mevcut araç yüzeyi ve MCP kaynak modeliyle uyumlu olmalı.
  • İnce, amaca yönelik mimariyi korumalı.
  • Unleash en iyi uygulamalarını takip etmeli.
  • Açık belgelendirme içermeli.