# io.github.testdino-inc/testdino-mcp (npm · testdino-mcp)

A MCP server for TestDino

- Trust score: 48/100 (low)
- Change this week: +13
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `testdino-mcp`: 48/100 (this document), [markdown](https://verifymcp.io/servers/testdino-inc-testdino-mcp/testdino-mcp.md), [page](https://verifymcp.io/servers/testdino-inc-testdino-mcp/testdino-mcp)

## Channel facts

- Registry: `npm`
- Package: `testdino-mcp`
- Version: `1.0.2`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 70/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known high-severity CVE affects @modelcontextprotocol/sdk 0.5.0, a direct dependency. A fixed version is available.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (13 of 14), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 6/100
  - Repository check failed: the declared repository URL redirects; it must resolve directly.
  - Provenance check failed: no build-provenance attestation is published.
  - License check failed: no license is declared.
  - Actively maintained (last published 14 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 57/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2310 tokens (~385/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 20/100
  - Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add testdino-inc-testdino-mcp -- npx -y testdino-mcp
```

### Codex

```bash
codex mcp add testdino-inc-testdino-mcp -- npx -y testdino-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "testdino-inc-testdino-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "testdino-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add testdino-inc-testdino-mcp --command npx --arg -y --arg testdino-mcp
```

### Hermes

```yaml
mcp_servers:
  testdino-inc-testdino-mcp:
    command: "npx"
    args: ["-y", "testdino-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "testdino-inc-testdino-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "testdino-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 48, +3)

- [functional improvement] Stability: unverified → 0.23

### 2026-08-02 (score 45, +17)

- [security regression] Known CVEs: unverified → fail
- [security improvement] Malware scan: unverified → pass
- [functional improvement] Dependency health: unverified → partial

### 2026-08-01 (score 28, −13)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-31 (score 41, −18)

- [security regression] Malware scan: pass → unverified

### 2026-07-28 (score 59, +24)

- [security regression] CVE-2025-66414 affects this package: high
- [security regression] Known CVEs: unverified → fail
- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [functional regression] License: unverified → fail
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Schema quality: unverified → excellent

### 2026-07-27 (score 35)

First indexed and scored.

## MCP tools (6)

### `health` (~55 tokens)

Check if your TestDino connection is working. Verifies your API key and shows your project name. Use this first to make sure everything is set up correctly.

Input parameters:

- `name` (string, required): Your name (used in the greeting message).

### `list_testruns` (~391 tokens)

Browse and filter your test runs to find specific test executions. Filter by git branch (e.g., 'develop', 'main'), time interval ('1d', '3d', 'weekly', 'monthly', or custom date ranges), commit author, or environment (e.g., 'production', 'staging', 'development'). Supports efficient pagination using page/limit or offset/limit, or use get_all=true to fetch all results (up to 1000). Returns test run summaries with statistics (total, passed, failed, skipped, flaky counts), duration, status, branch, author, and PR information when available. Perfect for answering questions like 'What tests ran on the develop branch?' or 'Show me all test runs from last week.' The API key should be configured in mcp.json as TESTDINO_API_KEY environment variable.

Input parameters:

- `by_author` (string): Filter by commit author name (case-insensitive, partial match).
- `by_branch` (string): Filter by git branch name (e.g., 'main', 'develop', 'feature/login').
- `by_commit` (string): Filter by git commit hash (full or partial).
- `by_environment` (string): Filter by environment. Example: 'production', 'staging', 'development'.
- `by_time_interval` (string): Filter by time: '1d' (last day), '3d' (last 3 days), 'weekly' (last 7 days), 'monthly' (last 30 days), or '2024-01-01,2024-01-31' (date range).
- `get_all` (boolean): Get all results up to 1000 (default: false).
- `limit` (number): Number of results per page (default: 20, max: 1000).
- `page` (number): Page number (default: 1).

### `get_run_details` (~126 tokens)

Get detailed information about test runs. Shows test statistics (passed, failed, skipped, flaky), all test suites and cases, git metadata, and error details. Supports batch operations (comma-separated IDs, max 20). Use this to analyze test execution health or debug specific failures.

Input parameters:

- `counter` (number): Filter by test run counter (sequential number).
- `testrun_id` (string): Test run ID(s). Single ID or comma-separated for batch (max 20). Example: 'test_run_123' or 'run1,run2,run3'.

### `upload_latest_local_test_runs` (~310 tokens)

Upload your local Playwright test results to TestDino. After running tests locally, upload the report to track and analyze results. Automatically detects git info (branch, commit, author). Use absolute paths for best results.

Input parameters:

- `htmlReport` (string): Specific HTML report path (overrides reportDir).
- `jsonReport` (string): Specific JSON report file path (overrides reportDir).
- `reportDir` (string): Path to Playwright report directory. Use absolute path (e.g., '/Users/jon/project/playwright-report' or 'C:\Users\jon\project\playwright-report'). Default: './playwright-report'.
- `traceDir` (string): Specific trace directory path (overrides reportDir).
- `uploadFiles` (boolean): Upload file attachments (.md, .pdf, .txt, .log). Default: false.
- `uploadFullJson` (boolean): Upload complete JSON bundle with all artifacts (alternative to uploadHtml). Default: false.
- `uploadHtml` (boolean): Upload HTML reports with all data (JSON, images, videos). Recommended. Default: true.
- `uploadImages` (boolean): Upload screenshot images. Default: false (included in uploadHtml).
- `uploadTraces` (boolean): Upload Playwright trace files for debugging. Default: false.
- `uploadVideos` (boolean): Upload test execution videos. Default: false (included in uploadHtml).
- `verbose` (boolean): Show detailed logging. Default: false.

### `list_testcase` (~1130 tokens)

List test cases with comprehensive filtering options. You can filter by test run (ID or counter), status, spec file, error category, browser, tags, runtime, artifacts, error messages, attempt number, branch, time interval, environment, author, or commit hash. When using test run filters (by_branch, by_commit, by_author, by_environment, by_time_interval, by_pages, page, limit, get_all), the tool first lists test runs matching those criteria, then returns test cases from those filtered test runs. Use this to find specific test cases across your test runs.

Input parameters:

- `by_artifacts` (boolean): Filter test cases that have artifacts available (screenshots, videos, traces). Set to true to list only test cases with artifacts. (ID/Counter is required while using this parameter)
- `by_attempt_number` (number): Filter by attempt number. Example: 1 for first attempt, 2 for second attempt. (ID/Counter is required while using this parameter)
- `by_author` (string): Filter by commit author name (case-insensitive, partial match). Does not require testrun_id or counter. First lists test runs by the specified author, then returns test cases from those test runs.
- `by_branch` (string): Filter by git branch name. Does not require testrun_id or counter. First lists test runs on the specified branch, then returns test cases from those test runs. Example: 'main', 'develop'.
- `by_browser_name` (string): Filter by browser name. Example: 'chromium', 'firefox', 'webkit'. (ID/Counter is required while using this parameter)
- `by_commit` (string): Filter by git commit hash (full or partial). Does not require testrun_id or counter. First lists test runs with the specified commit, then returns test cases from those test runs.
- `by_environment` (string): Filter by environment. Does not require testrun_id or counter. First lists test runs in the specified environment, then returns test cases from those test runs. Example: 'production', 'staging', 'dev…
- `by_error_category` (string): Filter by error category. Example: 'timeout_issues', 'element_not_found', 'assertion_failures', 'network_issues'. (ID/Counter is required while using this parameter)
- `by_error_message` (string): Filter by error message (partial match, case-insensitive). Example: 'Test timeout of 60000ms exceeded'. (ID/Counter is required while using this parameter)
- `by_pages` (number): List test cases by page number. Does not require testrun_id or counter. Returns test cases from all test runs on the specified page.
- `by_spec_file_name` (string): Filter by spec file name. Example: 'login.spec.js' or 'user-profile.spec.ts'. (ID/Counter is required while using this parameter)
- `by_status` (string): Filter by status: 'passed', 'failed', 'skipped', or 'flaky'.(ID/Counter is required while using this parameter)
- `by_tag` (string): Filter by tag(s). Single tag or comma-separated. Example: 'smoke' or 'smoke,regression'. (ID/Counter is required while using this parameter)
- `by_testrun_id` (string): Test run ID(s). Single ID or comma-separated for multiple runs (max 20). Example: 'test_run_123' or 'run1,run2,run3'. Not required when using test run filters (by_branch, by_commit, by_author, by_env…
- `by_time_interval` (string): Filter by time interval. Does not require testrun_id or counter. First lists test runs in the specified time period, then returns test cases from those test runs. Supports: '1d' (last day), '3d' (las…
- `by_total_runtime` (string): Filter by total runtime. Use '<60' for less than 60 seconds, '>100' for more than 100 seconds. Example: '<60', '>100', '<30'. (ID/Counter is required while using this parameter)
- `counter` (number): Test run counter number. Alternative to by_testrun_id. Not required when using test run filters (by_branch, by_commit, by_author, by_environment, by_time_interval, by_pages, page, limit, get_all). Ex…
- `get_all` (boolean): Get all results up to 1000 (default: false). Does not require testrun_id or counter. When used alone, first lists all test runs, then returns test cases from those test runs.
- `limit` (number): Number of results per page (default: 1000, max: 1000). Does not require testrun_id or counter. When used alone, first lists test runs, then returns test cases from those test runs.
- `page` (number): Page number for pagination (default: 1). Does not require testrun_id or counter. When used alone, first lists test runs on the specified page, then returns test cases from those test runs.

### `get_testcase_details` (~298 tokens)

Get detailed information about a specific test case. You can identify the test case in two ways: 1) By testcase_id (can be used alone), or 2) By testcase_name combined with testrun_id or counter (required because test cases can have the same name across different test runs). Shows error messages, stack traces, test steps, console logs, and optional artifacts (screenshots, videos, traces). Use this to debug why a test failed or understand how it executed. Example: 'Get test case details for "Verify user can logout and login" in testrun #43'.

Input parameters:

- `counter` (number): Test run counter number. Required when using testcase_name (if testrun_id is not provided) to specify which test run's test case you want. Example: 43.
- `testcase_id` (string): Test case ID. Can be used alone to get test case details. Example: 'test_case_123'.
- `testcase_name` (string): Test case name/title. Must be combined with either testrun_id or counter to identify which test run's test case you want. Example: 'Verify user can logout and login'.
- `testrun_id` (string): Test run ID. Required when using testcase_name to specify which test run's test case you want. Example: 'test_run_6901b2abc6b187e63f536a6b'.

## Diagnostics

Captured diagnostic sections: Provenance, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/testdino-inc-testdino-mcp/testdino-mcp#diagnostics

## Score history

- 2026-08-03: 48
- 2026-08-02: 45
- 2026-08-01: 28
- 2026-07-31: 41
- 2026-07-29: 59
- 2026-07-28: 59
- 2026-07-27: 35

## Links

- npm package: https://www.npmjs.com/package/testdino-mcp
- Socket report: https://socket.dev/npm/package/testdino-mcp
- Changelog RSS feed: https://verifymcp.io/servers/testdino-inc-testdino-mcp/testdino-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/testdino-inc-testdino-mcp/testdino-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/testdino-inc-testdino-mcp/testdino-mcp
