A Model Context Protocol (MCP) server that connects TestDino to AI agents. This server enables you to interact with your TestDino test data directly through natural language commands.
Quick Start
Add this to your MCP client config (~/.cursor/mcp.json for Cursor), then restart the client:
{
"mcpServers": {
"TestDino": {
"command": "npx",
"args": ["-y", "@testdino/mcp"],
"env": {
"TESTDINO_PAT": "your-pat-here"
}
}
}
}Get your PAT from TestDino → User Settings → Personal Access Tokens, then ask your assistant: "Check TestDino health." You should see your account, organizations, and projects. Full setup for Cursor and Claude Desktop is in Integration.
What is This?
This MCP server bridges the gap between your TestDino test management platform and AI agents. Instead of manually navigating the TestDino dashboard, you can ask your AI assistant to:
- Check test run results
- Analyze test failures
- Get detailed test case information
- Manage manual test cases and suites
- Plan releases, spin up manual test runs, and assign testers
- Run exploratory testing sessions
- Record per-case verdicts (passed / failed / blocked / etc.) from chat
All through simple conversational commands.
Features
- 🔍 Health Check: Verify your connection and validate your TestDino PAT. Get account information and list all available organizations and projects.
- 📊 Test Run Management: List and retrieve detailed information about your test runs with filtering options (branch, time, author, commit, environment).
- 🧪 Test Case Analysis: Get comprehensive details about individual test cases, including errors, logs, execution steps, and artifacts (screenshots, videos, traces).
- 🐛 AI-Assisted Debugging: Debug test case failures with historical data aggregation, failure pattern analysis, and AI-friendly debugging prompts. Analyze patterns across multiple executions to identify root causes.
- 🧭 Test Quality Audit: Fetch a server-curated audit prompt plus branch signals, analyze your local test code, and store the completed report back in TestDino without uploading raw source files.
- 📝 Test Case Management: Create, update, list, and retrieve manual test cases with comprehensive filtering and organization (status, priority, severity, type, layer, behavior, tags).
- 📁 Test Suite Organization: Create and manage test suite hierarchies to organize your manual test cases.
- 🚀 Release Planning: Create, browse, and update releases (a.k.a. milestones), nest them up to 3 levels deep, and track rolled-up progress stats across all runs in a release.
- ▶️ Manual Test Runs: Spin up runs scoped to specific suites or the whole project, attach them to a release, and update workflow state without leaving chat.
- ✅ Per-case Assignment & Verdicts: Inside a run, assign each test case to a tester (by User _id or email) and set the result —
passed,failed,blocked,skipped,retest— exactly as the UI does. - 🔭 Exploratory Sessions: Create exploratory testing sessions with mission/charter, assign a tester, link to a release, and track state.
- 🧩 Failure Triage at Scale: Group a run's failing tests by their underlying error signature to see which reds are one root cause versus many, so you fix the real problem first.
- 🔗 Issue Tracker Integrations: Connect Jira, Linear, Asana, or monday.com and file a tracked issue straight from a failing test or run, then check its status later without leaving chat.
- 🔌 MCP Compatible: Built on the Model Context Protocol standard. You can configure TestDino MCP with any MCP-compatible IDEs or AI agents (Cursor, Claude Desktop, etc.).
- ⚡ Easy Setup: Install and configure in minutes with npx. No installation required!
- 🔐 Secure: PAT stored securely in your local configuration. One PAT provides access to all organizations and projects you have permissions for.
Available Tools
The server provides 33 tools across eight domains:
Test Execution & Results:
health- Verify your connection and validate your PAT. Shows account information, available organizations, and projects with access permissions.list_testruns- Browse test runs with filters (branch, time interval, author, commit, environment). Supports pagination and batch operations.get_run_details- Get comprehensive details about a specific test run including statistics, test suites, test cases, and metadata. Supports batch operations (comma-separated IDs, max 20).list_testcase- List test cases with comprehensive filtering (by test run, status, browser, error category, branch, environment, commit, author, spec file, tags, runtime, artifacts, and more). Can filter by test run criteria or directly by test case properties.get_testcase_details- Get detailed information about a specific test case including error messages, stack traces, test steps, console logs, and artifacts. Can identify by testcase_id alone or by testcase_name with testrun_id/counter.debug_testcase- Debug a test case by aggregating historical failure data across multiple executions. Returns failure patterns, error categories, common error messages, error locations, browser-specific issues, and a pre-formatted debugging prompt for AI analysis. Perfect for root-cause analysis and identifying flaky test behavior.get_audit_report- Fetch the audit context (server-curated prompt + top failing / flaky / slow tests for the branch) to start a new audit, browse historical reports, or retrieve one byreportId.submit_audit_report- Submit a completed audit report (score, findings, recommendations, markdown) to TestDino.
Test Case Management:
list_manual_test_cases- Search and list manual test cases with comprehensive filtering (project, suite, status, priority, severity, type, layer, behavior, automation status, tags, flaky status).get_manual_test_case- Get detailed information about a specific manual test case including steps, custom fields, preconditions, postconditions, and all metadata.create_manual_test_case- Create new manual test cases with steps, preconditions, postconditions, and metadata (priority, severity, type, layer, behavior).update_manual_test_case- Update existing manual test cases (title, description, steps, status, priority, severity, type, layer, behavior, preconditions, postconditions).list_manual_test_suites- List test suite hierarchy to find suite IDs for organization. Supports filtering by parent suite.create_manual_test_suite- Create new test suite folders to organize test cases. Supports nested suites by providing parentSuiteId.
Releases (a.k.a. Milestones):
list_releases- Browse releases for a project with filters (search, type, completion status, parent release). Releases group runs + sessions and can nest up to 3 levels deep.get_release- Get full details for one release including dates, status, parent/root hierarchy, and rolled-up progress stats across all runs in this release and its descendants. Accepts internal_idor counter-style ID likeMS-12.create_release- Create a new release with name, type, dates, and optional parent for nesting.update_release- Modify an existing release — name, dates, completion flags, type, linked issues. Closed releases are still editable.
Manual Test Runs:
list_manual_runs- Browse manual runs in a project. Filter by status, state, environment, release, tags, or free-text name search.get_manual_run- Get full details for one run — test stats (total/passed/failed/blocked/untested), contributors, attachments, linked release. Accepts internal_idor counter-style ID likeRUN-12.create_manual_run- Create a new manual run. ChooseselectionMode='all'for every case in the project, or'selected'with suite/case IDs to scope it. Attach to a release withreleaseId.update_manual_run- Modify run metadata — name, environment, state, release attachment, tags. Closed runs are read-only except forreleaseId.list_run_test_cases- Get the per-case execution rows inside a run — exactly what the UI shows in the run's test-case table. Each row includes the current assignee and current result. Filter by assignee (email or _id) or result.update_run_test_case- Set the assignee and/or result for one test case inside a run — same as clicking "Assign to" + the result pill in the UI. Works even on untested cases (auto-creates the per-case row on first edit). Accepts caseKey (TC-156), test case _id, or the internaltcm_rtc_…ID.
Exploratory Sessions:
list_sessions- Browse exploratory sessions in a project. Filter by status, state, sessionType, assignee (email or _id), release, tags.get_session- Get full details for one session — name, mission, status, assignee, linked release, findings. Accepts internal_idor counter-style ID likeSES-12.create_session- Create a new exploratory session with mission/charter, sessionType, assignee, estimate, and optional release attachment.update_session- Modify session metadata — name, mission, assignee, state, estimate, linked issues, attachments.
Error Analysis:
get_run_error_clusters- Group a run's failing tests by error signature to triage at scale. Surfaces clusters of tests that share the same root-cause error, with an optionalstatusfilter (all,failed,flaky). Use it afterlist_testrunsto understand why a run failed.
Integrations (Issue Trackers):
connect_integration- Return an OAuth connect URL for a provider (Jira, Linear, Asana, monday.com, GitHub). Show the URL to the user to authorize; do not open it programmatically.get_integration_status- Report whether a provider is connected for a project. SetincludeCreateOptionsto also fetch the fields available for issue creation. Call this beforecreate_external_issue.create_external_issue- File an issue in a connected tracker (Jira, Linear, Asana, monday.com) from a TestDino source entity such as a failing test case or run. Supportspreviewand idempotent retries viaidempotencyKey.get_external_issue- Fetch previously created issues by their IDs or keys (one or many) and return their current status in the provider (Jira, Linear, Asana).
Provider support: All providers can be connected and status-checked. Issue creation works with Jira, Linear, Asana, and monday.com. Issue read-back works with Jira, Linear, and Asana. GitHub is supported as a PR/CI integration, not an issue tracker.
Installation Options
There are mainly 3 options to use TestDino MCP:
Option 1: Via npx (Recommended - No Installation)
- No installation required
- Automatically downloads and runs when needed
- Always uses the latest version
- Configured in any MCP compatible platform
**Opti
…