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.
- 🔌 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 27 tools across six 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. Built for root-cause analysis and identifying flaky test behavior.test_audit- Run a single-pass test quality audit. Fetch the server-curated prompt and branch signals, analyze the repo locally, submit the completed report, browse historical audit reports, and optionally saveTEST-AUDIT.mdlocally.
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.
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
Option 2: Global Installation
npm install -g testdino-mcp- Install once, use in any project
- Requires Node.js 20+ and npm
- Use command:
testdino-mcp
Option 3: Project Installation
npm install testdino-mcp- Installed in your project's
node_modules - Use command:
npx testdino-mcp
Integration
A simple Integration guide for Cursor IDE:
Step 1: Get Your Personal Access Token (PAT)
- Log in to your TestDino account
- Navigate to User Settings → Personal Access Tokens
- Generate a new PAT from the Personal Access Tokens section.
- Important: This PAT provides access to all organizations and projects you have permissions for
Step 2: Configure Cursor
-
Open or create the MCP configuration file:
- Windows:
%APPDATA%\Cursor\mcp.json - macOS/Linux:
~/.cursor/mcp.json - Project-specific:
.cursor/mcp.jsonin your project root
- Windows:
-
If you are using npx or installing inside project, Add the configuration:
{
"mcpServers": {
"TestDino": {
"command": "npx",
"args": ["-y", "testdino-mcp"],
"env": {
"TESTDINO_PAT": "Your PAT here"
}
}
}
}Important: Replace Your PAT here with your actual Personal Access Token (PAT) from Step 1.
Step 3: Restart and Verify
- Completely close and restart Cursor
- Verify the connection by asking: "Check TestDino health"
- You should see your account name, available organizations, and projects!
Alternative: Global Installation
If you prefer to install globally instead of using npx or project installation:
npm install -g testdino-mcpThen use this configuration:
{
"mcpServers": {
"TestDino": {
"command": "testdino-mcp",
"env": {
"TESTDINO_PAT": "Your PAT here"
}
…