DevCycle CLI 和 MCP 服务器
此寄存器包含用于管理命令行的特性旗的 DevCycle CLI,另外还有一个MCP(模式上下文协议)服务器,使AI编码助理能够与 DevCycle 交互.
主要特点包括:
- 从命令行完全管理您的特性、 变量、 变化和瞄准规则
- 检测并列出代码库中的 DevCycle 可变用法
- 管理您的自我目标覆盖以在变量值之间快速切换
- 生成 DevCycle 类型安全使用定义( 仅标注字)
- 与 Cursor 和 Claude 一起管理 AI 功能旗的 MCP( 模式背景协议) 服务器
CLI可以使用命令行参数或创建命令行参数等多种方式定制 配置文件。 。 。 .
MCP AI 助理服务器
DevCycle MCP(模式上下文协议)服务器使Cursor和Claude等AI编码助理能够直接从您的开发环境管理功能旗. DevCycle提供主机MCP服务器,不需要本地安装.
快速设置( 不需要安装)
-
配置您的 AI 助手以使用主机 MCP 服务器 :
-
光标: 添加到
.cursor/mcp_settings.json数字 :{ "mcpServers": { "devcycle": { "url": "https://mcp.devcycle.com/mcp" } } } -
克劳德桌面: 添加到您的 Claude 配置文件 :
{ "mcpServers": { "devcycle": { "command": "npx", "args": [ "mcp-remote", "https://mcp.devcycle.com/mcp" ] } } }
-
-
就这样! 服务器会在您首次使用时通过 OAuth 认证来引导您 .
您的 AI 助手现在可以代表您创建、 更新和管理功能标记 .
关于本地安装选项、详细的配置、可用的工具和高级使用,见 完整的 MCP 文件。 。 。 .
CLI 文档
设置
安装 CLI
利用国家预防机制
$ npm install -g @devcycle/cli
换句话说,用家庭主妇
$ brew tap devcyclehq/cli
$ brew install devcycle
认证
许多CLI命令需要DevCycle API授权. 提供这些证书有几种方法.
使用 Access Tokens( 首选)
登录命令
通过使用 login sso 命令,CLI会取回并存储一个访问令牌,有效期为24小时.
这个 login again 命令 可用于使用被保存的项目和组织取回新的访问符而无需提示它们.
这个过程将打开浏览器窗口与 DevCycle 通用登录页面交互. 它首先会获得个人访问符,然后促使你选择一个组织. 第二个浏览器窗口用于认证您选择的组织中的 CLI .
要切换组织 一旦登录 organizations select 命令 可以使用.
如果在集装箱化环境中执行CLI,请确保以下一个Port可以通过Port Forging访问:2194(默认),2195,2196或8080. 这将使认证程序能够完成并适当设置访问符.
Repo 输入命令
这个 repo init 命令 行为方式与 login sso,但创建 repo 配置文件 将项目和组织选择存放在那里.
使用客户证书
Auth 文件的客户端证书
使用 dvc status 命令 查找您的平台的配置文件位置。 证书可以被存储在Auth配置路径所指向的文件. 如果文件不存在,则创建该文件,其内容如下.
clientCredentials:
client_id: <your client id>
client_secret: <your client secret>
此文件应该 没有 输入到版本控件.
默认位置基于 oclif 配置目录
如果您打算使用覆盖配置文件位置的选项运行 CLI,则 dvc status 命令 命令可以使用这些选项运行,以确认文件位置是预期的.
项目选择
您还需要指定用于 CLI 的默认工程 ID .
如果有 Repo 配置文件,则 dvc diff 财务报告和审定财务报表 dvc usages 命令将使用该定义的工程.
否则,在登录或设定时使用 工程选择命令
环境变量
设置以下环境变量:
$ export DEVCYCLE_CLIENT_ID=<your client id>
$ export DEVCYCLE_CLIENT_SECRET=<your client secret>
$ export DEVCYCLE_PROJECT_KEY=<your project key>
命令行参数
CLI可以使用以下参数运行: 1
$ dvc --client-id=<your client id> --client-secret=<your client secret> --project=<your project key>
Github 动作
Devcycle Github 动作通过 project-key, (中文(简体) ), client-id 财务报告和审定财务报表 client-secret 配置参数. 这通过命令行参数传递到CLI.
使用量
$ npm install -g @devcycle/cli
$ dvc COMMAND
running command...
$ dvc (--version)
@devcycle/cli/6.6.1 linux-x64 node-v24.21.0
$ dvc --help [COMMAND]
USAGE
$ dvc COMMAND
...
命令主题
dvc alias- 管理寄存器变量别名.dvc autocomplete- 显示自动完成安装指令dvc cleanup- 用当前版本代码中的静态值替换 DevCycle 变量。 目前仅支持JavaScript.dvc diff- 打印一个DevCycle的可变用法介于您代码的两个版本之间.dvc environments- 为现有地物创造新的环境.dvc features- 与管理API创建、查看或修改特性.dvc generate- 生成 Devcycle 相关文件 .dvc help显示 Dvc 的帮助 .dvc identity- 查看或管理你的DevCycle身份.dvc keys- 从管理API中获取SDK密钥.dvc login- 登记到DevCycle.dvc logout- 丢弃任何存储在认证配置文件中的认证配置 .dvc organizations- 列出或切换组织.dvc overrides- 与管理API一起创建、查看或修改一个项目的重叠.dvc projects- 用管理API创建或查看项目.dvc repo- 管理仓库配置.dvc status- 检查CLI状态.dvc targeting- 创建、查看或修改目标设定规则,使之具有管理API的特点.dvc usages- 在您的代码当前版本中打印所有 DevCycle 变量用法 .dvc variables- 用管理API创建、查看或修改变量.dvc variations- 为已有的地物创建新的变体.
Repo 配置
以下命令只能从配置仓库的根运行
作为命令行参数的许多选项也可以使用repo配置文件来指定. 默认
此文件的位置是 <REPO ROOT>/.devcycle/config.yml。 。 。 .
此位置可用 --repo-config-path 旗帜.
配置文件格式如下:
## the project and organization to use when connecting to the DevCycle Rest API for this repo
project: "project-key"
org:
id: "org_xxxxxx"
name: "unique-org-key"
display_name: "Human Readable Org Name"
## block for configuring "code insights" features like diff and variable usage scanning
## use this section to improve the detection of DevCycle usage within your code
codeInsights:
## add additional names to check for when looking for instances of DVCClient from an SDK
clientNames:
- "dvcClient"
## map the values used in your code to the corresponding variable key in DevCycle
variableAliases:
"VARIABLES.ENABLE_V1": "enable-v1"
## additional regex patterns used to match variables for a specific file extension
matchPatterns:
## file extension to override for, containing a list of patterns to use
js:
- dvcClient\.variable\(\s*["']([^"']*)["']
## an array of file glob patterns to include in usage scan
includeFiles:
- "*.[jt]s"
## an array of file glob patterns to exclude from usage scan
excludeFiles:
- "dist/*"
匹配图案和异名
在识别代码中的可变用法时,CLI会默认识别出DevCycle SDK方法. 要抓起来 您可能定义匹配模式的其他用法。 匹配模式由文件扩展定义.
* 注: 每个图案必须包含一个精确的可变密钥捕获组. 抓取全部密钥值 (如果选择“带引文”的图案,包括周围引文). * :
匹配模式可以在配置文件中定义, 例如 :
codeInsights:
matchPatterns:
js:
- customVariableGetter\(\s*["']([^"']*)["']
ts:
- customVariableGetter\(\s*["']([^"']*)["']
jsx:
- customVariableHook\(\s*["']([^"']*)["']
- customVariableGetter\(\s*["']([^"']*)["']
tsx:
- customVariableHook\(\s*["']([^"']*)["']
- customVariableGetter\(\s*["']([^"']*)["']
有无引用
匹配模式可以捕捉有引用或没有引用的可变密钥,这影响了是否需要别名:
引文为:
# Pattern captures the key including surrounding quotes
- dvcClient\.variable\(\s*(["'][^"']*["'])\s*,
- 匹配数 :
dvcClient.variable('my-variable', default) - 捕获 :
'my-variable'(有引证
无引号( 需要异名或生成常数) :
# Pattern strips quotes, capturing only the content
- dvcClient\.variable\(\s*["']([^"']*)["']
- 匹配数 :
dvcClient.variable('my-variable', default) - 捕获 :
my-variable
匹配模式也可以直接传递给使用 --match-pattern 旗帜 :
dvc usages --match-pattern ts="customVariableGetter\(\s*["']([^"']*)["']" js="customVariableGetter\(\s*["']([^"']*)["']"
当测试您的正则 --show-regex 旗帜可以帮助。 这将打印用于在您的代码库中找到匹配的所有图案 .
dvc usages --show-regex
自定义打包函数
如果您使用SDK周围的包装功能,请为它们添加图案.
示例: 自定义包装函数
codeInsights:
matchPatterns:
ts:
# Matches: getFeatureFlag('my-variable', defaultValue)
- getFeatureFlag\(\s*([^,)]*)\s*,
# Matches: isFeatureEnabled('my-variable')
- isFeatureEnabled\(\s*([^,)]*)\s*\)
tsx:
# Matches: useFeatureFlag('my-variable', defaultValue)
- useFeatureFlag\(\s*([^,)]*)\s*,