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 rangeget_run_details— fetch full metadata, logs, and artifacts for a specific runlist_testcase— retrieve test cases within a rundebug_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:
-
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.
-
MCP server exposure — The remote
testdino-mcpserver (source attestdino-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. -
Agent request serialization — When an agent invokes
testdino.list_testruns({ "projectId": "proj-123", "status": "failed" }), the MCP client POSTs tohttps://mcp.testdino.com/list_testrunswith the serialized parameters. -
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.jsonestablishes the agent-to-server connection via a single URL entry - Skill definitions in
SKILL.mdmap high-level intents likedebug_testcaseto concrete RPC calls - Data flows from Playwright execution → TestDino SaaS →
testdino-mcpserver → AI agent without transformation - Authentication is verified through the
healthskill 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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →