mcpField
P
projects

projects

github.com/launchdarkly開発281.8k 回インストール1 日前に更新
リポジトリ

projects について

コードベースに LaunchDarkly のプロジェクト管理を導入するためのスキルです。コードベースの調査から実装方法の選択、統合、動作確認までを案内します。

主な機能

  1. 01技術スタックと既存パターンの調査
  2. 02プロジェクト設定方法の選択
  3. 03LaunchDarkly プロジェクトの作成・利用
  4. 04SDK キーの設定と管理
  5. 05プロジェクトと SDK 統合の検証

活用シーン

  1. 01新しいコードベースへの LaunchDarkly 導入
  2. 02サービスや地域別のプロジェクト編成
  3. 03プロジェクト作成スクリプトや管理ツールの構築

MCP 対応

LaunchDarkly MCP サーバーのツールでプロジェクトの作成、確認、一覧表示を行います。MCP ツールはサーバー側 SDK キーを返さず、README では別の取得方法を説明しています。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/launchdarkly/ai-tooling --skill projects

インストール後、Claude Code で/projectsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
references/
admin-tooling.md
env-config.md
go-setup.md
iac-automation.md
multi-language-setup.md
nodejs-setup.md
project-cloning.md
python-setup.md
quick-start.md

詳細

LaunchDarkly プロジェクトのセットアップ

このスキルを使って、コードベースに LaunchDarkly のプロジェクト管理を設定します。コードベースを調査して、技術スタックやパターンを把握し、適切な方法を判断し、参考資料から適切な実装方法を選んでセットアップを実行し、動作を検証します。

前提条件

  • 環境に設定済みのリモートホスト型 LaunchDarkly MCP サーバー
  • プロジェクトを作成するコード(スクリプト、IaC、管理ツール)を構築する場合に限り、projects:write 権限を持つ API アクセストークン

基本原則

  1. まず理解する:コードベースを調査して、技術スタックやパターンを把握します。
  2. 最適な方法を選ぶ:アーキテクチャに合った方法を選択します。
  3. 規約に従う:既存のコードスタイルと構成を尊重します。
  4. 統合を検証する:セットアップが機能することを確認します。エージェントがチェックを実行し、結果を報告します。

API アクセス

プロジェクトを自分で作成または確認する場合は、LaunchDarkly MCP サーバーのツールである create-project、get-project、list-projects を使用します。これらは OAuth で認証されるため、トークンは不要です。

MCP ツールが返すのはクライアント側の ID とモバイルキーのみで、サーバー側の SDK キーは返しません。アプリに必要な SDK キーを取得するには、Project settings → Environments からコピーするようユーザーに依頼します。または、希望する場合は、このセッション用の API アクセストークンを貼り付けてもらい、REST API 経由で取得します(クイックスタート)。環境変数、.env ファイル、エージェント/MCP 設定ファイルから認証情報を探してはいけません。

参考ガイドでは、エージェントなしで実行するコードを構築するため、REST API を呼び出しています。

プロジェクトとは?

プロジェクトは LaunchDarkly の最上位の組織コンテナーで、次のものを含みます。

  • すべての設定
  • フィーチャーフラグとセグメント
  • 複数の環境(Production と Test がデフォルトで作成されます)

プロジェクトは、それぞれ独立した設定を必要とする別個のアプリケーション、サービス、またはチームと考えてください。

プロジェクトのセットアップワークフロー

ステップ 1:コードベースを調査する

実装を始める前に、既存のアーキテクチャを把握します。

  1. 技術スタックを特定する:

    • 使用している言語は何ですか?(Python、Node.js、Go、Java など)
    • 使用しているフレームワークは何ですか?(FastAPI、Express、Spring Boot など)
    • 既存の LaunchDarkly 統合はありますか?
  2. 環境管理を確認する:

    • 環境変数はどのように保存されていますか?(.env ファイル、シークレットマネージャー、設定ファイル)
    • 設定はどこで読み込まれますか?(起動スクリプト、設定モジュール)
    • 既存の LaunchDarkly SDK キーはありますか?
  3. パターンを調べる:

    • 既存の API クライアントやサービスモジュールはありますか?
    • 外部 API との統合は通常どのように行われていますか?
    • CLI、スクリプトディレクトリ、または管理ツールはありますか?
  4. ユースケースを把握する:

    • 新しいプロジェクトをセットアップしていますか?
    • 既存の LaunchDarkly 統合に追加していますか?
    • 複数サービスのアーキテクチャの一部ですか?
    • リージョンやチームをまたいでプロジェクトを複製する必要がありますか?
ステップ 2:状況を評価する

調査結果に基づいて、適切な方法を判断します。

シナリオ推奨される方法
新規プロジェクトで、LaunchDarkly 統合がないクイックセットアップ - create-project でプロジェクトを作成し、SDK キーを保存する
既存の LaunchDarkly の使用既存環境への追加 - 新しいプロジェクトを作成するか、既存のプロジェクトを使用する
複数のサービス/マイクロサービスマルチプロジェクト - サービスごとにプロジェクトを作成する
マルチリージョンまたはマルチテナントプロジェクトの複製 - テンプレートプロジェクトを複製する
Infrastructure-as-Code(IaC)のセットアップ自動セットアップ - スクリプトベースで作成する
プロジェクト管理ツールが必要CLI/管理ツール - プロジェクト管理ユーティリティを構築する
ステップ 3:実装方法を選択する

ご利用の技術スタックとユースケースに合ったリファレンスガイドを選択してください。

言語/スタック別:

ユースケース別:

ステップ 4:統合を実装する

選択したリファレンスガイドに従って、プロジェクト管理を実装してください。主な注意事項は次のとおりです。

  1. API 認証:

    • API トークンを安全に保管する
    • 既存のシークレット管理パターンに従う
    • トークンをバージョン管理にコミットしない
  2. プロジェクト名:

    • 一貫性のある、わかりやすい名前を使用する
    • 既存の命名規則に従う
    • プロジェクトキー:小文字、ハイフンを使用し、英字で始める
  3. SDK キーの管理:

    • 各環境の SDK キーを取り出して保存する
    • アプリケーションが使用するキーを LD_SDK_KEY として保存します。Python と Node.js の AI SDK はこの変数を読み取り、最初の AI 呼び出し時に初期化します。LAUNCHDARKLY_SDK_KEY は読み取りません。
    • コードベース内の他のシークレットと同じパターンを使用する
    • テスト/ステージング/本番環境で個別のキーを使用することを検討する
  4. エラー処理:

    • 既存のプロジェクトを適切に処理する(409 conflict)
    • 明確なエラーメッセージを表示する
    • エラーを黙って無視しない
ステップ 5:セットアップを確認する

プロジェクトの作成後、正常に動作することを確認してください。

  1. 取得して存在を確認します。 get-project MCP ツールを呼び出し、プロジェクトに環境があることを確認します。MCP にアクセスできないコードからは、代わりに REST API を呼び出せます。

    curl -X GET "https://app.launchdarkly.com/api/v2/projects/{projectKey}?expand=environments" \
      -H "Authorization: {api_token}"
    

    レスポンスをそのまま .environments.items[] のような jq フィルターにパイプしないでください。 environments の形式は expand パラメーターによって異なり、{items: [...]} の場合もあれば、配列そのものの場合もあります。独自に作成したフィルターは Cannot index array with string "items" というエラーで失敗します。まず jq -e . を実行して実際の形式を確認するか、両方に対応するために jq '.environments | if type == "object" then .items else . end' を使用してください。

  2. SDK 統合をテストします。 .env にキーを LD_SDK_KEY として設定し、プロジェクトディレクトリから AI SDK を初期化します。Python では pip install launchdarkly-server-sdk launchdarkly-ai-server python-dotenv が必要です。

    import asyncio
    from dotenv import load_dotenv
    from launchdarkly_ai_server import init_client, get_client, shutdown
    
    load_dotenv()
    
    async def main():
        await init_client()
        print("SDK initialized:", get_client().is_initialized())
        # shutdown() flushes pending events before closing the connection.
        await shutdown()
    
    asyncio.run(main())
    

    Node.js では npm install @launchdarkly/ai-node dotenv が必要です。

    import 'dotenv/config';
    import { initClient, shutdown } from '@launchdarkly/ai-node';
    
    // Resolves once connected; throws LDTimeoutError if the key is invalid
    await initClient();
    console.log('SDK initialized: true');
    await shutdown();
    

    有効なキーの場合、SDK initialized: True(Python)または true(Node.js)が出力されます。無効なキーの場合、Python は HTTP error 401 (invalid SDK key) をログに記録して False を出力し、Node.js は 10 秒後に LDTimeoutError をスローします。キーがない場合は、どちらも LD_SDK_KEY を求めるエラーを発生させます。

  3. 結果を報告します:

    • ✓ プロジェクトが存在し、環境がある
    • ✓ SDK キーが設定され、有効である
    • ✓ SDK が初期化できる(または問題があれば報告する)

プロジェクトキーのベストプラクティス

プロジェクトキーは次のルールに従う必要があります。

✓ Good examples:
  - "support-ai"
  - "chat-bot-v2"
  - "internal-tools"

✗ Bad examples:
  - "Support_AI"     # No uppercase or underscores
  - "123-project"    # Must start with letter  
  - "my.project"     # No dots allowed

命名の推奨事項:

  • キーは短く、わかりやすいものにする
  • チーム/サービス/目的を命名の基準にする
  • 組織全体で一貫性を保つ

よくある組織のパターン

チーム別
platform-ai       → Platform Team Agent
customer-ai       → Customer Success Team Agent
internal-ai       → Internal Tools Team Agent
アプリケーション/サービス別
mobile-ai         → Mobile App configs
web-ai            → Web App configs
api-ai            → API Service configs
リージョン/デプロイ別
ai-us             → US Region
ai-eu             → Europe Region
ai-apac           → Asia-Pacific Region

エッジケース

状況対応
プロジェクトがすでに存在するそれが適切なプロジェクトか確認し、使用するか、別のキーで作成します
複数のプロジェクトが必要サービス/リージョン/チームごとに個別に作成します
複数のサービスで設定を共有する同じプロジェクトを使用し、SDK コンテキストで分けます
トークンに権限がないprojects:write をリクエストするか、MCP サーバーを使用します
プロジェクト名が競合するキーは一意である必要がありますが、名前は似ていてもかまいません

やってはいけないこと

  • ユースケースを事前に把握せずにプロジェクトを作成しないでください
  • API トークンや SDK キーをバージョン管理にコミットしないでください
  • テスト/開発環境で本番用 SDK キーを使用しないでください
  • 不必要に重複したプロジェクトを作成しないでください
  • 調査段階を省略しないでください

次のステップ

プロジェクトのセットアップ後:

  1. 設定を作成する - configs-create スキルを使用します
  2. SDK 統合をセットアップする - sdk-install スキルを使用します
  3. ターゲティングを設定する - configs-targeting スキルを使用します

関連スキル

  • configs-create - プロジェクト内に設定を作成します
  • sdk-install - アプリケーションに SDK を統合します
  • configs-targeting - 設定のターゲティングを行います
  • configs-variations - 設定のバリエーションを管理します

参考資料

コメント