Tool Index
Connection
health
Verifies the server is running and validates your API token. Returns PAT validation status, connection status, organisation and project access, and available modules (Test runs, Test case management).
After running health, tell the assistant which organisation or project you are working on. The assistant resolves and stores the projectId, so you do not need to specify it in future tool calls.
No parameters required for this tool.
Example
Analysis
list_testruns
Lists runs with filtering by branch, environment, time window, author, and commit.
NoteFilters can be combined. Pagination uses
page and limit.get_run_details
Returns a full report for one run, including suite breakdowns, test cases, failure categories, rerun metadata, and raw JSON.
NoteProvide
testrun_id when you have a stable run identifier. Provide counter with project ID/name when your team references runs by sequence number.get_run_error_clusters
Groups one run’s failing tests by shared error signature. Returns the clusters, an unclustered bucket, a per-category rollup, and totals.
Example
- “Cluster the failures in run #47 by error type.”
- “What are the common error signatures in the latest run’s flaky tests?”
list_testcase
Lists test cases across runs with both run-level and case-level filters.
How it works:
- Identifies matching runs (by run ID, counter, or run filters like branch and time)
- Returns test cases from those runs
- Applies case-level filters (status, tag, browser, error category, runtime, artifacts)
* Provide at least one:
by_testrun_id, counter + projectId/name, or a run filter like by_branch with by_time_interval.
Example
get_testcase_details
Fetches full debug context for a single test case, including retries and artifacts.
* Provide either
testcase_id alone, or testcase_name with testrun_id or counter.
Example
debug_testcase
Debugs a test case by aggregating historical execution and failure data across multiple runs.
The tool provides:
- Root cause analysis: analyzes error messages, artifacts, stack traces, and error categories across historical runs
- Failure patterns: identifies common error categories, messages, and locations
- Fix recommendations: suggests fixes based on historical analysis and failure patterns
Debug with AI
These tools take a failing test from evidence to a verified fix. Start withget_debug_evidence, act on what it returns, then confirm the change held with verify_fix once a new test run lands.
Each one reads stored test data. None of them consume AI generation credits, and they work whether or not AI features are enabled for the project.
get_debug_evidence
Returns the flake verdict, the regression boundary, and download links for every stored artifact in one call. Start a failing-test investigation here.
The response carries 3 pieces of evidence:
- Flake verdict with the per-attempt failure signatures behind it
- Regression boundary: the last test run this test case passed, and the first one it failed
- Artifacts: trace, screenshots, and the expected, actual, and diff images on a visual failure
testcase_name or testcase_id. A fully qualified title such as Checkout > guest flow > applies a coupon is retried on its leaf title when the full string matches nothing. When neither identifier resolves, the response returns a recovery warning naming the next call, not an empty verdict.
Artifact links expire in minutes. Download what you need right away, then call the tool again to mint fresh links. An expired link is not a missing artifact.
- “Why is the checkout test failing in run #96?”
- “Get me the evidence for the failing SSO test, markdown format.”
get_flake_verdict
Compares a test case’s retry attempts within one test run and returns whether the failure repeats.
The signature behind each verdict combines the failing step, the error location, the error type and operation, the expected and received values, and the visual diff ratio. Two timeouts on different calls produce different signatures rather than collapsing into one.
The verdict describes behavior, not cause. It reports which fixes the evidence rules out, and does not say where the fix goes. Decide that after reading the artifacts, the trace, and the code.
This needs a test case that ran with retries enabled. A single attempt is always
inconclusive. The verdict is computed from the stored attempts, so the same attempts always return the same answer.- “Is the flaky login test genuinely flaky, or is it actually broken?”
verify_fix
Splits a test case’s run history at a baseline test run and compares what happened after against what happened before. Call it after a new test run lands.
A test case that passes only on a retry returns
unstable, never fixed. An unchanged error means the fix missed, not that the test case is flaky.
The baseline must be a test run this test case actually executed in. An ID from another project or another test case is rejected rather than answered against the wrong test run.
Example
- “I pushed the fix and run #104 just finished. Did it hold?”
AI Insights
AI Insights bring TestDino’s failure analysis into the assistant: failure classification, error grouping, an AI-written run summary, and per-test-case recommendations with quick fixes. These tools require AI features to be enabled for the project (Settings → AI). When AI is off, they returnstatus: "disabled" with a message to turn it on.
AI payloads are generated on demand. A section can report not_generated, queued, processing, or failed before completed; test case fixes report in_progress before completed. Call the tool again to poll until a section reaches completed.
get_ai_insights
Returns AI analysis at 3 levels, selected by which IDs you pass.
A section that errored returns
status: "unavailable" with the upstream statusCode. A 5xx or timeout is transient, so retry once; a 4xx means the ids are wrong. A disabled status is terminal: turn AI on in Settings, since polling will not produce data.- “What should we fix first in this project?”
- “Give me the AI analysis for run #96.”
- “What is the AI-suggested fix for the failing SSO test in run #96?”
get_trace_analysis
Returns a runbook for debugging a failing test from its trace.zip with the Playwright trace CLI (npx playwright trace, Playwright 1.59+), plus a short-lived download URL for the hosted trace when you pass a testcase_id. The analysis runs on your machine: download the trace, run the CLI steps, then report the root cause and fix.
Example
- “Walk me through debugging the trace for the failing checkout test.”
- “Get the runbook for analyzing a local trace.zip.”
Test Audit
The audit flow is a read tool that fetches context and browses reports (get_audit_report) and a write tool that submits a completed report (submit_audit_report).
get_audit_report
Read-only Playwright audit reads. 3 modes via action: context fetches the server-curated audit prompt and branch signals to start an audit, list browses past reports, and get retrieves one report.
Recommended workflow
get_audit_report(action="context", branch="main")fetches the audit prompt, branch signals, and the previous audit summary for the branch.- Read only the relevant local test files, shared helpers, and
playwright.config.*. Keep raw code local. Include file paths and line numbers in findings, not large excerpts. - Build the
score,findings, andrecommendations, then submit withsubmit_audit_report. get_audit_report(action="list")to browse history, orget_audit_report(action="get", reportId="...")to retrieve one report.
Best practiceIf
context returns PROJECT_NOT_FOUND, auth, or access errors, resolve the correct projectId with health before continuing. Do not present a local-only fallback as a TestDino audit.- “Start a Playwright test-quality audit on main.” (→
action=context) - “List past audit reports.” / “Show audit report
rep_123.”
submit_audit_report
Final step of the audit flow. Submits a completed report with a score and structured findings.
* Provide one of
markdownReport or markdownReportPath. projectId, orgId, and score are the only strictly required fields.
Finding category codes: surface_level_tests, missing_validation, stability_issues, hard_to_maintain, coverage_gaps, organization_ownership, setup_configuration, duplication_overlap, other.
Example
- “Submit the audit report I just completed for main with a score of 72.”
Test Case Management
list_manual_test_cases
Searches manual test cases within a project.
Example
get_manual_test_case
Fetches one manual test case, including steps and custom fields.
Example
create_manual_test_case
Creates a manual test case under a specific suite.
Example
update_manual_test_case
Updates only the fields you provide. All other fields remain unchanged.
Example
list_manual_test_suites
Returns the suite hierarchy for a project.
Example
create_manual_test_suite
Creates a new suite. Use parentSuiteId to nest it under an existing suite.
Example
Releases
Releases track milestones, sprints, and versions for a project. They nest up to 3 levels deep. Reference releases using counter-style IDs likeMS-12.
list_releases
Returns releases for a project with filtering by type, status, completion, and name.
get_release
Returns full details for one release: dates, status, linked issues, parent/root release, and rolled-up progress stats across all runs in the release and its descendants.
create_release
Creates a release or milestone. Use parentReleaseId to nest under an existing release (max 3 levels deep).
update_release
Updates only the fields you provide inside the updates object. All other fields remain unchanged.
Manual Test Runs
Manual test runs track the execution of test cases by a team. Each run belongs to a project and attaches optionally to a release. Reference runs using counter-style IDs likeRUN-12.
list_manual_runs
Returns manual test runs for a project with filtering by status, state, environment, release, and tags.
get_manual_run
Returns full details for one manual test run: name, status, state, environment, linked release, test stats (total/passed/failed/blocked/untested), contributors, attachments, and linked issues.
create_manual_run
Creates a manual test run. By default, all test cases in the project are included. You can optionally provide testCaseIds or suiteIds to limit the run to a specific subset.
update_manual_run
Updates only the fields you provide inside the updates object.
list_run_test_cases
Returns per-case execution records inside a manual run. Each record shows the test case identity (caseKey like TC-156), current assignee, and current result.
Call this before update_run_test_case to get the rtcRef for each case you want to update.
update_run_test_case
Updates a test case record within a manual run. You can set the outcome, assign it to a user, or include step results to capture a complete result entry.
NoteDo not combine
assigneeUserId with detailed result fields (comment, linkedIssues, stepResults) in a single call. The server rejects this. Make two separate calls: one to assign, one to record the detailed result.Exploratory Sessions
Exploratory sessions track unscripted testing against a mission or charter. Each session belongs to a project and attaches optionally to a release. Reference sessions using counter-style IDs likeSES-12.
list_sessions
Returns exploratory sessions for a project with filtering by status, state, session type, assignee, release, and tags.
get_session
Returns full details for one exploratory session: name, mission, status, assignee, linked release, attachments, linked issues, and findings.
create_session
Creates an exploratory session. Use mission to define the testing charter and releaseId to attach the session to a release.
NoteFindings are not available via MCP. Add findings in the TestDino UI after creating the session.
update_session
Updates only the fields you provide inside the updates object.
Integrations
Connect issue trackers and file issues from TestDino entities. Supported providers:jira, linear, asana, monday, and github.
get_integration_status
Checks whether a provider is connected for a project, and optionally returns the projects, issue types, and fields needed to create an issue.
Example
- “Is Jira connected for this project?”
- “Get Jira create options for project key TRX and Bug issue type.”
connect_integration
Starts an OAuth connection for a provider. Returns already_connected, or a connect URL to open.
NoteShow the returned connect URL to the user. Do not open it programmatically.
- “Connect Linear for this project.”
create_external_issue
Files a provider issue from a TestDino entity such as a test case, run, or manual case.
source.type values: test_run, test_suite, test_case, manual_test_case, manual_test_suite, release, manual_run, manual_run_test_case, session.
Example
- “File a Jira bug for the failing test case
a1b2c3in run #47 and link it back.” - “Preview the Linear issue you’d create for manual case TC-142.”
get_external_issue
Fetches one or more previously linked external issues.
Example
- “Is Jira issue TD-17 still open?”
- “Check the status of TD-17, TD-18 and TD-19.”
Prompts
Prompts are guided workflows the MCP server exposes alongside its tools. Clients that support MCP prompts list them as slash commands, so you pick the workflow from a menu instead of describing it.
Each prompt carries scope only, never test run data, so the assistant reads current state rather than a snapshot.
fix_run groups a test run’s failures by shared cause and orders them largest group first, because one fix there often closes many test cases at once. fix_case and fix_flake both close at verify_fix, so the assistant confirms the change against TestDino instead of judging its own work.
If you do not name a test case, fix_case lists the failing test cases first and asks which one to work on.
Prompt support varies by client. When your assistant does not list prompts, ask for the same workflow in your own words and name the test run or test case. The Debug with AI button copies an instruction that works either way.
Related
MCP Overview
What the MCP server does and when to use it
Remote MCP
Connect a hosted client with your PAT
Local MCP
Run the server on your own machine
MCP Troubleshooting
Fix connection, auth, and tool call errors