Bucket Feature Flags MCP Server について
Reflag CLI は、Reflag のアプリ、フラグ、認証を管理し、フラグからTypeScript の型定義を生成するコマンドラインツールです。ターミナルでフラグの運用を行う開発者に向けたツールです。mcp コマンドでは、Reflag がホストするリモート MCP サーバーへエディターを接続できます。
主な機能
- 01アプリ、フラグ、認証の管理
- 02フラグ用TypeScript型定義の生成
- 03initとnewによる迅速な初期化
- 04CI/CD向けのAPIキー認証
- 05リモートMCPサーバーへのエディター接続設定
活用シーン
- 01プロジェクトでReflagを初期化し最初のフラグを作成
- 02CI/CDパイプラインでフラグの型を生成
- 03エディターからReflagのリモートMCPサーバーを利用する設定
MCP 対応
CLI の mcp コマンドは、エディターや AI クライアントが Reflag がホストするリモート MCP サーバーに接続するよう設定します。STDIO 方式のクライアントには mcp-remote を互換レイヤーとして使用します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Reflag CLI
Reflag サービスを操作するためのコマンドラインインターフェイスです。CLI では、アプリ、フラグ、認証を管理し、Reflag のフラグ用の TypeScript 型を生成できます。このツールを使うと、ターミナルから直接フラグのワークフローを効率化できます。
インストール
プロジェクトに開発依存関係として CLI をインストールします。
# npm
npm install --save-dev @reflag/cli
# yarn
yarn add --dev @reflag/cli
プロジェクトのルートディレクトリで new コマンドを実行すると、CLI の初期化、フラグの作成、TypeScript 型の生成を一度に行えます。
# npm
npx reflag new
# yarn
yarn reflag new
Bucket SDK からの移行
Bucket CLI から移行する場合は、次の主な変更点にご注意ください。
- コマンド名:
bucketからreflagに変更されました - 型定義ファイル:
features.d.tsからflags.d.tsに変更されました(古いファイルがコミットされている場合は、手動で削除してください) - 認証ファイル:
.bucket-authから.reflag-authに変更されました(古いファイルの名前を変更するか、削除してください) - 設定ファイル:
bucket.config.jsonからreflag.config.jsonに変更されました(古いファイルの名前を変更するか、削除してください) - コマンド:
featuresコマンドはflagsになりました - 環境変数:
BUCKET_API_KEYの代わりにREFLAG_API_KEYを使用してください
重要:これらの変更を反映するため、スクリプト、ビルド手順、.gitignore のパターンを更新してください。
個別のコマンド
より細かく制御するには、各コマンドを個別に実行できます。
# Initialize Reflag in your project (if not already setup)
npx reflag init
# Create a new flag
npx reflag flags create "My Flag"
# Generate TypeScript types for your flags
npx reflag flags types
設定
reflag init を実行すると、CLI はプロジェクトディレクトリに reflag.config.json ファイルを作成します。このファイルには、Reflag を統合するために必要な設定がすべて含まれています。
設定ファイルの構造
reflag.config.json ファイルで使用できる設定オプションは次のとおりです。
{
"$schema": "https://unpkg.com/@reflag/cli@latest/schema.json",
"baseUrl": "https://app.reflag.com",
"apiUrl": "https://app.reflag.com/api",
"appId": "ap123456789",
"typesOutput": [
{
"path": "gen/flags.d.ts",
"format": "react"
}
]
}
| オプション | 説明 | デフォルト |
|---|---|---|
$schema | 設定の自動補完に使用します。latest は特定のバージョンに置き換えることができます。 | "https://unpkg.com/@reflag/cli@latest/schema.json" |
baseUrl | Reflag サービスのベース URL です。 | "https://app.reflag.com" |
apiUrl | Reflag サービスの API URL です(API 呼び出しでは baseUrl を上書きします)。 | "https://app.reflag.com/api" |
appId | Reflag アプリケーション ID です。 | 必須 |
typesOutput | TypeScript 型の生成先パスです。文字列、または path と format プロパティを含むオブジェクトの配列を指定できます。使用できる形式は react と node です。 | "gen/flags.ts"(形式は "react") |
個々のコマンドでは、コマンドラインオプションを使ってこれらの設定を上書きできます。
コマンド
reflag init
プロジェクトに新しい Reflag 設定を初期化します。設定内容を含む reflag.config.json ファイルを作成し、オプションで指定されていない必須情報の入力を求めます。
npx reflag init [--overwrite]
オプション:
--overwrite:既存の設定ファイルがある場合、上書きします。--app-id <id>:アプリケーション ID を設定します。--key-format <format>:フラグのキー形式を設定します。
reflag new [flagName]
すぐに使い始めるためのオールインワンコマンドです。このコマンドは、init、フラグの作成、型の生成を1つのステップにまとめています。Reflagを最速で使い始めるには、このコマンドを使用してください。
npx reflag new "My Flag" [--app-id ap123456789] [--key my-flag] [--key-format custom] [--out gen/flags.ts] [--format react]
オプション:
--key:フラグに指定するキー。--app-id:使用するApp ID。--key-format:フラグキーの形式(custom、snake、camelなど)。--out:TypeScript型を生成するパス。--format:生成する型の形式(reactまたはnode)。
各ステップをより細かく制御したい場合は、個別のコマンド(init、flags create、flags types)を使用できます。
reflag login
Reflagアカウントで認証します。以降の操作に使う認証情報が安全に保存されます。
npx reflag login
reflag logout
Reflagアカウントからサインアウトし、保存された認証情報を削除します。
npx reflag logout
reflag flags
次のサブコマンドを使用して、Reflagのフラグを管理します。
reflag flags create [flagName]
Reflagアプリに新しいフラグを作成します。オプションが指定されていない場合、対話型プロンプトでフラグ作成の手順を案内します。
npx reflag flags create "My Flag" [--app-id ap123456789] [--key my-flag] [--key-format custom]
オプション:
--key:フラグに指定するキー。--app-id:使用するApp ID。--key-format:フラグキーの形式。
reflag flags list
現在のアプリにあるすべてのフラグを一覧表示します。利用可能なフラグと現在の設定を確認できます。
npx reflag flags list [--app-id ap123456789]
オプション:
--app-id:使用するApp ID。
reflag flags types
フラグのTypeScript型を生成します。これにより、TypeScript/JavaScriptアプリケーションでReflagのフラグを使用する際に型安全性を確保できます。
npx reflag flags types [--app-id ap123456789] [--out gen/flags.ts] [--format react]
オプション:
--app-id:使用するApp ID。--out:TypeScript型を生成するパス。--format:生成する型の形式(reactまたはnode)。
reflag apps
Reflagアプリを管理するコマンドです。
グローバルオプション
これらのオプションは、すべてのコマンドで使用できます。
--debug:デバッグモードを有効にし、詳細な出力を表示します。--base-url <url>:Reflag APIのベースURLを設定します。--api-url <url>:API URLを直接設定します(ベースURLより優先されます)。--api-key <key>:非対話型認証に使用するReflag APIキー。--help:コマンドのヘルプ情報を表示します。
AI支援開発
Reflagは、ルールとModel Context Protocol(MCP)を通じて、強力なAI支援開発機能を提供します。これらの機能により、AI開発ツールがフラグをより適切に理解し、より正確な支援を提供できるようになります。
Reflagルール(推奨)
rulesコマンドを使うと、プロジェクトにAI専用ルールを設定できます。これらのルールにより、AIツールがReflagのフラグの扱い方や、コードベースでの使用方法をより適切に理解できるようになります。
npx reflag rules [--format <cursor|copilot>] [--yes]
オプション:
--format:ルールを追加する形式:cursor:Cursor IDEとの統合用に、.cursor/rules/reflag.mdcにルールを追加します。copilot:GitHub Copilotとの統合用に、.github/copilot-instructions.mdにルールを追加します。
--yes:確認プロンプトをスキップし、既存ファイルを確認なしで上書きします。
このコマンドは、Reflagのフラグの設定方法と使用方法に関するコンテキストをAIツールに提供するルールをプロジェクトに追加します。copilot形式の場合、ルールはファイル内の専用セクションに追加されるため、Reflagのルールとほかのcopilot指示を併せて管理できます。
Model Context Protocol
Model Context Protocol(MCP)は、AIモデルをさまざまなデータソースやツールに接続するための標準化された方法を提供するオープンプロトコルです。Reflagでは、MCPによってコードエディターがフラグ、その状態、コードベース内での関係を理解できるようになります。これにより、フラグ管理のワークフローとAIを活用した開発ツールとの間をシームレスにつなぎます。MCP サーバーはReflagがホストしているため、簡単に使い始められます。
注:Reflagのmcp CLIコマンドは、以前は_ローカル_サーバーに使用されていました。ただし、最近のバージョンのReflag CLIでは、mcpコマンドの用途が変更され、新しいリモートMCPサーバーへの接続に使用されます。
MCP のセットアップ
mcp コマンドを使用すると、エディターまたは AI クライアントが Reflag のリモート MCP サーバーに接続するよう設定できます。これにより、AI ツールがフラグを理解し、より状況に即した支援を提供できるようになります。
npx reflag mcp [--editor <editor>] [--scope <local|global>]
オプション:
--editor:設定するエディター/クライアント:cursor:Cursor IDEvscode:Visual Studio Codeclaude:Claude Desktopwindsurf:Windsurf
--scope:設定をグローバルに適用するか、プロジェクト内に適用するかを指定します。
このコマンドでは、次の手順を案内します。
- 設定するエディター/クライアントを選択します。
- 接続する Reflag アプリを選択します。
- グローバル設定とプロジェクトローカル設定のどちらにするかを決定します。
- 選択したエディターに適した設定ファイルをセットアップします。
注:セットアップでは、互換性レイヤーとして mcp-remote を使用し、リモートでホストされている Reflag MCP サーバーを、MCP STDIO サーバーに対応するすべてのエディター/クライアントで利用できるようにします。エディター/クライアントが OAuth による HTTP Streaming に対応している場合は、Reflag MCP サーバーに直接接続できます。
CI/CD パイプラインでの使用
Reflag CLI は、CI/CD パイプラインでシームレスに動作するよう設計されています。対話型ログインができない自動化環境では、--api-key オプションを使用するか、環境変数 REFLAG_API_KEY に API キーを指定してください。
# Generate types in CI/CD
npx reflag apps list --api-key $REFLAG_API_KEY
重要な制限事項:
--api-keyを使用すると、loginコマンドとlogoutコマンドは無効になります- API キーを使用すると、すべての対話型認証フローがバイパスされます
- API キーは1つのアプリにのみ紐付けられます。
apps listなどのコマンドでは、紐付けられたアプリのみが返されます - CI/CD プラットフォームのシークレット管理機能を使用して、API キーを安全に保管してください
CI ワークフローの例:
# GitHub Actions example
- name: Generate types
run: npx reflag flags types --api-key ${{ secrets.REFLAG_API_KEY }}
# GitHub Actions example (using environment):
- name: Generate types (environment)
run: npx reflag flags types
env:
REFLAG_API_KEY: ${{ secrets.REFLAG_CI_API_KEY }}
開発
# Build the CLI
yarn build
# Run the CLI locally
yarn reflag [command]
# Lint and format code
yarn lint
yarn format
要件
- Node.js >=18.0.0
ライセンス
MIT License Copyright (c) 2025 Bucket ApS
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。