Kilotest
Server Details
Ensemble testing of web pages for accessibility, usability, and standards conformity
- Status
- Healthy
- Uptime
- 99.9% over 42 days
- Last Tested
- Transport
- Streamable HTTP ยท MCP 2025-11-25
- URL
- Repository
- jrpool/kilotest
- GitHub Stars
- 4
- Server Listing
- kilotest
TDQS
Scored across 12 tools
Most tools are clearly distinct, especially the hierarchical reads: listReports, listIssues, listViolators, listDiagnoses, and getReport. However, orderNewTest/requestNewTest and orderRetest/requestRetest overlap heavily, and the descriptions only subtly distinguish auto-approved ordering from manual requesting.
All names use camelCase and generally follow a verb_noun pattern, with get/list/await/order/request used predictably for different operation types. The main inconsistency is the parallel order/request naming for similar actions, which slightly weakens predictability.
With 12 tools, the count is well within a reasonable range for a report-driven testing service: four drill-down reads, overview, full report retrieval, test ordering/requesting, await, and a feature request. The only excess is the duplicated order/request pair structure.
The core lifecycle is covered: request or order a test, await completion, list/get reports, and drill down through issues, violators, and diagnoses. Minor gaps exist around job management such as canceling or listing test jobs, but normal workflows are supported.
Available Tools
12 toolsawaitTestRead-onlyInspect
Wait for a job ordered via the orderNewTest or orderRetest tool to complete, using the report identifier either tool returned. Blocks until the report is ready, the job fails, or a maximum wait time elapses; sends no interim notices. Kilotest tests web pages for front-end quality (accessibility, usability, and standards conformity); results are organized as tested page, then report, then issue, then violator element, then diagnosis.
| Name | Required | Description | Default |
|---|---|---|---|
| jobID | Yes | Job identifier of the ordered job, from the report identifier returned by orderNewTest (example: x9z) | |
| timeStamp | Yes | Timestamp of the ordered job, from the report identifier returned by orderNewTest, in YYMMDDTHHmm format (example: 260503T0432) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool name | Yes | |
| this request | Yes | |
| tool collection | Yes | |
| response content | Yes | |
| response metadata | Yes | |
| URLs of similar requests for web users | Yes |
getKilotestOverviewRead-onlyIdempotentInspect
Explain what Kilotest is, what its tools do, and how its results are structured. Kilotest tests web pages for front-end quality (accessibility, usability, and standards conformity); results are organized as tested page, then report, then issue, then violator element, then diagnosis.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
getReportRead-onlyIdempotentInspect
Get one full report in JSON. Kilotest tests web pages for front-end quality (accessibility, usability, and standards conformity); results are organized as tested page, then report, then issue, then violator element, then diagnosis.
| Name | Required | Description | Default |
|---|---|---|---|
| jobID | Yes | Job identifier of the report (example: x9z) | |
| timeStamp | Yes | Timestamp of the report in YYMMDDTHHmm format (example: 260503T0432) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool name | Yes | |
| this request | Yes | |
| tool collection | Yes | |
| response content | Yes | |
| response metadata | Yes | |
| URLs of similar requests for web users | Yes |
listDiagnosesRead-onlyIdempotentInspect
Provide details about one element reported as exhibiting one issue in one report, including the diagnoses provided by rule engines about how the element exhibited the issue. Kilotest tests web pages for front-end quality (accessibility, usability, and standards conformity); results are organized as tested page, then report, then issue, then violator element, then diagnosis.
| Name | Required | Description | Default |
|---|---|---|---|
| jobID | Yes | Job identifier of the report (example: x9z) | |
| issueID | Yes | Issue identifier (example: contrastPoor) | |
| timeStamp | Yes | Timestamp of the report in YYMMDDTHHmm format (example: 260503T0432) | |
| catalogIndex | Yes | Identifier of the issue-exhibiting element in the catalog of elements on the page (example: 372) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool name | Yes | |
| this request | Yes | |
| tool collection | Yes | |
| response content | Yes | |
| response metadata | Yes | |
| URLs of similar requests for web users | Yes |
listIssuesRead-onlyIdempotentInspect
Provide details about one report, including basics about the issues reported in it and the history of all reports about the same page. Kilotest tests web pages for front-end quality (accessibility, usability, and standards conformity); results are organized as tested page, then report, then issue, then violator element, then diagnosis.
| Name | Required | Description | Default |
|---|---|---|---|
| jobID | Yes | Job identifier of the report (example: x9z) | |
| timeStamp | Yes | Timestamp of the report in YYMMDDTHHmm format (example: 260503T0432) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool name | Yes | |
| this request | Yes | |
| tool collection | Yes | |
| response content | Yes | |
| response metadata | Yes | |
| URLs of similar requests for web users | Yes |
listPagesRead-onlyIdempotentInspect
Provide basics about all tested pages, including how to get details about the latest report about each. Kilotest tests web pages for front-end quality (accessibility, usability, and standards conformity); results are organized as tested page, then report, then issue, then violator element, then diagnosis.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| tool name | Yes | |
| this request | Yes | |
| tool collection | Yes | |
| response content | Yes | |
| response metadata | Yes | |
| URLs of similar requests for web users | Yes |
listViolatorsRead-onlyIdempotentInspect
Provide details about one issue in one report, including basics about the elements of the tested page that were reported as exhibiting the issue. Kilotest tests web pages for front-end quality (accessibility, usability, and standards conformity); results are organized as tested page, then report, then issue, then violator element, then diagnosis.
| Name | Required | Description | Default |
|---|---|---|---|
| jobID | Yes | Job identifier of the report (example: x9z) | |
| issueID | Yes | Issue identifier (example: contrastPoor) | |
| timeStamp | Yes | Timestamp of the report in YYMMDDTHHmm format (example: 260503T0432) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool name | Yes | |
| this request | Yes | |
| tool collection | Yes | |
| response content | Yes | |
| response metadata | Yes | |
| URLs of similar requests for web users | Yes |
orderNewTestInspect
Process my order to test a page about which no report is available yet, immediately and automatically approved, instead of waiting for manual approval. Testing typically takes about 2 minutes and occasionally up to 4 minutes. Kilotest tests web pages for front-end quality (accessibility, usability, and standards conformity); results are organized as tested page, then report, then issue, then violator element, then diagnosis.
| Name | Required | Description | Default |
|---|---|---|---|
| URL | Yes | 12- to 300-character URL of the page, including the https:// scheme and any query | |
| reason | Yes | 20- to 100-character reason why the page should be tested | |
| description | Yes | 1- to 100-character description of the page conforming to the naming convention used in the listPages output |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool name | Yes | |
| this request | Yes | |
| tool collection | Yes | |
| response content | Yes | |
| response metadata | Yes | |
| URLs of similar requests for web users | Yes |
orderRetestInspect
Process my order to retest a page immediately and automatically approved, instead of waiting for manual approval. Testing typically takes about 2 minutes and occasionally up to 4 minutes. Kilotest tests web pages for front-end quality (accessibility, usability, and standards conformity); results are organized as tested page, then report, then issue, then violator element, then diagnosis.
| Name | Required | Description | Default |
|---|---|---|---|
| jobID | Yes | Job identifier of the latest report about the page (example: x9z) | |
| reason | Yes | 20- to 100-character reason why the page should be retested | |
| timeStamp | Yes | Timestamp of the latest report about the page in YYMMDDTHHmm format (example: 260503T0432) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool name | Yes | |
| this request | Yes | |
| tool collection | Yes | |
| response content | Yes | |
| response metadata | Yes | |
| URLs of similar requests for web users | Yes |
requestFeatureInspect
Process my request to add or improve a feature. Kilotest tests web pages for front-end quality (accessibility, usability, and standards conformity); results are organized as tested page, then report, then issue, then violator element, then diagnosis.
| Name | Required | Description | Default |
|---|---|---|---|
| feature | Yes | 20- to 1000-character description of requested feature improvement or new feature |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool name | Yes | |
| this request | Yes | |
| tool collection | Yes | |
| response content | Yes | |
| response metadata | Yes | |
| URLs of similar requests for web users | Yes |
requestNewTestInspect
Process my request to test a page about which no report is available yet. Kilotest tests web pages for front-end quality (accessibility, usability, and standards conformity); results are organized as tested page, then report, then issue, then violator element, then diagnosis.
| Name | Required | Description | Default |
|---|---|---|---|
| URL | Yes | 12- to 300-character URL of the page, including the https:// scheme and any query | |
| reason | Yes | 20- to 100-character reason why the page should be tested | |
| description | Yes | 1- to 100-character description of the page conforming to the naming convention used in the listPages output |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool name | Yes | |
| this request | Yes | |
| tool collection | Yes | |
| response content | Yes | |
| response metadata | Yes | |
| URLs of similar requests for web users | Yes |
requestRetestInspect
Process my request to retest a page about which a report is available. Kilotest tests web pages for front-end quality (accessibility, usability, and standards conformity); results are organized as tested page, then report, then issue, then violator element, then diagnosis.
| Name | Required | Description | Default |
|---|---|---|---|
| jobID | Yes | Job identifier of the latest report about the page (example: x9z) | |
| reason | Yes | 20- to 100-character reason why the page should be retested | |
| timeStamp | Yes | Timestamp of the latest report about the page in YYMMDDTHHmm format (example: 260503T0432) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool name | Yes | |
| this request | Yes | |
| tool collection | Yes | |
| response content | Yes | |
| response metadata | Yes | |
| URLs of similar requests for web users | Yes |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
- Changed
listIssues2 fields changed- added
Output schema / properties / response content / properties / history of reports about the pageAdded value: +{ + "anyOf": [ + { + "items": { + "additionalProperties": false, + "properties": { + "completion date and time": { + "type": "string" + }, + "days since the report was completed": { + "type": [ + "number", + "null" + ] + }, + "how to get details about the report": { + "additionalProperties": false, + "properties": { + "URL": { + "type": "string" + }, + "method": { + "const": "GET", + "type": "string" + } + }, + "required": [ + "method", + "URL" + ], + "type": "object" + }, + "identifier": { + "description": "timeStamp-jobID identifier of the report.", + "type": "string" + }, + "web users can get details about the report at": { + "type": "string" + }, + "whether it is the latest report about the page": { + "type": "boolean" + }, + "whether it is the oldest report about the page": { + "type": "boolean" + }, + "whether it is the report described in this response": { + "type": "boolean" + } + }, + "required": [ + "identifier", + "completion date and time", + "days since the report was completed", + "whether it is the oldest report about the page", + "whether it is the latest report about the page", + "whether it is the report described in this response", + "how to get details about the report", + "web users can get details about the report at" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "description": "All reports about the same page, from oldest to latest, or null if the report is unavailable." +} - changed
Output schema / properties / response content / requiredPrevious value: -[ - "basics about the report", - "details about the report", - "how to request that the page be retested", - "how a web user can request that the page be retested", - "how to get the full report in JSON", - "how a web user can get the full report in JSON", - "basics about all issues reported in the report" -]New value: +[ + "basics about the report", + "history of reports about the page", + "details about the report", + "how to request that the page be retested", + "how a web user can request that the page be retested", + "how to get the full report in JSON", + "how a web user can get the full report in JSON", + "basics about all issues reported in the report" +]
- Added
listPages - Removed
listReports - Changed
orderNewTest2 fields changed- changed
Input schema / properties / description / descriptionPrevious value: -"1- to 100-character description of the page conforming to the naming convention used in the listReports output"New value: +"1- to 100-character description of the page conforming to the naming convention used in the listPages output" - changed
Output schema / properties / this request / properties / body / properties / description / descriptionPrevious value: -"1- to 100-character description of the page conforming to the naming convention used in the listReports output"New value: +"1- to 100-character description of the page conforming to the naming convention used in the listPages output"
- Changed
requestNewTest2 fields changed- changed
Input schema / properties / description / descriptionPrevious value: -"1- to 100-character description of the page conforming to the naming convention used in the listReports output"New value: +"1- to 100-character description of the page conforming to the naming convention used in the listPages output" - changed
Output schema / properties / this request / properties / body / properties / description / descriptionPrevious value: -"1- to 100-character description of the page conforming to the naming convention used in the listReports output"New value: +"1- to 100-character description of the page conforming to the naming convention used in the listPages output"
12 tool updates
- Added
awaitTest - Changed
getReport2 fields changed- removed
Output schema / definitions / RequestReference / properties / method / constRemoved value: -"GET" - added
Output schema / definitions / RequestReference / properties / method / enumAdded value: +[ + "GET", + "POST" +]
- Changed
listDiagnoses2 fields changed- removed
Output schema / definitions / RequestReference / properties / method / constRemoved value: -"GET" - added
Output schema / definitions / RequestReference / properties / method / enumAdded value: +[ + "GET", + "POST" +]
- Changed
listIssues2 fields changed- removed
Output schema / definitions / RequestReference / properties / method / constRemoved value: -"GET" - added
Output schema / definitions / RequestReference / properties / method / enumAdded value: +[ + "GET", + "POST" +]
- Changed
listReports2 fields changed- removed
Output schema / definitions / RequestReference / properties / method / constRemoved value: -"GET" - added
Output schema / definitions / RequestReference / properties / method / enumAdded value: +[ + "GET", + "POST" +]
- Changed
listViolators2 fields changed- removed
Output schema / definitions / RequestReference / properties / method / constRemoved value: -"GET" - added
Output schema / definitions / RequestReference / properties / method / enumAdded value: +[ + "GET", + "POST" +]
- Added
orderNewTest - Added
orderRetest - Changed
requestFeature2 fields changed- removed
Output schema / definitions / RequestReference / properties / method / constRemoved value: -"GET" - added
Output schema / definitions / RequestReference / properties / method / enumAdded value: +[ + "GET", + "POST" +]
- Added
requestNewTest - Changed
requestRetest2 fields changed- removed
Output schema / definitions / RequestReference / properties / method / constRemoved value: -"GET" - added
Output schema / definitions / RequestReference / properties / method / enumAdded value: +[ + "GET", + "POST" +]
- Removed
requestTest
1 tool update
- Added
getKilotestOverview
2 tool updates
- Changed
requestFeature2 fields changed- changed
Input schema / properties / feature / descriptionPrevious value: -"description of requested feature improvement or new feature"New value: +"20- to 1000-character description of requested feature improvement or new feature" - changed
Output schema / properties / this request / properties / body / properties / feature / descriptionPrevious value: -"description of requested feature improvement or new feature"New value: +"20- to 1000-character description of requested feature improvement or new feature"
- Changed
requestTest2 fields changed- changed
Input schema / properties / description / descriptionPrevious value: -"10- to 100-character description of the page conforming to the naming convention used in the listReports output"New value: +"1- to 100-character description of the page conforming to the naming convention used in the listReports output" - changed
Output schema / properties / this request / properties / body / properties / description / descriptionPrevious value: -"10- to 100-character description of the page conforming to the naming convention used in the listReports output"New value: +"1- to 100-character description of the page conforming to the naming convention used in the listReports output"
6 tool updates
- Changed
listDiagnoses2 fields changed- changed
Output schema / definitions / ReportBasics / properties / days since the report was completed / typePrevious value: -"number"New value: +[ + "number", + "null" +] - changed
Output schema / properties / response content / properties / diagnoses of how the element exhibited the issue / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": false, - "properties": { - "count of violations of the rule by the element": { - "type": "number" - }, - "description of the violation": { - "description": "Copied from the report instance (what); type not guaranteed." - }, - "identifier of the violated rule": { - "description": "Copied from the report instance (ruleID); type not guaranteed." - }, - "severity of the violation on a 0-to-3 scale": { - "description": "Copied from the report instance (ordinalSeverity); type not guaranteed." - } - }, - "required": [ - "identifier of the violated rule", - "description of the violation", - "severity of the violation on a 0-to-3 scale", - "count of violations of the rule by the element" - ], - "type": "object" - }, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "error": { - "type": "string" - } - }, - "required": [ - "error" - ], - "type": "object" - } -]New value: +[ + { + "anyOf": [ + { + "items": { + "additionalProperties": false, + "properties": { + "count of violations of the rule by the element": { + "type": "number" + }, + "description of the violation": { + "description": "Copied from the report instance (what); type not guaranteed." + }, + "identifier of the violated rule": { + "description": "Copied from the report instance (ruleID); type not guaranteed." + }, + "severity of the violation on a 0-to-3 scale": { + "description": "Copied from the report instance (ordinalSeverity); type not guaranteed." + } + }, + "required": [ + "identifier of the violated rule", + "description of the violation", + "severity of the violation on a 0-to-3 scale", + "count of violations of the rule by the element" + ], + "type": "object" + }, + "type": "array" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "type": "string" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ] + }, + { + "type": "null" + } +]
- Changed
listIssues4 fields changed- changed
Output schema / definitions / ReportBasics / properties / days since the report was completed / typePrevious value: -"number"New value: +[ + "number", + "null" +] - added
Output schema / properties / response content / properties / basics about all issues reported in the report / anyOfAdded value: +[ + { + "items": { + "additionalProperties": false, + "properties": { + "how to get details about the issue": { + "additionalProperties": false, + "properties": { + "URL": { + "type": "string" + }, + "method": { + "const": "GET", + "type": "string" + } + }, + "required": [ + "method", + "URL" + ], + "type": "object" + }, + "identifier": { + "type": "string" + }, + "impact on a user": { + "type": "string" + }, + "priority": { + "enum": [ + "lowest", + "low", + "high", + "highest" + ], + "type": "string" + }, + "rule engines with any violations belonging to the issue": { + "items": { + "type": [ + "string", + "null" + ] + }, + "type": "array" + }, + "summary": { + "type": "string" + }, + "web users can get details about the issue at": { + "type": "string" + } + }, + "required": [ + "identifier", + "summary", + "impact on a user", + "priority", + "rule engines with any violations belonging to the issue", + "how to get details about the issue", + "web users can get details about the issue at" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - removed
Output schema / properties / response content / properties / basics about all issues reported in the report / itemsRemoved value: -{ - "additionalProperties": false, - "properties": { - "how to get details about the issue": { - "additionalProperties": false, - "properties": { - "URL": { - "type": "string" - }, - "method": { - "const": "GET", - "type": "string" - } - }, - "required": [ - "method", - "URL" - ], - "type": "object" - }, - "identifier": { - "type": "string" - }, - "impact on a user": { - "type": "string" - }, - "priority": { - "enum": [ - "lowest", - "low", - "high", - "highest" - ], - "type": "string" - }, - "rule engines with any violations belonging to the issue": { - "items": { - "type": "string" - }, - "type": "array" - }, - "summary": { - "type": "string" - }, - "web users can get details about the issue at": { - "type": "string" - } - }, - "required": [ - "identifier", - "summary", - "impact on a user", - "priority", - "rule engines with any violations belonging to the issue", - "how to get details about the issue", - "web users can get details about the issue at" - ], - "type": "object" -} - removed
Output schema / properties / response content / properties / basics about all issues reported in the report / typeRemoved value: -"array"
- Changed
listReports1 field changed- changed
Output schema / properties / response content / properties / basics about all available reports / items / properties / days since the report was completed / typePrevious value: -"number"New value: +[ + "number", + "null" +]
- Changed
listViolators4 fields changed- changed
Output schema / definitions / ReportBasics / properties / days since the report was completed / typePrevious value: -"number"New value: +[ + "number", + "null" +] - added
Output schema / properties / response content / properties / basics about all elements exhibiting the issueAdded value: +{ + "anyOf": [ + { + "items": { + "additionalProperties": false, + "properties": { + "count of rule engines reporting that the element exhibited the issue": { + "type": "number" + }, + "how to get details about the element": { + "additionalProperties": false, + "properties": { + "URL": { + "type": "string" + }, + "request method": { + "const": "GET", + "type": "string" + } + }, + "required": [ + "URL", + "request method" + ], + "type": "object" + }, + "identifier": { + "description": "Catalog index of the element in the report; a string or number, copied verbatim.", + "type": [ + "string", + "number" + ] + }, + "inner text": { + "description": "Copied from the report catalog entry; type not guaranteed." + }, + "tag name": { + "description": "Copied from the report catalog entry; type not guaranteed." + }, + "web users can get details about the element at": { + "type": "string" + } + }, + "required": [ + "identifier", + "tag name", + "inner text", + "count of rule engines reporting that the element exhibited the issue", + "how to get details about the element", + "web users can get details about the element at" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] +} - removed
Output schema / properties / response content / properties / basics about all elements reported as exhibiting the issueRemoved value: -{ - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "count of rule engines reporting that the element exhibited the issue": { - "type": "number" - }, - "how to get details about the element": { - "additionalProperties": false, - "properties": { - "URL": { - "type": "string" - }, - "request method": { - "const": "GET", - "type": "string" - } - }, - "required": [ - "URL", - "request method" - ], - "type": "object" - }, - "identifier": { - "type": "string" - }, - "inner text": { - "description": "Copied from the report catalog entry; type not guaranteed." - }, - "tag name": { - "description": "Copied from the report catalog entry; type not guaranteed." - }, - "web users can get details about the element at": { - "type": "string" - } - }, - "required": [ - "identifier", - "tag name", - "inner text", - "count of rule engines reporting that the element exhibited the issue", - "how to get details about the element", - "web users can get details about the element at" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] -} - changed
Output schema / properties / response content / requiredPrevious value: -[ - "basics about the report", - "basics about the issue", - "details about the issue", - "basics about all elements reported as exhibiting the issue" -]New value: +[ + "basics about the report", + "basics about the issue", + "details about the issue", + "basics about all elements exhibiting the issue" +]
- Changed
requestRetest2 fields changed- added
Output schema / properties / response content / properties / disposition of your requestAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "how a web user can check for completion": { + "type": "string" + }, + "how you can check for completion": { + "type": "string" + }, + "what happens next": { + "type": "string" + } + }, + "required": [ + "what happens next", + "how you can check for completion", + "how a web user can check for completion" + ], + "type": "object" + }, + { + "type": "null" + } + ] +} - changed
Output schema / properties / response content / requiredPrevious value: -[ - "details about your request" -]New value: +[ + "details about your request", + "disposition of your request" +]
- Changed
requestTest2 fields changed- added
Output schema / properties / response content / properties / disposition of your requestAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "how a web user can check for completion": { + "type": "string" + }, + "how you can check for completion": { + "type": "string" + }, + "what happens next": { + "type": "string" + } + }, + "required": [ + "what happens next", + "how you can check for completion", + "how a web user can check for completion" + ], + "type": "object" + }, + { + "type": "null" + } + ] +} - changed
Output schema / properties / response content / requiredPrevious value: -[ - "details about your request" -]New value: +[ + "details about your request", + "disposition of your request" +]
8 tool updates
- First observed
getReport - First observed
listDiagnoses - First observed
listIssues - First observed
listReports - First observed
listViolators - First observed
requestFeature - First observed
requestRetest - First observed
requestTest
Related MCP Connectors
Accessibility compliance for AI coding tools. WCAG 2.2 reviews with shared evidence.
Measured rates at which web services lack machine-readable capabilities. Research demonstrator.
Accessibility pre-checks (WCAG/BFSG) in a real browser + statement drafts. Pay per call.
Fail-closed, change-aware verification for AI coding agents with affected-test guidance.
Related MCP Servers
- AlicenseAqualityBmaintenanceA WCAG accessibility testing MCP for AI agents, Codex, Claude Code, and automated UI audits.755 npm1MIT
- AlicenseBqualityNot gradedmaintenanceProvides comprehensive website validation across performance, accessibility, SEO, and security dimensions using multiple testing services including WebPageTest, Google PageSpeed Insights, Axe DevTools, Mozilla Observatory, and SSL Labs. Enables automated website health assessments through browser automation and API integrations.123 npm1-
- FlicenseNot gradedqualityDmaintenanceAutomates WCAG 2.2 accessibility audits by connecting Claude with 8 screen readers, reducing manual audit time by 62%.-
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to automate and interact with web pages via structured accessibility snapshots, bypassing screenshots and vision models.6,555,401 npmApache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.