How the TestDino MCP Server Connects Playwright Test Data to AI Coding Agents

The TestDino MCP server exposes Playwright test data through HTTP-based RPC endpoints that AI coding agents consume via the Model-Code-Protocol (MCP), enabling real-time test analysis without custom SDKs.

AI coding agents like Claude Code, Cursor, and Codex need structured access to test data for debugging, regression analysis, and automated fix generation. The TestDino MCP server bridges this gap by wrapping Playwright test runs from the TestDino platform in a standardized protocol that any MCP-compatible agent can invoke. This article explains the connection architecture, configuration steps, and data flow based on the anthropics/claude-plugins-community source code.

MCP Configuration: Pointing Agents to the Remote Server

The connection starts with agent-side configuration in .mcp.json. This file registers the TestDino server as a named endpoint that the MCP client can route calls to.

In [testdino/.mcp.json](https://github.com/anthropics/claude-plugins-community/blob/main/testdino/.mcp.json), the configuration is minimal:

{
  "mcpServers": {
    "testdino": {
      "url": "https://mcp.testdino.com"
    }
  }
}

This entry tells the agent's MCP client to route any skill call prefixed with testdino: to https://mcp.testdino.com. No authentication secrets live in this file—the server handles auth via token validation on first contact.

Skill Definitions: Mapping AI Intents to MCP Calls

Skills bridge natural language intentions to concrete RPC invocations. The TestDino plugin bundles skills in [testdino/skills/testdino-runs/SKILL.md](https://github.com/anthropics/claude-plugins-community/blob/main/testdino/skills/testdino-runs/SKILL.md), which defines verbs for Playwright test interaction:

  • list_testruns — enumerate runs filtered by project, status, or time range
  • get_run_details — fetch full metadata, logs, and artifacts for a specific run
  • list_testcase — retrieve test cases within a run
  • debug_testcase — aggregate historical flaky behavior with cross-run context

These skills accept JSON payloads that the MCP client serializes into HTTP POST bodies.

Data Flow: From Playwright Execution to AI Consumption

The connection chain involves four stages:

  1. Test execution and ingestion — Playwright runs are captured by TestDino's SaaS platform via CI integration or the TestDino SDK. Screenshots, videos, traces, and structured logs are stored with run metadata.

  2. MCP server exposure — The remote testdino-mcp server (source at testdino-hq/testdino-mcp) exposes a subset of the TestDino REST API as MCP-compatible endpoints. It translates generic MCP calls into authenticated TestDino backend requests.

  3. Agent request serialization — When an agent invokes testdino.list_testruns({ "projectId": "proj-123", "status": "failed" }), the MCP client POSTs to https://mcp.testdino.com/list_testruns with the serialized parameters.

  4. Response hydration — The MCP server forwards the request, receives JSON from TestDino, and returns it unmodified to the agent. The agent renders the data or chains subsequent skill calls.

Connection Lifecycle and Authentication

New chat sessions begin with a health check defined in [SKILL.md](https://github.com/anthropics/claude-plugins-community/blob/main/testdino/skills/testdino-runs/SKILL.md). This validates:

  • Network reachability to https://mcp.testdino.com
  • Authentication token validity
  • Enumerated list of accessible projects

After health succeeds, the agent caches the project list and permits unrestricted use of run-related skills.

Practical Usage Examples

Configure your agent by adding the MCP server entry:

// Claude Code: ~/.claude/.mcp.json or project-local .mcp.json
{
  "mcpServers": {
    "testdino": {
      "url": "https://mcp.testdino.com"
    }
  }
}

Verify connectivity in a new chat:

Use the TestDino connector. Call health and tell me which projects I have access to.

List recent failed Playwright runs:

testdino.list_testruns({
  "projectId": "proj-xyz",
  "status": "failed",
  "timeInterval": "last 24h"
})

Retrieve detailed diagnostics:

testdino.get_run_details({ "runId": "run-4567" })

Debug flaky tests with historical context:

testdino.debug_testcase({
  "projectId": "proj-xyz",
  "testcaseId": "TC-123",
  "lookbackDays": 30
})

Each command triggers an HTTP POST to https://mcp.testdino.com/<method> with the provided payload.

Why MCP Neutrality Matters

Because MCP is protocol-agnostic, any AI agent implementing the MCP client can connect to TestDino without proprietary adapters. The only requirements are the remote server URL and skill definitions—both packaged in the TestDino Claude Code plugin at anthropics/claude-plugins-community.

Key Files in the TestDino Plugin

File Purpose
[testdino/README.md](https://github.com/anthropics/claude-plugins-community/blob/main/testdino/README.md) Plugin overview and quick-start guide
[testdino/.mcp.json](https://github.com/anthropics/claude-plugins-community/blob/main/testdino/.mcp.json) MCP client configuration with server URL
[testdino/.claude-plugin/plugin.json](https://github.com/anthropics/claude-plugins-community/blob/main/testdino/.claude-plugin/plugin.json) Plugin metadata (name, version, repository)
[testdino/skills/testdino-runs/SKILL.md](https://github.com/anthropics/claude-plugins-community/blob/main/testdino/skills/testdino-runs/SKILL.md) Skill definitions for Playwright test operations

Summary

  • MCP configuration in .mcp.json establishes the agent-to-server connection via a single URL entry
  • Skill definitions in SKILL.md map high-level intents like debug_testcase to concrete RPC calls
  • Data flows from Playwright execution → TestDino SaaS → testdino-mcp server → AI agent without transformation
  • Authentication is verified through the health skill on session start
  • Neutrality of MCP enables any compatible agent to consume TestDino data without custom code

Frequently Asked Questions

What is an MCP server and why does TestDino use it?

An MCP (Model-Code-Protocol) server is a lightweight HTTP gateway that exposes platform data through standardized RPC endpoints. TestDino uses it to eliminate the need for AI vendors to build custom integrations—any MCP-compatible agent can connect using the same configuration and skill definitions.

Where does the TestDino MCP server run?

The server runs remotely at https://mcp.testdino.com as a managed service. The source implementation is available at testdino-hq/testdino-mcp, though most users interact with it as a hosted endpoint.

Can I use the TestDino MCP server with agents other than Claude Code?

Yes. Any AI coding agent implementing the MCP client specification—including Cursor, Codex, and open-source alternatives—can connect to TestDino using the same .mcp.json configuration and skill definitions.

What Playwright data is exposed through the MCP server?

The server exposes run metadata, execution logs, screenshots, video artifacts, trace files, and historical flakiness patterns. Specific data availability depends on what your TestDino project has ingested during CI runs.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →