Unleash
resmiUnleash ö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_flagkullanı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_changeisteyin. - Dağıtımı ve durumu yönetin —
set_flag_rolloutyüzdelerini yapılandırın, ardından bayrakları etkinleştirmek veya devre dışı bırakmak içintoggle_flag_environmentkullanın. - Bayrakları inceleyin ve listeleyin — Bayrak meta verilerini, stratejilerini ve proje envanterlerini gözden geçirmek için
get_flag_stateveyalist_flagskullanı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:
evaluate_change: Önce, bir bayrağın gerekli olup olmadığını görmek için bir kod değişikliğini değerlendirin.detect_flag: Bu genellikle kopya bayrakların oluşturulmasını önlemek içinevaluate_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 ü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.
- 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
- 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 tsxsessizdir (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.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 edilmiştir.
Günlük kontrolü
LOG_LEVEL(tercih edilen): uygulama günlüğü ayrıntı düzeyini kontrol eder (debug,info,warn,error). Ayarlanmadığındaerrorvarsayılanına döner.--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ı 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ılanUNLEASH_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:
- Ö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 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ğerlendirilenlow,medium,highveyacritical.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:
- Arama talimatları: Kod tabanınızda grep kullanarak mevcut bayrak kalıplarını bulmak için adım adım kılavuz.
- 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).
- Varsayılan şablonlar: Kalıp bulunamazsa yedek kod parçacıkları.
- Çerçeveye özgü örnekler: React, Express, Django ve diğerleri için özelleştirilmiş kalıplar.
- 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ğlanmazsafileName'ten otomatik algılanır). Desteklenenler:typescript,javascript,python,go,ruby,php,csharp,java,rustfileName(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ı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şturun (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ü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ılanUNLEASH_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ılanUNLEASH_DEFAULT_PROJECT; tek bir proje mevcut olduğunda otomatik çözümlenir).archived(isteğe bağlı): Etkin bayraklar yerine arşivlenmiş bayrakları listelemek içintrue. Varsayılanfalse. 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,ascveyadesc(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,ascveyadesc(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çintrue, devre dışı bırakmak içinfalse.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 (bunuget_flag_stateile 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:
- grep desenlerini kullanarak bayrağın tüm geçtiği yerleri bulma.
- Kullanım desenlerini belirleme (if-else blokları, üçlü ifadeler, koruma cümleleri, hook'lar, dekoratörler, ara katmanlar).
- Doğru kod yolunu koruyarak bayrak kontrollerini kaldırma.
- Dile özgü rehberlikle kullanılmayan içe aktarımları temizleme.
- 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ğlanmazsafilesü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 şablonu | Açı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ınresources/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ürenlist_projectsvelist_flagsaraçlarını kullanın.detect_flagenvanter 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). Hemhttps://your-instance.getunleash.iohem dehttps://your-instance.getunleash.io/apikabul 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ü
- Amaçla oluşturun: Amacı belirtmek için doğru bayrak türünü seçin.
- Açıkça belgeleyin: "Neden"i açıklayan açıklamalar yazın.
- Temizlik için planlayın: Özellik bayrakları geçicidir; kaldırılmalarını planlayın.
- 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,flag1değ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 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 ayrıntıları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 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.