Unleash
resmiUnleash ö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_flagile 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_changekullanı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_changekullanın. - Kademeli dağıtımları yapılandırın — Bir bayrağı etkinleştirmeden önce
set_flag_rolloutile dağıtım yüzdesini ve yapışkanlığı ayarlayın. - Bayrakları değiştirin ve stratejileri yönetin —
toggle_flag_environmentile bayrakları etkinleştirin veya devre dışı bırakın,remove_flag_strategyile stratejileri kaldırın veget_flag_stateile 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:
evaluate_change: Önce, bir bayrağa ihtiyaç olup olmadığını görmek için bir kod değişikliğini değerlendirin.detect_flag: Bu, yinelenen bayraklar oluşturmayı önlemek için genellikleevaluate_changetarafından otomatik olarak çağrılır.create_flag: Yeni bir bayrak gerekiyorsa, bu araç onu Unleash'te oluşturur.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.
- 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
- 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 tsxsessizdir (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.jsen güvenli seçimdir; ajan komutu sabit kalırken değişikliklerde yeniden derlemek içinnpm run build:watchile 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ılanerrorolur.--log-levelCLI bayrağı: tek seferlik bir değişiklik istediğinizdeLOG_LEVELiç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ılanUNLEASH_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:
- Özellik bayrağını oluşturmak için
create_flagaracını çağırın. - Dile özgü kod sarma rehberliği almak için
wrap_changearacını çağırın. - 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,highveyacritical, 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_change → create_flag → wrap_change iş akışındaki son adımdır.
Araç, yanıtında aşağıdaki rehberliği sağlar:
- Arama talimatları: grep kullanarak kod tabanınızda mevcut flag kalıplarını bulmak için adım adım kılavuz.
- 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).
- Varsayılan şablonlar: Hiçbir kalıp bulunamazsa yedek kod parçacıkları.
- Çerçeveye özgü örnekler: React, Express, Django ve diğerleri için özel kalıplar.
- 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ğlanmazsafileName'den otomatik tespit edilir). Desteklenen:typescript,javascript,python,go,ruby,php,csharp,java,rustfileName(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ılanUNLEASH_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 biriname,weight(0-1000), isteğe bağlıweightType("variable"veya"fix"),stickinessvepayload({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ılanUNLEASH_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ılanUNLEASH_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çintrue. Varsayılanfalse'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,ascveyadesc(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,ascveyadesc(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çintrue, devre dışı bırakmak içinfalse.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_statearacı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:
- grep desenlerini kullanarak bayrağın tüm geçtiği yerleri bulma.
- Kullanım desenlerini belirleme (if-else blokları, üçlü ifadeler, guard cümleleri, kancalar, dekoratörler, ara yazılımlar).
- Doğru kod yolunu koruyarak bayrak kontrollerini kaldırma.
- Dile özgü rehberlikle kullanılmayan içe aktarmaları temizleme.
- 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ğlanmazsafilesü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 şablonu | Açı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şınaresources/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ürenlist_projectsvelist_flagsaraçlarını kullanın.detect_flagenvanter 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). Hemhttps://your-instance.getunleash.iohem dehttps://your-instance.getunleash.io/apikabul edilir — sunucu, varsa sondaki/apiiş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ü
- Amaçla oluştur: Amacı belirtmek için doğru bayrak türünü seçin.
- Açıkça belgelendirin: "Neden"i açıklayan açıklamalar yazın.
- Temizlik için plan yapın: Özellik bayrakları geçicidir; kaldırılmalarını planlayın.
- 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-recommendationsdeğilflag1. - 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 listeleGET /api/admin/projects/{projectId}/features- Özellik bayraklarını listelePOST /api/admin/projects/{projectId}/features- Özellik bayrağı oluşturGET /api/admin/projects/{projectId}/features/{featureName}- Bayrak detaylarını alPOST /api/admin/projects/{projectId}/features/{featureName}/environments/{environment}/strategies- Dağıtım stratejisi ekleDELETE /api/admin/projects/{projectId}/features/{featureName}/environments/{environment}/strategies/{strategyId}- Stratejiyi kaldırPOST /api/admin/projects/{projectId}/features/{featureName}/environments/{environment}/on- Bayrağı etkinleştirPOST /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.