Vibe 使用 Claude Code 和 Pu-Er 编码 🍵
这是一个提供对 Cucumber Studio 测试平台访问的模型上下文协议(MCP)服务器。此服务器使AI助手能够从 Cucumber Studio 中检索测试场景、操作词、测试运行和项目信息。
tsx --watch使用此 MCP 服务器最简单的方法是作为桌面扩展:
.dxt 文件(每个发布自动构建)扩展将自动处理 MCP 服务器的设置和通信。
直接使用 npx 运行(无需安装):
npx cucumberstudio-mcp
首先设置环境变量:
export CUCUMBERSTUDIO_ACCESS_TOKEN="your_token"
export CUCUMBERSTUDIO_CLIENT_ID="your_client_id"
export CUCUMBERSTUDIO_UID="your_uid"
git clone https://github.com/HeroSizy/cucumberstudio-mcp.git
cd cucumberstudio-mcp
npm install
cp .env.example .env
# 使用您的 Cucumber Studio API 凭据编辑 .env
npm run build
运行来自 Docker Hub 的官方 Docker 镜像:
# 使用环境文件
docker run --env-file .env herosizy/cucumberstudio-mcp
# 使用环境变量
docker run -e CUCUMBERSTUDIO_ACCESS_TOKEN=your_token \
-e CUCUMBERSTUDIO_CLIENT_ID=
your_client_id \
-e CUCUMBERSTUDIO_UID=your_uid \
herosizy/cucumberstudio-mcp
cp .env.example .env
# 使用您的 Cucumber Studio API 凭据编辑 .env
version: '3.8'
services:
cucumberstudio-mcp:
image: herosizy/cucumberstudio-mcp
env_file:
- .env
restart: unless-stopped
ports:
- "${MCP_PORT:-3000}:3000"
docker-compose up
npm run docker:build
npm run docker:run
Docker 设置包括健康检查和生产使用的自动重启。多阶段构建过程创建了仅包含运行时依赖项的优化生产镜像(约150MB)。
服务器需要 Cucumber Studio API 凭据。这些凭据可以从您的 Cucumber Studio 账户设置中获取:
CUCUMBERSTUDIO_ACCESS_TOKEN - 您的 API 访问令牌CUCUMBERSTUDIO_CLIENT_ID - 您的客户端IDCUCUMBERSTUDIO_UID - 您的用户IDCUCUMBERSTUDIO_BASE_URL - API 基础 URL(默认:https://studio.cucumberstudio.com/api)MCP_TRANSPORT - 传输类型:stdio(默认)、http 或 streamable-httpMCP_PORT - HTTP 传输端口(默认:3000)MCP_HOST - HTTP 传输主机(默认:0.0.0.0)MCP_CORS_ORIGIN - CORS 原设置(默认:true)LOG_LEVEL - 日志级别:error、warn、info、debug、trace(默认:info)LOG_API_RESPONSES - 记录 Cucumber Studio API 响应(默认:false)LOG_REQUEST_BODIES - 记录 API 请求正文用于调试(默认:false)LOG_RESPONSE_BODIES - 记录 API 响应正文用于调试(默认:false)LOG_TRANSPORT - 日志输出:console、stderr、file、none(默认:stderr)LOG_FILE - 日志文件路径(如果 LOG_TRANSPORT=file,则必需)服务器支持 STDIO 和 HTTP 两种传输方式:
# 开发
npm run dev
# 生产
npm start
# 开发
npm run dev:http
# 生产
npm run start:http
直接将 .dxt 扩展文件导入到兼容的 AI 桌面应用程序中。扩展通过其设置界面处理所有配置。
对于手动 MCP 客户端配置:
{
"mcpServers": {
"cucumberstudio": {
"command": "npx",
"args": ["cucumberstudio-mcp"],
"env": {
"CUCUMBERSTUDIO_ACCESS_TOKEN": "your_token",
"CUCUMBERSTUDIO_CLIENT_ID": "your_client_id",
"CUCUMBERSTUDIO_UID": "your_uid"
}
}
}
}
{
"mcpServers": {
"cucumberstudio": {
"command": "node",
"args": ["/path/to/cucumberstudio-mcp/build/index.js"],
"env": {
"CUCUMBERSTUDIO_ACCESS_TOKEN": "your_token",
"CUCUMBERSTUDIO_CLIENT_ID": "your_client_id",
"CUCUMBERSTUDIO_UID": "your_uid"
}
}
}
}
{
"mcpServers": {
"cucumberstudio": {
"command": "docker",
"args": ["run", "--rm", "-i", "--env-file", "/path/to/.env", "herosizy/cucumberstudio-mcp"]
}
}
}
{
"mcpServers": {
"cucumberstudio": {
"command": "docker",
"args": ["run", "--rm", "-i", "--env-file", "/path/to/.env", "cucumberstudio-mcp"]
}
}
}
cucumberstudio_list_projects - 列出所有可访问的项目cucumberstudio_get_project - 获取详细的项目信息cucumberstudio_list_scenarios - 列出项目中的场景cucumberstudio_get_scenario - 获取详细的场景信息cucumberstudio_find_scenarios_by_tags - 按标签查找场景cucumberstudio_list_action_words - 列出可重用的操作词cucumberstudio_get_action_word - 获取详细的操作词信息cucumberstudio_find_action_words_by_tags - 按标签查找操作词cucumberstudio_list_test_runs - 列出测试运行cucumberstudio_get_test_run - 获取详细的测试运行信息cucumberstudio_get_test_executions - 获取单独的测试结果cucumberstudio_list_builds - 列出构建cucumberstudio_get_build - 获取构建详情cucumberstudio_list_execution_environments - 列出执行环境服务器支持热重载以加快开发速度:
# STDIO 传输带热重载
npm run dev
# HTTP 传输带热重载
npm run dev:http
当检测到更改时,文件会自动重新编译并且服务器会重启。
# 安装依赖项
npm install
# 运行类型检查
npm run typecheck
# 运行代码检查
npm run lint
# 为生产构建
npm run build
# 运行测试
npm test
# 在监视模式下运行测试(用于开发)
npm run test:watch
# 运行测试并生成覆盖率报告(82%以上覆盖率)
npm run test:coverage
# 使用UI运行测试
npm run test:ui
# 生产构建(默认)- 优化大小,不包含 .d.ts/.js.map 文件
npm run build
# 开发构建 - 包含源映射和类型声明用于调试
npm run build:dev
# 验证 manifest.json
npm run dxt:validate
# 为本地测试构建完整的 DXT 扩展(优化的生产构建)
npm run dxt:build
# 检查已构建扩展的信息
npm run dxt:info
# 清理构建工件
npm run dxt:clean
服务器采用模块化、生产就绪的架构:
该项目包括全面的测试覆盖率:
# 运行所有测试
npm test
# 运行测试并生成覆盖率报告
npm run test:coverage
# 在监视模式下运行测试(用于开发)
npm run test:watch
测试覆盖率包括:
此项目使用 GitHub Actions 自动发布。当推送一个版本标签时,它会自动:
npx cucumberstudio-mcp 提供包package.json 中的版本:npm version patch|minor|major
git push origin --tags
为了自动化发布,必须在 GitHub 仓库中配置以下秘密:
NPM_TOKEN - NPM 认证令牌DOCKER_USERNAME - Docker Hub 用户名DOCKER_PASSWORD - Docker Hub 密码或访问令牌npm testMIT 许可证 - 详见 LICENSE 文件