How the TestDino Plugin Integrates with Playwright: MCP Architecture and Audit Workflows
The TestDino plugin integrates with Playwright through a remote MCP server at https://mcp.testdino.com, a Claude-Code plugin manifest, and a Playwright-specific audit skill that routes test analysis requests to TestDino's backend APIs.
The TestDino plugin for Claude-Code enables automated auditing of Playwright test suites through the Model Context Protocol (MCP). According to the anthropics/claude-plugins-community repository, this integration bridges your Playwright specs with TestDino's analysis backend using three tightly-coupled architectural components that handle server discovery, skill registration, and Playwright-specific tool execution.
Architecture of the TestDino-Playwright Integration
The integration relies on three core components that work together to expose TestDino's audit capabilities within Claude-Code.
MCP Server Configuration
The remote MCP endpoint (https://mcp.testdino.com) brokers all tool calls between Claude-Code and the TestDino backend. This server presents Playwright-specific audit tools including get_audit_report, submit_audit_report, and the legacy test_audit function. As documented in testdino/README.md (lines 14-22), users register this endpoint by adding a JSON snippet to their Claude-Code client configuration, establishing the communication channel required for all subsequent audit operations.
Plugin Manifest Declaration
The plugin's plugin.json file declares the "testdino" connector and registers the available skill files that become accessible to the AI agent. Located at testdino/.claude-plugin/plugin.json, this manifest lists the testdino-audit skill (and other TestDino-related skills) as part of the plugin's public API. This registration makes Playwright-specific audit calls reachable from chat interactions, allowing Claude to recognize when to invoke TestDino functionality.
Skill Definition and Routing
The testdino-audit skill, defined in testdino/skills/testdino-audit/SKILL.md (lines 2-34), contains the declarative logic that tells Claude when and how to invoke the Playwright audit flow. The skill's description explicitly restricts usage to Playwright test code and handles routing to the MCP-exposed audit tools. It supports both the modern split-tool approach (get_audit_report plus submit_audit_report) and the legacy single-tool fallback (test_audit), ensuring compatibility across different TestDino deployments.
Step-by-Step Integration Workflow
The TestDino plugin processes Playwright audits through a four-stage pipeline:
-
MCP Registration – The user adds the remote MCP entry to their Claude-Code client. When the client initializes, Claude establishes a connection to
https://mcp.testdino.com. -
Plugin Installation – The user executes marketplace commands to load the TestDino skill set, making the Playwright-aware
testdino-auditskill available to the agent. -
Audit Trigger – When a user requests a "TestDino audit" on a Playwright spec file, Claude validates the request against the
testdino-auditskill's Playwright-specific guard clauses. If the request matches, Claude invokes the appropriate MCP tools. -
Result Delivery – The audit report (markdown or JSON) returns to the chat interface, displaying failures, flaky-test history, and remediation suggestions without requiring context switching.
Configuration and Code Examples
Configuring the MCP Server
Add the remote MCP server configuration to your Claude-Code client settings once per installation:
{
"mcpServers": {
"testdino": {
"url": "https://mcp.testdino.com"
}
}
}
Source: testdino/README.md, lines 14-22.
Installing the Plugin
Install the TestDino plugin through Claude-Code's marketplace interface:
/plugin marketplace add testdino-hq/TestDino-Plugins
/plugin install testdino@testdino-plugins
Source: testdino/README.md, lines 36-41.
Triggering Playwright Audits
Invoke the audit functionality by referencing Playwright test code in your request:
Run a TestDino audit on this Playwright spec:
// example Playwright test file (example.spec.ts)
import { test, expect } from '@playwright/test';
test('homepage has title', async ({ page }) => {
await page.goto('https://example.com');
await expect(page).toHaveTitle(/Example Domain/);
});
Claude recognizes the request, loads the testdino-audit skill, and calls the appropriate MCP audit tools based on the available API version.
Source: testdino/skills/testdino-audit/SKILL.md.
Understanding the Tool Calls
The underlying MCP tool calls follow different patterns depending on server capabilities. For modern TestDino deployments supporting the split-tool API:
{
"tool": "get_audit_report",
"action": "context",
"params": { "projectId": "proj-123", "runId": "run-456" }
}
Followed by:
{
"tool": "submit_audit_report",
"action": "analyze",
"params": {
"projectId": "proj-123",
"runId": "run-456",
"markdownReport": "<your analysis>"
}
}
For legacy deployments, Claude falls back to the single-tool approach:
{
"tool": "test_audit",
"action": "analyze",
"params": { "projectId": "...", "runId": "...", "markdownReport": "…" }
}
Source: testdino/skills/testdino-audit/SKILL.md (tool selection logic).
Key Files and Their Roles
| File | Purpose |
|---|---|
testdino/README.md |
Documents the Playwright integration, MCP configuration JSON, and installation commands. |
testdino/.claude-plugin/plugin.json |
Declares the plugin name (testdino) and registers the skill set including the Playwright-aware audit functionality. |
testdino/skills/testdino-audit/SKILL.md |
Defines the audit skill logic, Playwright-specific guard clauses, and MCP tool invocation rules for both current and legacy APIs. |
Summary
- The TestDino plugin connects to Playwright through a remote MCP server at
https://mcp.testdino.comthat exposes audit tools. - Three architectural layers handle the integration: the MCP server configuration, the
plugin.jsonmanifest, and thetestdino-auditskill definition. - The system supports both modern split-tool workflows (
get_audit_report+submit_audit_report) and legacy single-tool (test_audit) fallbacks. - Configuration requires adding the MCP server JSON to Claude-Code, installing the plugin via marketplace commands, and invoking audits through natural language requests containing Playwright code.
- All integration logic is defined in
testdino/README.md,testdino/.claude-plugin/plugin.json, andtestdino/skills/testdino-audit/SKILL.md.
Frequently Asked Questions
What is the MCP server URL for the TestDino plugin?
The TestDino plugin uses https://mcp.testdino.com as its remote MCP endpoint. This URL is configured in the Claude-Code client settings via the mcpServers JSON object, as specified in testdino/README.md at lines 14-22.
How does Claude determine if code is Playwright-specific when using TestDino?
The testdino-audit skill defined in testdino/skills/testdino-audit/SKILL.md contains explicit guard clauses in its description that restrict the skill to Playwright test files. Claude checks the file content and context against these rules before invoking the audit tools.
What is the difference between get_audit_report and the legacy test_audit tool?
The modern API uses a split-tool approach where get_audit_report fetches audit context with action: "context", followed by submit_audit_report to send the analysis. The legacy test_audit tool combines these functions into a single call. The skill definition in testdino/skills/testdino-audit/SKILL.md automatically detects which tools are available and uses the appropriate workflow.
Where do I configure the TestDino MCP server in Claude-Code?
Add the MCP server configuration to your Claude-Code client's settings file using the JSON structure shown in testdino/README.md. This registers the https://mcp.testdino.com endpoint under the mcpServers.testdino key, enabling Claude to establish the connection when starting new chat sessions.
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 →