Skip to main content
Glama
jpa012401

QA Testing MCP Server

by jpa012401

QA Testing MCP Server

An AI-driven testing and QA MCP (Model Context Protocol) server that enables AI agents like Claude, Claude Code, or Cursor to perform comprehensive web application testing without requiring API keys.

Features

  • Visual Testing: Screenshot capture, responsive design analysis, layout consistency checks

  • Functional Testing: Form validation, link integrity, interactive element testing, navigation analysis

  • Performance Testing: Core Web Vitals measurement, resource analysis, optimization opportunities

  • Accessibility Testing: WCAG compliance (A, AA, AAA), color contrast, ARIA validation

  • SEO Analysis: Meta tags, heading structure, content analysis, technical SEO

  • Report Generation: Comprehensive Markdown reports with prioritized recommendations

Related MCP server: accessibility-mcp-server

Architecture

┌─────────────────────────────────────────────────────────────────┐
│                        User (Cursor/Claude)                     │
│                   "Test https://example.com"                    │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│                      QA Testing MCP Server                      │
│  ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌───────────┐ │
│  │   Visual    │ │ Functional  │ │ Performance │ │Accessibility│ │
│  │   Testing   │ │   Testing   │ │   Testing   │ │  Testing   │ │
│  └─────────────┘ └─────────────┘ └─────────────┘ └───────────┘ │
│  ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────────┐ │
│  │    SEO      │ │   Report    │ │    Full Test Suite Runner   │ │
│  │  Analysis   │ │  Generator  │ │                             │ │
│  └─────────────┘ └─────────────┘ └─────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│                    chrome-devtools-mcp                          │
│            (Browser automation & inspection)                    │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│                       Chrome Browser                            │
│                    (Web application under test)                 │
└─────────────────────────────────────────────────────────────────┘

Prerequisites

  • Node.js v22.12.0 or newer

  • npm (comes with Node.js)

  • Chrome browser (stable, beta, or canary)

  • Cursor IDE or Claude with MCP support

Installation

1. Clone and Build

# Clone the repository
git clone <repository-url>
cd emerge

# Install dependencies
npm install

# Build the project
npm run build

2. Configure MCP Servers

Add the following to your MCP client configuration:

For Cursor (Settings → MCP → Add Server):

{
  "mcpServers": {
    "chrome-devtools": {
      "command": "npx",
      "args": ["chrome-devtools-mcp@latest"]
    },
    "qa-testing": {
      "command": "node",
      "args": ["/absolute/path/to/emerge/dist/index.js"]
    }
  }
}

For Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "chrome-devtools": {
      "command": "npx",
      "args": ["chrome-devtools-mcp@latest"]
    },
    "qa-testing": {
      "command": "node",
      "args": ["/absolute/path/to/emerge/dist/index.js"]
    }
  }
}

3. Verify Installation

After configuring, restart your MCP client and verify the tools are available:

List all available MCP tools

You should see tools like run_visual_test, run_performance_test, run_full_test, etc.

Usage

Quick Start

Simply ask the AI to test a website:

Test https://example.com and generate a full QA report

Available Tools

Tool

Description

run_visual_test

Screenshots, viewport analysis, layout checks

run_functional_test

Forms, links, interactions, navigation

run_performance_test

Core Web Vitals, resource metrics

run_accessibility_test

WCAG compliance, ARIA, contrast

run_seo_test

Meta tags, headings, technical SEO

run_full_test

All tests + comprehensive report

generate_report

Compile results into Markdown report

Example Prompts

Full Test Suite:

Run a comprehensive test on https://mywebsite.com including visual, functional, performance, accessibility, and SEO analysis. Generate a detailed report.

Specific Testing:

Check the accessibility of https://mywebsite.com against WCAG 2.1 Level AA standards.
Analyze the performance of https://mywebsite.com - measure Core Web Vitals and identify optimization opportunities.
Test the mobile responsiveness of https://mywebsite.com at 375px, 768px, and 1440px viewports.

Combined with chrome-devtools-mcp:

Navigate to https://mywebsite.com, take screenshots at mobile and desktop sizes, then run a performance trace and accessibility check. Generate a report with all findings.

See sample-prompts/test-prompts.md for more example prompts.

Report Structure

Generated reports include:

# Web Application Test Report

## Executive Summary
- Overall score and status
- Test coverage
- Issues overview (critical, major, minor)
- Key highlights

## Visual Testing Results
- Viewports tested
- Layout issues
- Responsiveness checks

## Functional Testing Results
- Forms analysis
- Links analysis
- Interactive elements
- Navigation structure

## Performance Testing Results
- Core Web Vitals
- Resource metrics
- Optimization opportunities

## Accessibility Testing Results
- WCAG compliance level
- Violations found
- ARIA usage
- Color contrast

## SEO Analysis Results
- Meta tags
- Heading structure
- Content analysis
- Technical SEO

## Recommendations
- High priority
- Medium priority
- Low priority

## Raw Data
- Complete JSON data (collapsible)

Chrome DevTools MCP Options

The chrome-devtools-mcp server supports various configuration options:

{
  "mcpServers": {
    "chrome-devtools": {
      "command": "npx",
      "args": [
        "chrome-devtools-mcp@latest",
        "--headless=true",           // Run headless for CI/CD
        "--isolated=true",           // Use temporary profile
        "--channel=canary"           // Use Chrome Canary
      ]
    }
  }
}

Connect to Running Chrome:

# Start Chrome with remote debugging
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
  --remote-debugging-port=9222 \
  --user-data-dir=/tmp/chrome-profile
{
  "mcpServers": {
    "chrome-devtools": {
      "command": "npx",
      "args": [
        "chrome-devtools-mcp@latest",
        "--browser-url=http://127.0.0.1:9222"
      ]
    }
  }
}

Development

# Install dependencies
npm install

# Build
npm run build

# Watch mode (development)
npm run dev

# Run tests
npm test

Project Structure

emerge/
├── package.json              # Project configuration
├── tsconfig.json             # TypeScript configuration
├── README.md                 # This file
├── src/
│   ├── index.ts              # Entry point
│   ├── server.ts             # MCP server implementation
│   ├── tools/
│   │   ├── index.ts          # Tool exports
│   │   ├── visual-test.ts    # Visual testing
│   │   ├── functional-test.ts# Functional testing
│   │   ├── performance-test.ts# Performance testing
│   │   ├── accessibility-test.ts# Accessibility testing
│   │   └── seo-test.ts       # SEO analysis
│   ├── report/
│   │   ├── generator.ts      # Report generation
│   │   └── templates.ts      # Markdown templates
│   └── types/
│       └── index.ts          # TypeScript types
├── prompts/
│   └── test-prompts.md       # Example prompts
├── mcp-config.example.json   # MCP configuration example
└── cursor-mcp-settings.json  # Cursor-specific config

How It Works

  1. User Input: You provide a URL and testing scope through Cursor or Claude

  2. AI Processing: The AI interprets your request and calls the appropriate testing tools

  3. Browser Automation: chrome-devtools-mcp controls Chrome to load pages and gather data

  4. Analysis: Each tool analyzes specific aspects (visual, performance, etc.)

  5. Report Generation: Results are compiled into a comprehensive Markdown report

  6. Recommendations: Prioritized suggestions for improvement

Security Considerations

  • The chrome-devtools-mcp server exposes browser content to MCP clients

  • Avoid testing pages with sensitive information during sessions

  • Use --isolated=true for temporary profiles that clear after testing

  • Be cautious with --remote-debugging-port as it opens browser control

Limitations

  • Real-time metrics require actual browser automation via chrome-devtools-mcp

  • Some tests provide guidance for AI to execute rather than direct measurements

  • Performance metrics are most accurate with multiple test runs

  • Accessibility testing should be complemented with manual review

Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

License

MIT License - see LICENSE file for details.

Resources

Available Tools

7 tools
generate_reportA

Generate a comprehensive Markdown report from test results. This tool:

  • Compiles results from all test types (visual, functional, performance, accessibility, SEO)

  • Calculates overall scores and status

  • Prioritizes recommendations by impact and effort

  • Formats results in a readable Markdown report

Use this tool after running individual tests to create a final report. Call run_full_test to automatically run all tests and generate a report in one step.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL that was tested
titleNoOptional custom title for the report

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It usefully discloses the input dependency (it consumes results from already-run tests) and the output format (Markdown), but never says whether the report is returned inline, written to disk, or requires specific permissions, nor whether existing reports are overwritten.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and a scannable bullet list of capabilities, then the routing guidance. Minor redundancy: 'Generate a comprehensive Markdown report' is restated as 'Formats results in a readable Markdown report,' costing a little space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description does explain the aggregation inputs, scoring/status calculation, prioritization, and format, which is most of what an agent needs. The remaining gap is the delivery mechanism of the report (returned content vs. file artifact) and whether prior results must be persisted. Still largely complete for this tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters (url, title) are documented in the schema, which already notes title is optional and custom. The description adds no format, default, or validation detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Generate a comprehensive Markdown report from test results') and enumerates exactly what it aggregates: visual, functional, performance, accessibility, and SEO results. It is clearly distinguishable from the run_* siblings, which produce test results rather than a consolidated report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit when-to-use rule ('Use this tool after running individual tests to create a final report') and names the alternative path with its selection condition ('Call run_full_test to automatically run all tests and generate a report in one step'). Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_accessibility_testA

Perform accessibility testing on a web application. This tool analyzes:

  • WCAG 2.1 compliance at Level A, AA, or AAA

  • Color contrast ratios for text elements

  • ARIA attributes and landmark usage

  • Keyboard navigation and focus management

  • Form labels and error handling

  • Image alt text and semantic structure

Use this tool when you need to evaluate a website's accessibility for users with disabilities. The tool requires chrome-devtools-mcp to be running for DOM and accessibility tree inspection.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL of the web page to test
wcagLevelNoWCAG conformance level to test against (default: AA)
includeWarningsNoInclude potential issues that need manual review (default: true)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries the full burden. It discloses a meaningful dependency (chrome-devtools-mcp must be running for DOM/accessibility tree inspection), which is valuable. However, it doesn't describe read-only vs. mutating behavior, runtime cost, or what the results look like despite no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded purpose followed by a scannable bullet list of analyzed aspects, then usage and prerequisites. Slightly verbose with the six-bullet enumeration, but each bullet adds concrete scope. Efficient overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, this captures purpose, scope, and a key runtime prerequisite, but omits result format, whether it mutates anything, and how to interpret findings vs. sibling tools. Adequate but incomplete for a multi-faceted analysis tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents url, wcagLevel, and includeWarnings with defaults. The description's mention of WCAG 2.1 at Level A, AA, or AAA loosely reinforces the wcagLevel parameter but adds no syntax or format detail beyond the schema. Baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (perform) and resource (accessibility testing on a web application), then enumerates exactly what it analyzes (WCAG compliance, contrast, ARIA, keyboard nav, forms, alt text). This clearly distinguishes it from siblings like run_visual_test and run_seo_test.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Says 'Use this tool when you need to evaluate a website's accessibility for users with disabilities,' which implies usage but doesn't explicitly contrast against alternatives like run_full_test or run_visual_test, which likely also touch accessibility. A prerequisite is given (chrome-devtools-mcp must be running), which helps, but no when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_full_testB

Run all available tests (visual, functional, performance, accessibility, SEO) on a web application and generate a comprehensive report

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL of the web application to test

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It says tests are run and a report is generated but discloses nothing about duration/cost of an all-tests run, side effects (browser sessions, network traffic against the target URL), auth requirements, or failure handling when one category fails.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler: the action, the scope (all test categories enumerated), the target, and the outcome (comprehensive report) all land in one pass.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one fully documented parameter and no output schema, the description covers the basic call contract. However, for a potentially long-running aggregate operation with no annotations, it omits what the report contains and how it relates to generate_report, leaving the agent with an incomplete behavioral picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter (url) with 100% schema description coverage, so the schema already fully documents it. The description adds no format, validation, or environment nuance (e.g., localhost vs public URL) beyond what the schema states, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb (run) and resource (all available tests on a web application) and enumerates exactly which test categories are covered: visual, functional, performance, accessibility, SEO. This implicitly separates it from the single-category siblings, but it never explicitly says it is the aggregate alternative to run_visual_test/run_functional_test/etc., so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance is given. Nothing tells the agent to prefer this over running the individual sibling tools, nor when a narrower single test (e.g., run_visual_test) would be more appropriate, nor whether it is meant to be paired with generate_report or already includes report generation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_functional_testB

Perform functional testing on a web application. This tool analyzes:

  • Form elements: validation, labels, accessibility

  • Links: internal/external, broken links detection

  • Interactive elements: buttons, clickable areas, focus management

  • Navigation: menu structure, skip links, keyboard navigation

Use this tool when you need to verify that a website's features work correctly. The tool requires chrome-devtools-mcp to be running for browser automation.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL of the web page to test
checkFormsNoInclude form validation testing (default: true)
checkLinksNoInclude link integrity checking (default: true)
checkInteractionsNoTest interactive elements (default: true)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, and it does add one genuinely useful non-obvious fact: the tool requires chrome-devtools-mcp to be running. It omits other behavioral traits an agent needs, such as expected runtime, whether it navigates away from or mutates page state, and handling of failures or timeouts.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose followed by a scannable bulleted list of analyzed element types, and closes with usage plus the dependency note. The bullets are slightly padded but every line is informative and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a browser-automation test tool with no output schema and no annotations, the description should say what comes back (per-area findings, pass/fail, error list). It never describes the result shape, and the chrome-devtools-mcp dependency is mentioned but not elaborated on (install, config, failure behavior).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters including their default values are already documented in the schema. The description's list of analyzed categories loosely maps to the checkForms/checkLinks/checkInteractions flags but adds no new syntax, constraints, or interaction semantics, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Perform functional testing on a web application') and enumerates the four areas of analysis, which lets an agent distinguish it from run_visual_test or run_performance_test. However, it never names its closest siblings, and its inclusion of 'accessibility' and 'broken link detection' overlaps run_accessibility_test and run_seo_test, leaving boundaries ambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use this tool when you need to verify that a website's features work correctly' is a stated use case but is generic enough to cover almost any sibling test tool. There is no when-not guidance, no mention of run_full_test or other alternatives, and no ordering or prerequisite workflow advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_performance_testA

Perform performance testing on a web application. This tool measures:

  • Core Web Vitals: FCP, LCP, CLS, TTI, TBT

  • Page load timing metrics

  • Resource analysis: total size, JS/CSS/image sizes

  • Third-party request impact

  • Performance optimization opportunities

Use this tool when you need to evaluate a website's loading performance and identify bottlenecks. The tool requires chrome-devtools-mcp to be running for performance tracing.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL of the web page to test
runsNoNumber of test runs for averaging (default: 1)
throttleNoNetwork throttling: "none", "3g", or "4g" (default: none)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully discloses the runtime dependency on chrome-devtools-mcp, but says nothing about whether the test is non-destructive, how long multi-run averaging takes, or any rate/资源 constraints — meaningful gaps for a tool that launches a browser and traces a live page.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with a clear purpose sentence, then a scannable bullet list of measured metrics, then the usage cue and prerequisite. The list is long but each item defines real output scope; slightly bulky but no filler sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description partially compensates by enumerating the metric categories returned. Combined with the stated dependency, an agent has enough to call it correctly, though return format (raw JSON vs. report), runtime expectations, and error behavior remain unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents url, runs, and throttle (including the throttle enum). The description adds no detail on parameters — no guidance on choosing runs for stable averages or when 3g/4g throttling is appropriate — so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb (perform performance testing) and resource (web application) and enumerates the exact metric families it produces (Core Web Vitals, load timing, resource sizes, third-party impact). That detail implicitly separates it from siblings like run_visual_test or run_seo_test, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use this tool when you need to evaluate a website's loading performance and identify bottlenecks" states the selection condition clearly, and the final sentence adds a concrete prerequisite (chrome-devtools-mcp must be running). It does not discuss when to prefer run_full_test over this, or note exclusions, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_seo_testA

Perform SEO analysis on a web application. This tool analyzes:

  • Meta tags: title, description, canonical, robots, OG tags, Twitter cards

  • Heading structure: H1 count, hierarchy, semantic structure

  • Content: word count, text-to-HTML ratio, image optimization

  • Technical SEO: HTTPS, mobile-friendly, structured data, sitemap

Use this tool when you need to evaluate a website's search engine optimization. The tool requires chrome-devtools-mcp to be running for DOM inspection.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL of the web page to test
checkSocialTagsNoCheck Open Graph and Twitter card tags (default: true)
checkStructuredDataNoCheck for JSON-LD and structured data (default: true)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry behavioral disclosure. It usefully discloses an environmental dependency ('requires chrome-devtools-mcp to be running for DOM inspection'), which is real context beyond the schema. It does not state whether the operation is read-only, whether it hits the live site, or any rate/timeout constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded purpose, scannable bulleted breakdown of analysis areas, then usage guidance and the prerequisite. Every element earns its place; only a small amount of redundancy between the bullet list and the summary line.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-URL read-analysis tool with a fully described 3-parameter schema and no output schema, the description is nearly sufficient: it conveys scope, when to use it, and the runtime dependency. It lacks any hint of the result shape or how findings are returned, but that is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters (url, checkSocialTags, checkStructuredData) are already documented in the schema, including defaults. The description adds no parameter-level syntax or format guidance, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Perform SEO analysis on a web application') and enumerates exactly what domains are covered (meta tags, headings, content, technical SEO). This clearly separates it from run_visual_test/run_functional_test/run_performance_test/run_accessibility_test, though it never addresses overlap with run_full_test.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use this tool when you need to evaluate a website's search engine optimization' gives a clear usage trigger, and the required chrome-devtools-mcp prerequisite is stated. However, there are no exclusions or explicit routing against the sibling tools (e.g. run_full_test), which likely also performs SEO checks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_visual_testA

Perform visual testing on a web application. This tool analyzes:

  • Screenshots at multiple viewport sizes (mobile, tablet, desktop)

  • Layout consistency and potential overflow issues

  • Responsive design implementation

  • Visual element alignment and spacing

Use this tool when you need to evaluate the visual appearance and responsiveness of a website. The tool requires chrome-devtools-mcp to be running for browser automation.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL of the web page to test
fullPageNoCapture full page screenshot (default: true)
viewportsNoViewport names to test: "mobile", "tablet", "desktop", or "all" (default: all)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does add genuinely useful behavioral context – the external dependency on chrome-devtools-mcp and the viewport sweep – but says nothing about execution cost, timeouts, whether it is safe/non-destructive, or how results are surfaced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, followed by a tight bullet list of what is analyzed and a clear usage sentence plus prerequisite. The bullets each earn their place, though the list format is slightly heavier than needed for a three-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should ideally hint at what comes back (screenshots, pass/fail, report artifact), but it stops at what is analyzed. The prerequisite and analysis breakdown cover the input side adequately, leaving the result side underspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so url, fullPage, and viewports are already documented in the schema. The description's mention of mobile/tablet/desktop viewports loosely reinforces the viewports parameter but adds no syntax or default semantics beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Perform visual testing') and resource ('web application'), then enumerates the exact artifacts analyzed (screenshots, layout consistency, responsive design, alignment/spacing). The 'visual' scope implicitly separates it from the functional/performance/accessibility/SEO siblings, though it never names them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use this tool when you need to evaluate the visual appearance and responsiveness of a website" gives a clear usage context, and the prerequisite (chrome-devtools-mcp running) is stated. However, it offers no explicit exclusions or routing to siblings like run_full_test or run_accessibility_test.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv1.0.0
    • First observedgenerate_report
    • First observedrun_accessibility_test
    • First observedrun_full_test
    • First observedrun_functional_test
    • First observedrun_performance_test
    • First observedrun_seo_test
    • First observedrun_visual_test

TDQS

A3.7/5.0

Scored across 7 tools

Disambiguation4/5

Each of the five test tools targets a clearly distinct testing dimension (visual, functional, performance, accessibility, SEO), so misselection is unlikely. The only overlap is run_full_test, which subsumes all individual tests plus generate_report, but the descriptions explicitly clarify when to use each.

Naming Consistency4/5

Six of seven tools follow the predictable run_<type>_test verb_noun pattern. generate_report breaks the pattern slightly but remains readable and describes a distinct action.

Tool Count5/5

Seven tools is well-scoped for a QA testing server, with one tool per test category plus a runner/report generator. Each tool earns its place without redundancy.

Completeness4/5

The surface covers the major QA dimensions (visual, functional, performance, accessibility, SEO), a full-suite runner, and report generation, forming a complete workflow. Minor gaps exist around setup/configuration or exporting raw test data, but agents can work around these.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides browser automation, AI-powered analysis, visual processing, web scraping, automated test generation, and DevTools analysis capabilities. Supports multiple AI providers (OpenAI, Anthropic, Google, Ollama) for intelligent web interaction and data extraction.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to automate and debug real Chromium browsers with capabilities like screenshots, video recording, performance analysis, visual regression testing, and OCR text extraction.
    13
    -