README
🚀 Bucketeer MCP Server
Bucketeer MCP Server 是一个模型上下文协议(MCP)服务器,用于在 Bucketeer 这个开源特性开关管理平台中管理特性开关。它为特性开关的管理提供了便捷、高效的解决方案,帮助开发者更好地控制和部署应用程序的功能。
⚠️ 重要提示
这是一个测试版本,在正式发布之前可能会引入重大变更。
✨ 主要特性
此 MCP 服务器提供了对 Bucketeer 特性开关进行基本增删改查(CRUD)操作的工具:
listFeatureFlags- 列出所有特性开关,支持过滤和分页功能。createFeatureFlag- 创建一个新的特性开关。getFeatureFlag- 根据 ID 获取特定的特性开关。updateFeatureFlag- 更新现有的特性开关。archiveFeatureFlag- 存档一个特性开关(使其处于非活动状态)。
📦 安装指南
前提条件
- Node.js 18 或更高版本。
- 具备 API 访问权限的 Bucketeer 实例。
- 具有适当权限(读取、写入或管理)的 API 密钥。
安装步骤
- 克隆此仓库
git clone https://github.com/yourusername/bucketeer-mcp.git
cd bucketeer-mcp
- 安装依赖项
npm install
- 构建项目
npm run build
💻 使用示例
启动服务器
启动 MCP 服务器:
npm start
开发模式下使用自动重载功能:
npm run dev
MCP 客户端配置
要将此服务器与 MCP 客户端一起使用,请将其添加到 MCP 客户端配置中:
{
"mcpServers": {
"bucketeer": {
"command": "node",
"args": ["/path/to/bucketeer-mcp/dist/index.js"],
"env": {
"BUCKETEER_HOST": "api.bucketeer.io",
"BUCKETEER_API_KEY": "your-api-key",
"BUCKETEER_ENVIRONMENT_ID": "your-environment-id"
}
}
}
}
可用工具
listFeatureFlags
列出指定环境中的所有特性开关。
参数:
environmentId(可选) - 环境 ID(若未提供,则使用默认值)。pageSize(可选) - 每页的项目数量(1 - 100,默认值:20)。cursor(可选) - 用于下一页的分页游标。tags(可选) - 按标签过滤。orderBy(可选) - 排序字段(CREATED_AT、UPDATED_AT、NAME)。orderDirection(可选) - 排序方向(ASC、DESC)。searchKeyword(可选) - 特性名称或 ID 的搜索关键字。maintainer(可选) - 按维护者电子邮件过滤。archived(可选) - 按存档状态过滤。
createFeatureFlag
创建一个新的特性开关。
参数:
id(必需) - 唯一标识符(字母数字、连字符、下划线)。name(必需) - 人类可读的名称。description(可选) - 特性开关的描述。environmentId(可选) - 环境 ID(若未提供,则使用默认值)。variations(必需) - 变体数组(至少 2 个):value(必需) - 此变体被提供时返回的值。name(必需) - 变体的名称。description(可选) - 变体的描述。
tags(可选) - 特性开关的标签。defaultOnVariationIndex(必需) - 开关开启时变体的索引(从 0 开始)。defaultOffVariationIndex(必需) - 开关关闭时变体的索引(从 0 开始)。variationType(可选) - 变体值的类型:STRING(默认)、BOOLEAN、NUMBER 或 JSON。
getFeatureFlag
根据 ID 获取特定的特性开关。
参数:
id(必需) - 要检索的特性开关的 ID。environmentId(可选) - 环境 ID(若未提供,则使用默认值)。featureVersion(可选) - 要检索的特性的特定版本。
updateFeatureFlag
更新现有的特性开关。
参数:
id(必需) - 要更新的特性开关的 ID。comment(必需) - 更新的注释(用于审计跟踪)。environmentId(可选) - 环境 ID(若未提供,则使用默认值)。name(可选) - 特性开关的新名称。description(可选) - 新的描述。tags(可选) - 新的标签。enabled(可选) - 启用或禁用特性开关。archived(可选) - 存档或取消存档特性开关。
注意:
- 此工具需要一个注释用于审计跟踪目的。
- 它不支持更新变体。若要修改变体,需要存档当前开关并创建一个新的。
archiveFeatureFlag
存档一个特性开关(使其处于非活动状态)。存档的开关将为所有用户返回代码中定义的默认值。
参数:
id(必需) - 要存档的特性开关的 ID。environmentId(可选) - 环境 ID(若未提供,则使用默认值)。comment(必需) - 存档操作的注释(用于审计跟踪)。
注意:此操作是存档开关,而不是永久删除它。如有需要,开关可以在以后取消存档。
🔧 开发相关
代码检查
运行代码检查工具:
npm run lint
构建项目
构建 TypeScript 代码:
npm run build
🤝 贡献代码
我们非常欢迎您为 Bucketeer 做出贡献,帮助改进它!任何人都可以使用并享受它带来的便利!
请遵循我们的贡献指南 点击此处查看。
📄 许可证
本项目采用 Apache License 2.0 许可协议,详情请见 LICENSE。
微信扫一扫