Bucket MCP Server

官方

使用 Bucket 标记功能、管理公司数据并控制功能访问。

文档

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
  • 环境变量:使用 REFLAG_API_KEY 而不是 BUCKET_API_KEY

重要提示:请更新您的脚本、构建步骤和 .gitignore 模式以反映这些变更。

单独的命令

如需更多控制,您可以单独运行每个命令:

在您的项目中初始化 Reflag(如果尚未设置)

npx reflag init

创建一个新开关

npx reflag flags create "My Flag"

为您的开关生成 TypeScript 类型

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"
baseUrlReflag 服务的基础 URL。"https://app.reflag.com"
apiUrlReflag 服务的 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、开关创建和类型生成合并为一个步骤。使用此命令可以最快地启动并运行 Reflag。

npx reflag new "My Flag" [--app-id ap123456789] [--key my-flag] [--key-format custom] [--out gen/flags.ts] [--format react]

选项:

  • --key:开关的特定键。
  • --app-id:要使用的应用 ID。
  • --key-format:开关键的格式(custom、snake、camel 等)。
  • --out:生成 TypeScript 类型的路径。
  • --format:生成类型的格式(react 或 node)。

如果您希望对每个步骤有更多控制,可以改用单独的命令(initflags createflags 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:要使用的应用 ID。
  • --key-format:开关键的格式。

reflag flags list

列出当前应用的所有开关。这有助于您可视化哪些开关可用及其当前配置。

npx reflag flags list [--app-id ap123456789]

选项:

  • --app-id:要使用的应用 ID。

reflag flags types

为您的开关生成 TypeScript 类型。这确保了在 TypeScript/JavaScript 应用中使用 Reflag 开关时的类型安全。

npx reflag flags types [--app-id ap123456789] [--out gen/flags.ts] [--format react]

选项:

  • --app-id:要使用的应用 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 通过规则和模型上下文协议 (MCP) 提供强大的 AI 辅助开发功能。这些功能可帮助您的 AI 开发工具更好地理解您的开关,并提供更准确的帮助。

Reflag 规则(推荐)

rules 命令帮助您为项目设置 AI 特定规则。这些规则使 AI 工具能够更好地理解如何使用 Reflag 开关以及如何在您的代码库中使用它们。

npx reflag rules [--format <cursor|copilot>] [--yes]

选项:

  • --format:添加规则的格式:
    • cursor:将规则添加到 .cursor/rules/reflag.mdc 以进行 Cursor IDE 集成。
    • copilot:将规则添加到 .github/copilot-instructions.md 以进行 GitHub Copilot 集成。
  • --yes:跳过确认提示,并在不询问的情况下覆盖现有文件。

此命令向您的项目添加规则,为 AI 工具提供有关如何设置和使用 Reflag 开关的上下文。对于 copilot 格式,规则会添加到文件中的专用部分,允许您在 Reflag 规则旁边维护其他 copilot 指令。

模型上下文协议

模型上下文协议 (MCP) 是一种开放协议,它提供了一种将 AI 模型连接到不同数据源和工具的标准化方式。在 Reflag 的上下文中,MCP 使您的代码编辑器能够理解您的开关、它们的状态以及它们在代码库中的关系。这在您的开关管理工作流和 AI 驱动的开发工具之间创建了一个无缝桥梁。MCP 服务器由 Reflag 托管,便于入门。

**注意:Reflag mcp CLI 命令以前用于 本地 服务器。但是,在 Reflag CLI 的最新版本中,mcp 命令已被重新用于帮助您连接到新的远程 MCP 服务器。**

设置 MCP

mcp 命令帮助您配置编辑器或 AI 客户端以连接到 Reflag 的远程 MCP 服务器。这使您的 AI 工具能够理解您的开关并提供更具上下文性的帮助。

npx reflag mcp [--editor ] [--scope <local|global>]

选项:

  • --editor:要配置的编辑器/客户端:
    • cursor:Cursor IDE
    • vscode:Visual Studio Code
    • claude:Claude Desktop
    • windsurf:Windsurf
  • --scope:是为项目全局配置设置还是本地配置设置。

该命令将引导您完成:

  1. 选择要配置的编辑器/客户端。
  2. 选择要连接的 Reflag 应用。
  3. 决定使用全局配置还是项目本地配置。
  4. 为您选择的编辑器设置适当的配置文件。

注意:该设置使用 mcp-remote 作为兼容层,允许远程托管的 Reflag MCP 服务器与所有支持 MCP STDIO 服务器的编辑器/客户端一起工作。如果您的编辑器/客户端支持带有 OAuth 的 HTTP Streaming,您可以直接连接到 Reflag MCP 服务器。

在 CI/CD 流水线中使用(测试版)

Reflag CLI 设计为可在 CI/CD 流水线中无缝工作。对于无法进行交互式登录的自动化环境,请使用 --api-key 选项或在 REFLAG_API_KEY 环境变量中指定 API 密钥。

在 CI/CD 中生成类型

npx reflag apps list --api-key $REFLAG_API_KEY

重要限制:

  • 使用 --api-key 时,loginlogout 命令将被禁用
  • API 密钥绕过所有交互式身份验证流程
  • API 密钥仅绑定到一个应用。诸如 apps list 之类的命令将仅返回绑定的应用
  • 使用 CI/CD 平台的密钥管理安全地存储 API 密钥

CI 工作流示例:

GitHub Actions 示例

  • name: 生成类型 run: npx reflag flags types --api-key ${{ secrets.REFLAG_API_KEY }}

GitHub Actions 示例(使用环境变量):

  • name: 生成类型(环境变量) run: npx reflag flags types env: REFLAG_API_KEY: ${{ secrets.REFLAG_CI_API_KEY }}

开发

构建 CLI

yarn build

本地运行 CLI

yarn reflag [command]

代码检查和格式化

yarn lint yarn format

要求

  • Node.js >=18.0.0

许可证

MIT 许可证 版权所有 (c) 2025 Bucket ApS