Kilotest
Ensemble testing of web pages for accessibility, usability, and web standards
Que pouvez-vous faire avec Kilotest ?
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
claude mcp add --transport http kilotest 'https://kilotest.com/mcp'
{
"mcpServers": {
"kilotest": {
"type": "http",
"url": "https://kilotest.com/mcp"
}
}
}
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
Sommaire
Kilotest
An ensemble testing and reporting service for front-end web quality
Features
This application uses an ensemble of 12 rule engines to test web pages for front-end quality (i.e. accessibility, usability, and web standards, including HTML, CSS, ARIA, and WCAG).
The testing paradigm employed by Kilotest is discussed in these papers:
- How to run a thousand accessibility tests
- Testaro: Efficient Ensemble Testing for Web Accessibility
- Accessibility Metatesting: Comparing Nine Testing Tools
Kilotest acts as a web server for human users, an MCP server (streamable HTTP, no authentication) for AI platforms, and an API for programmatic access.
Testing for Kilotest is performed by one or more workers (testing agents) that obtain jobs from Kilotest, perform them, and send reports of the results back to Kilotest. Those agents are instances of the Testaro package. Thus, the pages that Kilotest tests need not be on the public Internet. They need only be reachable by the Testaro workers that do the testing for Kilotest. So, one or more Testaro workers running inside a private intranet can test internal pages, as well as any external ones reachable from inside the intranet.
An active production instance of Kilotest may require multiple Testaro workers to handle the load, because testing one web page typically takes 2 to 4 minutes and workers test only one page at a time.
Getting started locally with 1 worker
Installation
In the steps below, hosts T and K may be the same host or two different hosts. Host T can be a Debian stable, Ubuntu LTS, Windows, or macOS host. Host K can be any server host that can run the latest LTS version of Node.js. If hosts T and K differ, then they must be open to https traffic and host K must permit https requests from host T.
- Clone the Testaro project into a new directory on host
T. - In that directory, install the Testaro dependencies:
npm install. - Update the Testaro dependencies and rebuild:
npm run deps. - Clone the Kilotest repository into a new directory on host
K. - In that directory, install the Kilotest dependencies:
npm install. - Copy the
env.testarofile from thekilotestdirectory to.envin thetestarodirectory and replace the__placeholder__values in.envwith actual values. - Copy the
env.examplefile in thekilotestdirectory to a new.envfile in the same directory and replace the__placeholder__values in.envwith actual values.TESTARO_WORKERSis a JSON object mapping each Testaro worker's ID to an object with itssecretand itsname; the ID and secret for a worker must match theNETWATCH_URL_WORKER_IDandNETWATCH_URL_AUTHvalues in that worker's.env. A worker authenticates each request with an HTTP BasicAuthorizationheader (id:secret, base64-encoded); as of this writing that header is not yet sent by the published Testaro package, so this scheme requires a matching update to Testaro'snetWatch.jsrequest code (only to send the header; no change to Testaro's handling of jobs or reports is needed). The ID is a credential and is never published; thenameis written by Kilotest into a job's and report'ssources.workerproperty, which Testaro does not read or alter, so it is a distinct property fromsources.agent(Testaro's own, untrusted, self-reported label, which Kilotest ignores). Choose anamethat is safe to appear in every report Kilotest serves.ALLOW_INTERNAL_TARGETScontrols whether this deployment can be induced to test pages at private, loopback, or link-local addresses; seeSERVICE.mdbefore changing it from its default.
Usage
- In the
testarodirectory, make Testaro start listening for jobs:node call netWatch true nn true, wherennis the number of seconds to wait between checks for new jobs. Note that Kilotest promises nearly immediate review and, on approval, immediate execution of “orders” for tests and retests, with typical total elapsed time 2 to 4 minutes. That promise implies a promise to keepnnsmall. A reasonable value is between 10 and 20. - In the
kilotestdirectory, start the Kilotest service:node index.
Contributing
Contributions are welcome! You can use GitHub issues to initiate discussions and propose changes. If you want to contribute code, please fork the repository and create a pull request.
Making Kilotest a service
See the SERVICE.md file for instructions on how to make Kilotest a service.
Using Kilotest as an AI tool
Kilotest is not only a web application but also an API and an MCP server. AI platforms and models can use Kilotest via those interfaces.
The public URL for models using the MCP server at kilotest.com is https://kilotest.com/mcp. The MCP server is registered at several registries. See AI-TOOLS.md for details.
There is additional documentation at:
- Tutorial: authorizing AI assistants to use Kilotest
- AI-TOOLS.md: how Kilotest implements the MCP protocol
- Summary of Kilotest capabilities
- llms.txt: basic documentation for LLMs
- llms-full.txt: comprehensive documentation for LLMs
- lhm.plugin.json: documentation for registration with the LobeHub MCP Market
Maintenance
These are the routine steps for maintaining Kilotest as currently deployed.
No API changes
When you make a change in a feature branch without any API or tool contract change:
- Stage, commit, and optionally push all changes.
- Execute
npm run prePR -- <level>(major,minor, orpatch). - Submit a pull request.
- When all checks succeed, squash-merge to
mainand delete the feature branch on GitHub. - Execute
npm run postPR(with interactive browser authentication). - Wait until
npmjs.comhas processed the publication. - Use
git pull,npm ci, andpm2 restart kilotest(but notnpm audit fix) to deploy the revisedmainbranch on the public server.
API changes
When you make an API or tool contract change in a feature branch:
lhm.plugin.json: Transform it to matchapi/schemas.tsandmcp.ts.llms.txt,llms-full.txt,capability.md,README.md: Update parameter and path names.- Stage, commit, and optionally push all changes.
- Execute
npm run prePR -- <level>(major,minor, orpatch). - Submit a pull request.
- When all checks succeed, squash-merge to
main. - Execute
npm run postPR(with interactive browser authentication). - Wait until
npmjs.comhas processed the publication. - Use
git pull,npm ci, andpm2 restart kilotest(but notnpm audit fix) to deploy the revisedmainbranch on the public server. - Visit the RapidAPI Studio and update the API definition at
Hub Listing→Definitions→CI/CD→Import OpenAPIby uploading the regeneratedopenapi-3.0.yaml.
If any step fails, see the details in docs/AI-TOOLS.md for troubleshooting instructions.
Questions fréquentes
Qu'est-ce que Kilotest ?
Ensemble testing of web pages for accessibility, usability, and web standards
Comment installer Kilotest ?
Il fonctionne comme serveur distant. Dans Claude Code : claude mcp add --transport http kilotest 'https://kilotest.com/mcp'. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour Kilotest ?
Son entrée au registre n'indique aucune clé ni secret obligatoire. Certaines fonctions peuvent tout de même demander un compte auprès du service auquel il se connecte.
Kilotest est-il open source ?
Oui. Son code est sur GitHub sous licence MIT.
Qui maintient Kilotest ?
Il est publié par jrpool. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.