Connects Claude to Zebrunner's test case management and analytics platform with 60+ tools spanning TCM operations, reporting, and automation workflows. Beyond basic CRUD, you get pass rate trends, coverage gap analysis, regression stability reports, and an intelligent rules engine with 100+ automated checkpoints for test case validation. All tools use an adv_ prefix to avoid collisions with Zebrunner's official MCP. Supports multiple auth modes including OAuth and Okta SSO, plus MCP resources for @ context injection and prompts for slash commands. Includes OCR and video analysis via sharp, ffmpeg, and tesseract. Best for QA teams running large test suites who need deeper analytics and batch operations alongside day to day test management.
A Model Context Protocol (MCP) server that brings advanced analytics, reporting, failure forensics, and safe TCM mutations to Zebrunner. Designed to coexist with the official Zebrunner MCP (beta) — see the "Dual-MCP setup" section below.
Tool naming: every tool on this server is registered under the canonical
adv_<name>form (e.g.adv_create_test_case,adv_list_test_runs) so it never collides with the official Zebrunner MCP. The legacy names are kept as deprecated aliases so prompts/scripts that called the old names continue to work for now; aliases will be removed in the next major release.
📖 Need help with installation? Check out our Step-by-Step Install Guide for detailed setup instructions.
🚀 Installing via npm? See our MCP NPM Installation Guide for Claude Desktop, Cursor, IntelliJ IDEA, and ChatGPT Desktop configuration.
📚 Test vs Test Case vs Launch? See Terminology & Glossary — definitions, counting rules, and how metrics are calculated.
This is the Advanced Zebrunner MCP Server — built to go well beyond basic test case management and help QA teams work smarter and faster with AI. Compared to the official Zebrunner MCP (beta, ~47 CRUD-focused tools), this server provides 60+ tools with deep analytics, reporting, and automation capabilities, and is safe to run side-by-side with the official server:
@ context injection and / workflow commands for streamlined daily operationsThis tool allows you to:
All through natural language commands in AI assistants!
Our MCP server includes a sophisticated 3-tier rules system that transforms how you work with test cases:
test_case_review_rules.md)validate_test_case and improve_test_case toolstest_case_analysis_checkpoints.md)validate_test_case for comprehensive scoring and issue detectionmcp-zebrunner-rules.md)generate_draft_test_by_key and get_enhanced_test_coverage_with_rules toolsgraph TD
A[Test Case] --> B[validate_test_case]
B --> C[test_case_review_rules.md]
B --> D[test_case_analysis_checkpoints.md]
B --> E[Validation Result + Issues]
E --> F[improve_test_case]
F --> G[AI-Powered Improvements]
A --> H[generate_draft_test_by_key]
H --> I[mcp-zebrunner-rules.md]
H --> J[Generated Test Code]
A --> K[get_enhanced_test_coverage_with_rules]
K --> I
K --> L[Coverage Analysis + Rules Validation]
You can customize any of the three rules files:
# Copy default rules to customize
cp test_case_review_rules.md my-project-review-rules.md
cp test_case_analysis_checkpoints.md my-project-checkpoints.md
cp mcp-zebrunner-rules.md my-project-technical-rules.md
# Use custom rules in validation
"Validate test case PROJ-123 using custom rules from my-project-review-rules.md"
Example customizations:
Open your terminal/command prompt and run:
node --version
npm --version
If you see version numbers, you're ready to go!
💡 Want more detailed instructions? Check out our More Detailed Step-by-step Install Guide with troubleshooting tips and platform-specific instructions.
Choose one of these methods:
git clone https://github.com/maksimsarychau/mcp-zebrunner.git
cd mcp-zebrunner
Download the project files and extract them to a folder.
npm install
Create a .env file in the project folder with your Zebrunner details:
# Your Zebrunner instance URL (without trailing slash)
ZEBRUNNER_URL=https://your-company.zebrunner.com/api/public/v1
# Your Zebrunner login (usually your email)
ZEBRUNNER_LOGIN=your.email@company.com
# Your Zebrunner API token (get this from your Zebrunner profile)
ZEBRUNNER_TOKEN=your_api_token_here
# Optional: Enable debug logging (default: false)
DEBUG=false
# Optional: Enable intelligent rules system (auto-detected if rules file exists)
ENABLE_RULES_ENGINE=true
.env filenpm run build
npm run test:health
If you see "✅ Health check completed", you're ready to go!
# Check your current version
npm run version
# or manually check package.json
cat package.json | grep '"version"'
# 1. Pull latest changes from master branch
git pull origin master
# 2. Install any new dependencies
npm install
# 3. Rebuild the project
npm run build
# 4. Test your connection (requires valid .env file)
npm run test:health
Important Notes:
.env file must be properly configured for the health check to workIf the health check fails, verify your .env configuration and Zebrunner credentials.
Add this configuration to your Claude Desktop or Claude Code settings. Important: You must use the full absolute path to your project folder.
{
"mcpServers": {
"mcp-zebrunner": {
"command": "node",
"args": ["/full/absolute/path/to/mcp-zebrunner/dist/server.js"],
"env": {
"ZEBRUNNER_URL": "https://your-company.zebrunner.com/api/public/v1",
"ZEBRUNNER_LOGIN": "your.email@company.com",
"ZEBRUNNER_TOKEN": "your_api_token_here",
"DEBUG": "false",
"ENABLE_RULES_ENGINE": "true",
"DEFAULT_PAGE_SIZE": "100",
"MAX_PAGE_SIZE": "100"
}
}
}
}
Example paths:
C:\\Users\\YourName\\Projects\\mcp-zebrunner\\dist\\server.js/Users/YourName/Projects/mcp-zebrunner/dist/server.jsYou can also add the server using the command line:
claude mcp add mcp-zebrunner \
--env ZEBRUNNER_URL="https://your-company.zebrunner.com/api/public/v1" \
--env ZEBRUNNER_LOGIN="your.email@company.com" \
--env ZEBRUNNER_TOKEN="your_api_token_here" \
--env DEBUG="false" \
--env ENABLE_RULES_ENGINE="true" \
-- node /full/absolute/path/to/mcp-zebrunner/dist/server.js
Important: Replace /full/absolute/path/to/mcp-zebrunner/ with the actual full path to your project folder.
npm run dev
npm start
NEW in v5.4.1+: Claude can automatically detect Zebrunner URLs and analyze them with optimal settings!
Just paste a Zebrunner URL in your conversation, and Claude will automatically:
1. Test Analysis URLs
https://your-workspace.zebrunner.com/projects/PROJECT/automation-launches/LAUNCH_ID/tests/TEST_ID
What happens:
analyze_test_failureprojectKey, testRunId (launch ID), testIdincludeVideo: true, analyzeScreenshotsWithAI: true, all diagnosticsExample:
User: "Analyze https://your-workspace.zebrunner.com/projects/MCP/automation-launches/120911/tests/5455386"
Claude automatically calls:
{
projectKey: "MCP",
testRunId: 120911,
testId: 5455386,
includeVideo: true,
analyzeScreenshotsWithAI: true,
includeLogs: true,
includeScreenshots: true,
analyzeSimilarFailures: true,
screenshotAnalysisType: "detailed",
format: "detailed"
}
2. Launch Analysis URLs
https://your-workspace.zebrunner.com/projects/PROJECT/automation-launches/LAUNCH_ID
What happens:
detailed_analyze_launch_failuresprojectKey, testRunId (launch ID)includeScreenshotAnalysis: true, comprehensive analysisExample:
User: "Analyze https://your-workspace.zebrunner.com/projects/MCP/automation-launches/120911"
Claude automatically calls:
{
projectKey: "MCP",
testRunId: 120911,
filterType: "without_issues",
includeScreenshotAnalysis: true,
screenshotAnalysisType: "detailed",
format: "summary",
executionMode: "sequential"
}
Override Default Settings
Claude understands natural language overrides:
User: "Analyze https://...url... but without screenshots"
→ Claude sets: analyzeScreenshotsWithAI: false
User: "Analyze https://...url... in jira format"
→ Claude sets: format: "jira"
User: "Quick analysis of https://...url..."
→ Claude sets: format: "summary", screenshotAnalysisType: "basic"
Multiple URLs
Analyze multiple tests/launches in one request:
User: "Compare these failures:
https://your-workspace.zebrunner.com/projects/MCP/automation-launches/120911/tests/5455386
https://your-workspace.zebrunner.com/projects/MCP/automation-launches/120911/tests/5455390"
→ Claude analyzes both sequentially and compares results
Cross-Workspace Support
⚠️ URLs from different workspaces will show a warning but still attempt analysis:
User: "Analyze https://other-workspace.zebrunner.com/..."
→ Claude warns: "URL is from 'other-workspace.zebrunner.com' but configured workspace is 'your-workspace.zebrunner.com'"
→ Proceeds with analysis using available credentials
| Component | Example | Extracted As | Used In Tool |
|---|---|---|---|
| Workspace | your-workspace.zebrunner.com | Validation only | N/A |
| Project Key | MCP | projectKey | All tools |
| Launch ID | 120911 | testRunId | All tools |
| Test ID | 5455386 | testId | analyze_test_failure only |
✅ Faster: No need to manually specify IDs
✅ Convenient: Copy-paste URLs directly from Zebrunner UI
✅ Optimized: Automatic use of recommended settings
✅ Smart: Claude detects intent and adjusts parameters
✅ Flexible: Natural language overrides work seamlessly
zebrunner + Advanced)Zebrunner now offers an official hosted MCP (beta) at
https://{workspace}.zebrunner.com/api/mcp. It is safe to run both servers
in the same Cursor / Claude session: every tool on this server is exposed under
the adv_<name> prefix, so it never collides with the official tools.
Example .cursor/mcp.json:
{
"mcpServers": {
"zebrunner": {
"url": "https://your-workspace.zebrunner.com/api/mcp",
"headers": {
"X-Zebrunner-Username": "your.name@company.com",
"X-Zebrunner-Api-Token": "<your-zebrunner-api-token>"
}
},
"mcp-zebrunner": {
"command": "npx",
"args": ["-y", "mcp-zebrunner"],
"env": {
"ZEBRUNNER_URL": "https://your-workspace.zebrunner.com/api/public/v1",
"ZEBRUNNER_LOGIN": "your.name@company.com",
"ZEBRUNNER_TOKEN": "<your-zebrunner-api-token>"
}
}
}
}
Rule of thumb when both are connected:
Use zebrunner (official) for | Use mcp-zebrunner (Advanced) for |
|---|---|
| Standard CRUD (test cases, suites, runs, shared steps) | Failure forensics, runtime + flakiness analytics |
Server-side filter DSL on list_test_cases / list_test_runs | Reporting, dashboards, regression analyzers |
| File upload / download, bulk launch ops, milestone create | Preview/confirm safe mutations (adv_create_test_case, …) |
Inside chat, ask about_mcp_tools with mode: "routing" or open the
zebrunner://mcp-routing resource to get the same guidance.
See docs/OFFICIAL_MCP_PARITY.md for the
full live-generated diff.
Once connected, you can use these tools through natural language in your AI assistant. Here's a comprehensive reference of all 40+ available tools organized by category.
All tools are registered under two names: the canonical
adv_<name>form (e.g.adv_create_test_case, recommended in new prompts and required when both MCPs are connected to avoid collisions with the official Zebrunner MCP) and a deprecated legacy alias (<name>, kept temporarily so existing prompts keep working). Examples below use the legacy form for brevity; both forms behave identically.
| Tool | Description | Example Usage | Best For |
|---|---|---|---|
get_test_case_by_key | Get detailed test case information | "Get test case MCP-123 details" | All roles |
get_test_cases_advanced | Advanced filtering with automation states, dates | "Get test cases created after 2025-01-01 with automation state 'Manual'" | QA, SDETs |
get_test_cases_by_automation_state | Filter by specific automation states | "Show me all 'Not Automated' test cases in project MCP" | SDETs, Managers |
get_test_case_by_title | Search test cases by title (partial match) | "Find test cases with title containing 'login functionality'" | All roles |
get_test_case_by_filter | Advanced filtering by suite, dates, priority, automation state | "Get test cases from suite 491 created after 2025-01-01 with high priority" | QA, Managers |
get_automation_states | List available automation states | "What automation states are available for project MCP?" | All roles |
get_automation_priorities | List available priorities with IDs | "Show me all priority levels for project MCP" | All roles |
| Tool | Description | Example Usage | Best For |
|---|---|---|---|
get_all_tcm_test_cases_by_project | Get ALL test cases (handles pagination) | "Get all test cases for project MCP" | Managers, Leads |
get_all_tcm_test_cases_with_root_suite_id | All test cases with hierarchy info | "Get all test cases with their root suite information" | Analysts |
get_test_cases_by_suite_smart | Smart suite test case retrieval with root/child auto-detection | "Get test cases from suite 18824 in project MCP using smart mode" | QA, Analysts |
Most test case tools support optional change history enrichment — fetching the audit log of modifications for each test case. This is useful for understanding when steps were changed, when automation state transitioned, or when a test case was deprecated.
| Parameter | Type | Default | Description |
|---|---|---|---|
include_history | boolean | false | Attach a history array of parsed change entries to each test case |
history_filter | steps_only | events_only | all | steps_only | Filter: step/precondition diffs only, lifecycle events only, or all changes |
history_limit | number (1–100) | 20 | Max history entries per test case |
Supported on: get_test_case_by_key, get_test_cases_advanced, get_test_cases_by_automation_state, get_test_case_by_title, get_test_case_by_filter, get_all_tcm_test_cases_by_project, get_test_cases_by_suite_smart
Example prompts:
"Get test case MCP-29 with change history" → sets include_history=true"Show me MCP-29 history, events only" → sets include_history=true, history_filter='events_only'"Get all automated test cases with their last 5 changes" → sets include_history=true, history_limit=5Detected events: became_automated, became_manual, became_deprecated, became_undeprecated, steps_changed, preconditions_changed, postconditions_changed, and dynamically generated became_<state_name> for any project-specific automation state.
| Tool | Description | Example Usage | Best For |
|---|---|---|---|
list_test_suites | List suites with pagination | "List test suites for project MCP" | All roles |
get_suite_hierarchy | Hierarchical tree view | "Show me the hierarchy of test suites with depth 3" | Managers, QA |
get_root_suites | Get top-level suites | "Show me all root suites for project MCP" | Managers |
get_all_subsuites | Get all child suites | "Get all subsuites from root suite 18697" | QA, Analysts |
| Tool | Description | Example Usage | Best For |
|---|---|---|---|
get_tcm_suite_by_id | Get suite by ID (simple: fast direct API, full: hierarchy-enriched) | "Show me suite 20421 in project MCP" | All roles |
get_tcm_test_suites_by_project | Comprehensive suite listing | "Get all suites for project MCP with hierarchy" | Managers |
get_all_tcm_test_case_suites_by_project | Get all TCM test case suites with pagination | "Get all TCM test case suites for project MCP" | Managers, Analysts |
get_root_id_by_suite_id | Find root suite for any suite | "What's the root suite for suite 12345?" | Analysts |
Safety Model: Every mutation tool follows a two-call confirmation gate. The first call returns a preview; only after user approval should
confirm: truebe passed to execute the mutation. All mutations are audit-logged to~/.mcp-zebrunner-audit.jsonl. Usedry_run: truefor raw payload inspection.Next-step steering (v7.2.2): After every successful mutation, the server appends a
Tip:block guiding the LLM to the most useful next action (e.g., "validate quality", "publish the draft", "populate the test run"). Hints are conditional -- they are suppressed when redundant. For example, the quality-check hint is omitted ifreview: truewas already used. Created test cases are always forced todraft=true, and the hint always reminds the LLM to publish viaupdate_test_case. This approach is inspired by the Strands Agents steering pattern and delivers just-in-time guidance without bloating system prompts.
| Tool | Description | Example Usage | Best For |
|---|---|---|---|
create_test_suite | (Beta) Create a new Test Suite | "Create root suite 'Payments' in project MCP" | QA, Managers |
update_test_suite | (Beta) Update an existing Test Suite (full PUT) | "Rename suite 18697 to 'Login & Registration'" | QA, Managers |
| Tool | Description | Example Usage | Best For |
|---|---|---|---|
create_test_case | (Beta) Create a new Test Case with runtime validation of priorities, automation states, and custom fields. Accepts {file_path} in attachments. Optional source_case_key to pre-populate from an existing test case. | "Create test case 'Verify login' in suite 17470 for project MCP" | QA, SDETs |
update_test_case | (Beta) Partially update a Test Case by ID or key (PATCH). Accepts {file_path} in attachments for local file upload. | "Attach /Users/me/screenshot.png to test case MCP-42" | QA, SDETs |
| Tool | Description | Example Usage | Best For |
|---|---|---|---|
get_test_coverage_by_test_case_steps_by_key | Analyze implementation coverage | "Analyze coverage for MCP-123 against this code: [paste code]" | Developers, SDETs |
get_enhanced_test_coverage_with_rules | Rules-based coverage analysis | "Enhanced coverage analysis for MCP-123 with framework detection" | SDETs, Leads |
| Tool | Description | Example Usage | Best For |
|---|---|---|---|
analyze_test_cases_duplicates | Find and group similar test cases by step similarity | "Analyze suite 12345 for duplicates with 80% similarity threshold" | QA Managers, SDETs |
analyze_test_cases_duplicates_semantic | Advanced semantic analysis with LLM-powered step clustering | "Semantic analysis of suite 12345 with step clustering and medoid selection" | Senior QA, Test Architects |
🔗 Clickable Links Feature: Both duplicate analysis tools support clickable links to Zebrunner web UI:
include_clickable_links: true to make test case keys clickable in markdown outputwebUrl fields when enabledZEBRUNNER_URL environment variable"Analyze suite 17585 for duplicates with clickable links enabled"| Tool | Description | Example Usage | Best For |
|---|---|---|---|
generate_draft_test_by_key | Generate test code with framework detection | "Generate Java/Carina test for MCP-123 based on this implementation" | SDETs, Developers |
validate_test_case | Quality validation with improvement | "Validate test case MCP-123 and suggest improvements" | QA, Managers |
improve_test_case | Dedicated improvement tool | "Improve test case MCP-123 with specific suggestions" | QA, SDETs |
| Tool | Description | Example Usage | Best For |
|---|---|---|---|
get_launch_details | Comprehensive launch information | "Get launch details for launch 118685" | Managers, Leads |
get_launch_summary | Quick launch overview | "Show me summary for launch 118685" | Managers |
get_all_launches_for_project | List individual launch executions with pagination | "List launches for project MCP from last month" | Managers, Leads |
get_all_launches_with_filter | Search launches by milestone/build/name | "Find launches for milestone 2.1.0 and build 'mcp-app-2.1.0'" | Managers, Leads |
generate_weekly_regression_stability_report | Weekly regression stability report with WoW delta, linked issues, and strict Jira-ready output. Supports launch list or build-based auto-discovery (version-segment build lookup with launch.build validation when needed). | "Weekly stability report for MCP: (120906 vs 120814), (120901 vs 120809)" or "Weekly stability report for builds 9117 vs 48886" | Managers, Leads |
analyze_regression_runtime | Regression Runtime Efficiency — per-launch elapsed time, attempt/re-run breakdown, configurable duration classification (Short/Medium/Long), dual metrics for both Tests and Test Cases (Average Runtime, WRI), duration distribution with test case counts, and baseline comparison with delta tracking. | "Analyze regression runtime for the iOS project on the latest milestone. Show WRI and WRI per test case." or "Compare runtime for latest vs previous milestone" | Managers, Leads, SDETs |
analyze_regression_runtime— Usage Examples:
- "Analyze regression runtime for the iOS project on the latest milestone. Show both average runtime per test and per test case, plus WRI and WRI per test case."
- "Run regression runtime analysis for all three projects on their latest milestones. Compare how many test cases fall into Short vs Medium vs Long buckets per team."
- "Analyze regression runtime for the Android project, latest vs previous milestone. Show WRI and WRI per test case for both. Has efficiency improved or degraded?"
- "Analyze regression runtime with medium_threshold_seconds: 120 and long_threshold_seconds: 300. Show which tests fall into each bucket."
- "What is the average time cost per test case in each duration bucket? Are long-running tests covering proportionally more test cases?"
| Tool | Description | Example Usage | Best For |
|---|---|---|---|
analyze_test_failure | Deep forensic analysis of failed tests with logs, screenshots, error classification, and recommendations. NEW in v5.11.0: Compare with last passed execution! Shows what changed (logs, duration, environment). Also: format: 'jira' generates ready-to-paste Jira tickets with auto-priority, labels, and clickable 🎥 video links! | "Analyze test failure 5451420 in launch 120806 and compare with last passed execution" | QA Engineers, SDETs, Managers |
get_test_execution_history | 🆕 NEW in v5.11.0! Track test execution trends across launches. View pass/fail history, find last passed execution, calculate pass rate. Critical Detection: Highlights when test failed in all recent runs! | "Show execution history for test 5478492" or "Has test 5478492 been failing consistently?" | QA Engineers, SDETs, Managers |
detailed_analyze_launch_failures | 🚀 Enhanced v4.12.1 Analyze failures WITHOUT linked issues with Claude-level intelligence + Jira format support. Auto-deep-dive with executive summary, timeline, patterns, priorities. NEW: Generate Jira-ready tickets for entire launches! | "Analyze failures in launch 120806" or with format: 'jira' | QA Managers, SDETs, Team Leads |
✅ FIXED in v5.2.4! Improved Reliability & Video Links
- 🎥 Video URLs fixed: Now uses test-sessions API (
/api/reporting/v1/launches/{id}/test-sessions) for reliable video artifact extraction- 🛡️ Comprehensive error handling: Gracefully handles missing screenshots/logs (returns empty arrays instead of throwing)
- 🚫 No more "no result received" errors: All API calls have proper try-catch blocks with fallbacks
- 🐛 Better debugging: Enhanced logging when
debug: trueis enabled in config- 📊 Schema updates: Supports both old and new API structures for backward compatibility
🎫 NEW in v4.12.1! Jira-Ready Ticket Format
- Use
format: 'jira'to generate ready-to-paste Jira tickets- Auto-calculated priority based on stability and impact
- Smart labels:
test-automation,locator-issue,flaky-test, etc.- Complete Jira markup: Tables, panels, code blocks, clickable links
- 🎥 Prominent video links: Beautiful panels + links section
- Copy-paste ready: No manual formatting needed
- Saves 5-10 minutes per ticket with consistent quality
🧠 Enhanced in v4.11.1!
detailed_analyze_launch_failuresprovides automatic deep synthesis like Claude would manually provide:
- 🎯 Executive Summary: Key findings, patterns, and stability indicators
- 📅 Timeline Analysis: When failures first appeared, progression tracking
- 🔬 Pattern Analysis: Groups by root cause with affected tests and stability %
- 🎯 Priority-Based Recommendations: 🔴 HIGH / 🟡 MEDIUM / 🟢 LOW with impact analysis
- 📋 Enhanced Test Details: Full error messages, stack traces, timestamps
- ❓ Smart Follow-up Questions: Guides next investigation steps
- Smart filtering: Analyzes only tests WITHOUT linked issues by default
- Optional AI screenshot analysis for all tests
- No manual follow-up needed - get complete picture in one call!
🆕 NEW in v5.11.0! Test Execution History & Comparison
- 📊 Track execution trends: View pass/fail history across launches with
get_test_execution_history- 🔄 Compare with last passed: New
compareWithLastPassedparameter inanalyze_test_failure
- Compare logs (new errors detection)
- Compare duration (performance regression)
- Compare environment (device/platform changes)
- Compare screenshots (visual differences)
- ⚠️ Critical detection: Automatically highlights when test failed in all recent executions
- 🎯 Regression analysis: See exactly what changed between passed and failed runs
- 📈 Pass rate metrics: Calculate test stability over time
- See TOOLS_CATALOG.md for example prompts!
| Tool | Description | Example Usage | Best For |
|---|---|---|---|
download_test_screenshot | Download protected screenshots from Zebrunner with authentication | "Download screenshot from https://your-workspace.zebrunner.com/files/abc123 for test 5451420" | QA Engineers, Automation Engineers |
analyze_screenshot | Visual analysis with OCR, UI detection, and Claude Vision | "Analyze screenshot https://your-workspace.zebrunner.com/files/abc123 with OCR and detailed analysis" | QA Engineers, SDETs, Developers |
📸 Enhanced! Screenshot analysis now integrated directly into
analyze_test_failureandanalyze_launch_failures- no need to call separately! See Screenshot Analysis Guide for details.
| Tool | Description | Example Usage | Best For |
|---|---|---|---|
get_platform_results_by_period | Aggregated test results, pass rate, and statistics for a project over a time period | "Get results for MCP during last 7 days" or "Show pass rate for MCP" | Managers, Leads |
get_top_bugs | Most frequent defects | "Show me top 10 bugs from last week" | Managers, Developers |
get_bug_review | Detailed bug review with failure analysis, priority breakdown, and automatic detail fetching | "Get bug review with full failure details for top 10 bugs" | Managers, QA, Developers |
get_bug_failure_info | Comprehensive failure info by hashcode (alternative to auto-fetch) | "Get failure info for hashcode 1051677506" | Developers, SDETs |
get_project_milestones | Available milestones | "Get all milestones for project MCP" | Managers, PMs |
Period behavior for reporting widgets: period is passed to Zebrunner widgets as-is (for example Today, Month, Last 30 Days). If a selected widget does not support a specific period label, the API will return an error.
| Tool | Description | Example Usage | Best For |
|---|---|---|---|
get_available_projects | Discover all accessible projects | "What projects can I access?" | All roles |
test_reporting_connection | Test API connectivity | "Test my connection to Zebrunner" | All roles |
about_mcp_tools | Summarize tools, prompts, resources, or show session metrics. Modes: summary, tool, prompts, resources, metrics | "Using Zebrunner MCP make a summary of all tools with examples" or "Show me tool usage metrics for this session" | All roles |
| Tool | Description | Example Usage | Best For |
|---|---|---|---|
list_test_runs | Advanced test run filtering | "Get test runs from last 30 days with status 'FAILED'" | Managers, SDETs |
get_test_run_by_id | Detailed test run information | "Get details for test run 12345" | Managers, QA |
list_test_run_test_cases | Test cases in a specific run | "Show me all test cases in test run 12345" | QA, Analysts |
| Tool | Description | Example Usage | Best For |
|---|---|---|---|
get_test_run_result_statuses | Available result statuses | "What result statuses are configured for project MCP?" | QA, SDETs |
get_test_run_configuration_groups | Configuration options | "Show me configuration groups for project MCP" | SDETs, Leads |
Full guide: docs/RESOURCES_AND_PROMPTS.md — detailed usage, examples, reference tables, and contributor guide.
In addition to 60 tools, the server now provides 13 resources and 14 prompts that improve discoverability and automate complex workflows.
@ Context InjectionResources are read-only reference data you attach to your conversation via the @ menu. They help the AI use exact parameter values instead of guessing.
| Resource | What it provides |
|---|---|
@zebrunner://reports/types | 6 report types with params, defaults, and examples |
@zebrunner://periods | 12 valid time period values (case-sensitive) |
@zebrunner://charts | Chart formats, types, and 17 supported tools |
@zebrunner://formats | 5 output format families with valid values |
@zebrunner://projects | All accessible projects with keys and IDs |
@zebrunner://projects/{key}/suites | Root test suites for a project |
@zebrunner://projects/{key}/suite-hierarchy | Full suite tree with parent-child relationships |
@zebrunner://projects/{key}/automation-states | Automation state names and IDs |
@zebrunner://projects/{key}/priorities | Priority levels and IDs |
@zebrunner://projects/{key}/milestones | Active and completed milestones |
@zebrunner://projects/{key}/result-statuses | Test run result statuses |
@zebrunner://projects/{key}/configuration-groups | Test run config groups and options |
@zebrunner://projects/{key}/fields | System and custom field definitions |
Quick example:
@ zebrunner://reports/types
@ zebrunner://projects
Generate an executive dashboard for all starred projects.
/ Workflow CommandsPrompts are pre-built workflow instructions triggered via the / command menu. Each prompt guides the AI through a tested multi-tool orchestration.
| Prompt | Parameters | What it does |
|---|---|---|
/pass-rate | projects | Cross-platform pass rate with target comparison |
/runtime-efficiency | projects | Runtime metrics with milestone delta |
/automation-coverage | projects | 7-metric coverage + automation intake rate |
/executive-dashboard | projects | 5-section standup-ready dashboard |
/release-readiness | project, milestone? | Go/No-Go assessment with evidence |
/suite-coverage | projects | Per-suite coverage tables (TOTAL + TOTAL REGRESSION) |
/review-test-case | case_key | Validate + improve a test case |
/launch-triage | project | Post-regression failure analysis |
/flaky-review | project | Flaky test detection + stabilization plan |
/find-duplicates | project, suite_id? | Structural + semantic duplicate analysis |
/daily-qa-standup | projects | Daily standup summary with action items |
/automation-gaps | projects | Automation backlog prioritization |
/project-overview | project | Comprehensive project health card |
/session-metrics | (none) | Show tool usage stats for the current session |
Quick example:
/executive-dashboard
projects: android,ios,web
# Get yesterday's results
"Get platform results for last 7 days for project MCP"
# Check recent failures
"Show me top 5 bugs from last week"
# Review recent launches
"Get all launches for project MCP from last 3 days"
# Basic duplicate analysis
"Analyze suite 12345 for duplicates with 80% similarity threshold"
# Advanced semantic analysis with step clustering
"Semantic analysis of suite 12345 with 85% step clustering and medoid selection"
# Analyze specific test cases for duplicates
"Analyze test cases MCP-123, MCP-124, MCP-125 for duplicates"
# Project-wide duplicate analysis (use with caution - large datasets)
"Analyze project MCP for test case duplicates with 85% similarity"
# Get detailed similarity matrix with pattern types
"Analyze suite 12345 for duplicates with similarity matrix included"
# Two-phase clustering with semantic insights
"Semantic duplicate analysis with step clustering threshold 90% and insights enabled"
# Enable clickable links for easy navigation
"Analyze suite 17585 for duplicates with clickable links enabled"
# Comprehensive project health
"Get all launches for project MCP with milestone filter"
# Platform performance analysis
"Get iOS and Android test results for the last month"
# Quality metrics
"Get all test cases by automation state for project MCP"
# Milestone tracking
"Get project milestones for MCP with completion status"
# Build-specific results
"Get launches for build 'mcp-app-2.1.0-release' and milestone '2.1.0'"
# Release readiness
"Get automation readiness for all test cases in project MCP"
# Bug analysis
"Show me top 10 most frequent bugs with issue links"
# Failure investigation
"Get test run 12345 details with all test cases"
# Platform-specific issues
"Get Android test results for last 7 days with failure analysis"
"Get test case MCP-45 details and validate its quality"
"Show me all test cases in suite 18708 that need improvement"
"Validate test case MCP-67 and suggest specific improvements"
"Find test cases with title containing 'login' to review authentication tests"
"Get test cases from suite 491 with high priority for today's testing"
"I'm writing a test case for login functionality. What should I include based on our quality standards?"
"Improve test case MCP-89 - it's missing some preconditions"
"Check if test case MCP-12 is ready for manual execution"
"Show me the hierarchy of test suites for project MYAPP to understand the structure"
"Get all subsuites from Authentication suite to review test coverage"
"List test cases in suite 18708 and identify which ones need validation"
"Find test cases with title containing 'payment' to organize payment testing"
"Get all high priority test cases from suite 491 for release testing"
"I executed test case MCP-34 manually. Here's what I did: [paste your execution notes]. Analyze coverage against the documented steps."
"Compare test case MCP-56 with this manual testing session: [paste session details]"
"Validate test case MCP-78 for automation readiness"
"Get all test cases in suite 18708 and identify which ones are ready for automation"
"Check test case MCP-23 - does it have clear, unambiguous steps for automation?"
"Find test cases with title containing 'API' to prioritize API automation"
"Get automation priorities to understand which test cases to automate first"
"Get test cases from suite 491 with 'Not Automated' state for automation planning"
"Generate Java/Carina test code for MCP-45 based on this existing framework: [paste framework code]"
"Create JavaScript/Jest test for MCP-67 using this test structure: [paste test example]"
"Generate Python/Pytest code for MCP-89 with these page objects: [paste page object code]"
"Analyze test coverage for MCP-34 against this automated test: [paste test code]"
"Enhanced coverage analysis for MCP-56 with rules validation - here's my implementation: [paste code]"
"Compare test case MCP-78 steps with this Selenium test: [paste selenium code]"
"Generate test code for MCP-45 using our Carina framework with these page objects: [paste existing code]"
"Create test automation for MCP-67 that integrates with this CI/CD pipeline: [paste pipeline config]"
"Generate API test for MCP-89 using this RestAssured setup: [paste API test framework]"
"Validate all test cases in Authentication suite for automation readiness"
"Generate coverage report for all test cases in project MYAPP"
"Identify test cases in suite 18708 that have automation blockers"
"Find test cases with title containing 'regression' for automation sprint planning"
"Get test cases from suite 491 created after 2025-01-01 with high priority for next automation cycle"
"Get automation priorities and states to create automation roadmap"
"Get test case MCP-45 details to understand what I need to implement"
"Show me test cases related to login functionality in project MYAPP"
"Explain test case MCP-67 requirements in developer-friendly format"
"Find test cases with title containing 'authentication' for my feature development"
"Get high priority test cases from suite 491 that I need to implement"
"I implemented this feature: [paste code]. Analyze coverage against test case MCP-34"
"Here's my API implementation: [paste code]. Check coverage against test case MCP-56"
"Validate my UI implementation against test case MCP-78: [paste component code]"
"Generate unit tests for test case MCP-45 using Jest framework"
"Create integration tests for MCP-67 based on this API: [paste API code]"
"Generate test data setup for MCP-89 using this database schema: [paste schema]"
"Get test execution results for launch 118685 to understand recent failures"
"Show me top bugs from last week related to my feature area"
"Get detailed bug review for Android project from last 14 days"
"Show me comprehensive failure information for hashcode 1051677506"
"What are the top 50 bugs affecting our project this month?"
"Give me a summary of bug failures with reproduction dates from last 7 days"
"Analyze test case MCP-34 - why might it be failing in automation?"
"Get quality metrics for all test cases in project MYAPP"
"Show me test cases that need improvement in suite 18708"
"Generate quality report for test cases created this month"
"Find test cases with title containing 'critical' to assess critical path quality"
"Get automation priorities to align team efforts with business priorities"
"Get test cases from suite 491 with high priority that need quality improvements"
"Show me the complete test suite hierarchy for project MYAPP"
"Analyze test coverage across all suites in project MYAPP"
"Get automation readiness status for all test cases in Authentication suite"
"Get test execution results by platform for the last 30 days"
"Show me top 10 most frequent bugs to prioritize fixes"
"Analyze test case quality trends in project MYAPP"
"Get all launches for project MYAPP from last 30 days with milestone tracking"
"Show me platform results for last 7 days to track team performance"
"Get test runs with status 'FAILED' from last week for team retrospective"
"Validate all test cases in suite 18708 to identify common quality issues"
"Generate improvement recommendations for test cases created by junior team members"
"Analyze which test cases are consistently failing automation"
"Get top 10 bugs from last month to identify process improvements"
"Show me test runs with detailed failure analysis for process optimization"
"Get automation readiness metrics across all test cases"
"Find test cases with title containing 'flaky' to address test stability"
"Get test cases from suite 491 with medium priority that could be automated"
"Get automation priorities to optimize team resource allocation"
"Generate comprehensive test coverage report for project MYAPP in markdown format"
"Get test execution summary for launch 118685 for stakeholder presentation"
"Show me test quality metrics and improvement suggestions for quarterly review"
"Get platform results by period for executive dashboard"
"Create milestone progress report with test execution data"
"Generate weekly team performance report with launch and bug metrics"
"Get all launches for project MYAPP from yesterday"
"Show me top 5 bugs from last 7 days with issue links"
"Get platform results for iOS and Android from last week"
"Check automation readiness for upcoming release milestone"
"Get test run details for failed runs from last 24 hours"
"Show me project milestones and their completion status"
"Get overall test coverage status for project MYAPP"
"Show me test execution results by platform for the last quarter"
"Generate project testing health report in markdown format"
"Get all launches for project MYAPP with milestone and build tracking"
"Show me platform results summary for executive review"
"Get project milestones with completion status and testing metrics"
"Get test cases related to [feature name] in project MYAPP"
"Show me test execution results for [feature name] functionality"
"Analyze test coverage for [epic/story] requirements"
"Get launches filtered by milestone for feature release tracking"
"Show me test runs for specific build versions"
"Get quality metrics for all test cases in project MYAPP"
"Show me test case validation results and improvement areas"
"Generate testing quality report for stakeholder presentation"
"Get top bugs analysis for quality trend assessment"
"Show me automation vs manual testing ratio across the project"
"Find test cases with title containing 'smoke' to assess smoke test coverage"
"Get automation priorities to communicate testing strategy to stakeholders"
"Get test cases from suite 491 with critical priority for risk assessment"
"Show me top 10 most frequent bugs in project MYAPP"
"Get test cases that are not ready for automation and assess risk"
"Analyze test execution trends to identify potential quality risks"
"Get platform-specific failure rates for the last month"
"Show me test runs with high failure rates for risk mitigation"
"Get milestone-based testing progress for release risk assessment"
"Get automation readiness assessment for all test cases in project MYAPP"
"Show me test cases that need quality improvement and estimate effort"
"Analyze test suite structure to identify optimization opportunities"
"Get testing resource utilization by platform and time period"
"Show me milestone testing progress for sprint planning"
"Get comprehensive launch analysis for capacity planning"
"Find test cases with title containing 'performance' to plan performance testing"
"Get automation priorities to allocate automation resources effectively"
"Get test cases from suite 491 created in last month to plan review sessions"
"Generate executive dashboard with platform results and bug trends"
"Get quarterly testing metrics with milestone progress"
"Show me ROI analysis of automation vs manual testing efforts"
"Create board-ready testing status report with key metrics"
"Get testing velocity trends for project timeline assessment"
All tools support multiple output formats:
json - Structured data (default)markdown - Rich formatted output with sections and tablesstring - Human-readable text summariesdto - Raw data objectsExample:
"Get test case PROJ-123 in markdown format"
"Show me test suites as JSON"
# Required (STDIO mode) / Optional (HTTP selfauth mode — see below)
ZEBRUNNER_URL=https://your-instance.zebrunner.com/api/public/v1
ZEBRUNNER_LOGIN=your.email@company.com
ZEBRUNNER_TOKEN=your_api_token
# Optional - HTTP Authentication Mode
MCP_AUTH_MODE=selfauth # Enable per-user credential form (Mode 3)
MCP_TRANSPORT=http # Use HTTP transport
PORT=3000 # HTTP server port
TOKEN_STORE_KEY=your-secret # Encryption key for stored credentials
TOKEN_STORE_PATH=./tokens.enc # Path for encrypted credential store
# Optional - Basic Settings
DEBUG=false # Enable detailed logging (default: false)
DEFAULT_PAGE_SIZE=100 # Default items per page (optional)
MAX_PAGE_SIZE=100 # Maximum items per page (optional)
# Optional - Intelligent Rules System
ENABLE_RULES_ENGINE=true # Enable intelligent rules (auto-detected if rules file exists)
MCP_RULES_FILE=custom-rules.md # Custom technical rules file (optional)
MIN_COVERAGE_THRESHOLD=70 # Minimum coverage percentage (optional)
REQUIRE_UI_VALIDATION=true # Require UI validation in tests (optional)
REQUIRE_API_VALIDATION=true # Require API validation in tests (optional)
zebrunner-config.json)The MCP server ships with a zebrunner-config.json in the project root that contains instance-specific settings. Customize this file to adapt the server to your Zebrunner workspace. If the file is missing or contains invalid values, built-in defaults are used automatically.
{
"projectAliases": {
"web": "WEB",
"android": "AND",
"ios": "IOS",
"api": "WEB"
},
"testConnectionProjectKey": "MCP",
"widgetTemplates": {
"RESULTS_BY_PLATFORM": 8,
"TOP_BUGS": 4,
"BUG_REVIEW": 9,
"FAILURE_INFO": 6,
"FAILURE_DETAILS": 10
},
"dashboardNames": {
"weeklyResults": "Weekly results",
"bugsReproRate": "Bugs repro rate"
},
"platformMap": {
"web": [],
"api": ["api"],
"android": [],
"ios": ["ios"]
},
"featureAreaKeywords": {
"quicklog": "Search & Quick Log",
"search": "Search & Quick Log",
"notification": "Notifications",
"meal": "Meal Management",
"message": "Messages",
"goal": "Goals",
"dashboard": "Dashboard",
"premium": "Premium Features",
"export": "Export"
}
}
| Key | Description |
|---|---|
projectAliases | Maps short names (web, android, etc.) to actual Zebrunner project keys. Update these to match your projects. |
testConnectionProjectKey | Project key used by the test_reporting_connection tool when no env var is set. |
widgetTemplates | Numeric IDs for SQL widget templates used by reporting tools. These IDs are tenant-specific — check your Zebrunner instance if reports return empty data. |
dashboardNames | Dashboard display names used by widget SQL queries. Must match dashboard names in your Zebrunner workspace. |
platformMap | Maps platform aliases to widget SQL PLATFORM filter values. |
featureAreaKeywords | Keyword-to-label mapping used by regression stability reports to bucket test names into feature areas. Customize for your application's feature structure. |
Individual keys can be omitted — only the keys you include will override the defaults.
When running in HTTP mode with MCP_AUTH_MODE=selfauth and without setting ZEBRUNNER_URL, each user provides their own Zebrunner instance URL on the login form. This enables multi-tenant hosting where a single MCP server serves users across different Zebrunner organizations.
https://mcp.zebrunner.com)/settingsZEBRUNNER_URL IS set as an environment variable, the URL field is hidden and the env value is used globally (existing behavior, no change)The rules system automatically detects and uses rules files in your project root:
If you have a mcp-zebrunner-rules.md file in your project root, the rules engine will automatically enable itself.
You can customize the three types of rules:
test_case_review_rules.md)# Custom Test Case Review Rules
## Rule 1: Title Quality
- Titles must be descriptive and specific
- Minimum length: 10 characters
- Should not contain vague terms like "test", "check"
## Rule 2: Test Steps
- Each step must have clear action and expected result
- Steps should be numbered and sequential
- Avoid combining multiple actions in one step
test_case_analysis_checkpoints.md)# Custom Analysis Checkpoints
## Independence Assessment
- [ ] Can this test case run independently?
- [ ] Are all preconditions explicitly stated?
- [ ] No dependencies on other test cases?
## Automation Readiness
- [ ] All steps are unambiguous?
- [ ] Technical feasibility confirmed?
- [ ] Stable selectors available?
mcp-zebrunner-rules.md)# Technical Configuration
## Coverage Thresholds
- Overall Coverage: 80%
- Critical Steps: 95%
- UI Validation Steps: 85%
## Framework Detection
**Java/TestNG**:
- Keywords: @Test, TestNG, WebDriver
- File patterns: *Test.java, *Tests.java
npm run test:health
npm run smoke
npm test
npm run test:unit # Fast unit tests
npm run test:integration # API integration tests
npm run test:e2e # End-to-end tests
ZEBRUNNER_LOGIN and ZEBRUNNER_TOKENZEBRUNNER_URL is correctdist/server.js is correctnpm run build)ENABLE_RULES_ENGINE=true in your .env fileEnable detailed logging to troubleshoot issues:
DEBUG=true
This will show:
npm run test:health.env file1. "Get test case PROJ-123 details"
2. "Validate test case PROJ-123"
3. "Improve test case PROJ-123 with specific suggestions"
4. "Check if test case PROJ-123 is ready for manual execution"
1. "Validate test case PROJ-456 for automation readiness"
2. "Generate Java/Carina test code for PROJ-456"
3. "Analyze coverage between test case and my implementation"
4. "Get automation readiness assessment"
1. "Get test case PROJ-789 details to understand requirements"
2. "Analyze coverage for PROJ-789 against my implementation"
3. "Generate unit tests based on test case requirements"
4. "Validate implementation completeness"
1. "Get quality metrics for all test cases in project MYAPP"
2. "Show me test cases that need improvement"
3. "Generate team quality report"
4. "Identify automation readiness across the project"
1. "Get overall test coverage status for project MYAPP"
2. "Show me test execution results by platform"
3. "Generate project testing health report"
4. "Identify quality risks and improvement opportunities"
Process multiple test cases at once:
"Validate all test cases in suite 18708"
"Generate coverage report for all test cases in project MYAPP"
"Improve all test cases that have quality issues"
Get data in the format you need:
"Get test cases as JSON for API integration"
"Show test suite hierarchy in markdown for documentation"
"Generate quality report in markdown for stakeholder presentation"
Find exactly what you need:
"Get test cases created after 2025-01-01"
"Find test cases with automation state 'Manual'"
"Show me test cases that are not ready for automation"
Leverage intelligent validation:
"Validate test case PROJ-123 using custom rules from my-project-rules.md"
"Enhanced coverage analysis with framework-specific rules"
"Generate improvement suggestions based on team quality standards"
npm testThis project is licensed under AGPL-3.0 to ensure that all improvements to the MCP server remain open-source, especially when the software is deployed as a network service.
If you modify and run the server in a way that users interact with it over a network (e.g., Claude Desktop / Cursor clients), you must make the full modified source code available to those users.
Commercial usage is allowed. For closed-source modifications or enterprise licensing, please contact the author. See LICENSE.md file for details.
Once you've completed the setup:
npm run test:healthExample first commands to try:
The intelligent rules system will help ensure your test cases meet quality standards and are ready for both manual execution and automation. Happy testing! 🚀
ZEBRUNNER_URL*Base URL for your Zebrunner instance (e.g., https://your-instance.zebrunner.com)
ZEBRUNNER_LOGIN*Your Zebrunner username/login
ZEBRUNNER_TOKEN*secretYour Zebrunner API authentication token
TIMEOUTAPI request timeout in milliseconds (default: 30000)
RETRY_ATTEMPTSNumber of retry attempts for failed API requests (default: 3)
RETRY_DELAYDelay between retry attempts in milliseconds (default: 1000)
MAX_PAGE_SIZEMaximum page size for paginated API requests (default: 100, max: 1000)
DEFAULT_PAGE_SIZEDefault page size for paginated API requests (default: 10)
DEBUGEnable debug logging (default: false)
ENABLE_RULES_ENGINEEnable the rules engine for test case validation (default: auto-detected from mcp-zebrunner-rules.md file)
STRICT_URL_VALIDATIONEnable strict URL validation for security (default: true)
SKIP_URL_VALIDATION_ON_ERRORSkip URL validation if it fails (less secure, more permissive) (default: false)
ENABLE_RATE_LIMITINGEnable rate limiting for API calls (default: true)
MAX_REQUESTS_PER_SECONDMaximum API requests per second (default: 5, max: 100)
RATE_LIMITING_BURSTAllow burst of API requests (default: 10, max: 200)