Watch Skill
Turns videos, screen recordings and live sessions into searchable, timestamped evidence
Checks a screenshot with local, offline OCR to confirm that expected text really shows on screen
By Parthiban Rajasekaran (individual) TypeScript Local · stdio TestingMedia
46 popularity score ★ 94 ↓ 767/wk
Opens the app, which asks before it adds the server.
claude mcp add rendercheck -- npx -y @rendercheck/sdk mcp{
"mcpServers": {
"rendercheck": {
"command": "npx",
"args": [
"-y",
"@rendercheck/sdk",
"mcp"
]
}
}
}{
"mcpServers": {
"rendercheck": {
"command": "npx",
"args": [
"-y",
"@rendercheck/sdk",
"mcp"
]
}
}
}{
"servers": {
"rendercheck": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@rendercheck/sdk",
"mcp"
]
}
}
}[mcp_servers.rendercheck]
command = "npx"
args = ["-y", "@rendercheck/sdk", "mcp"]gemini mcp add --scope user rendercheck npx -- -y @rendercheck/sdk mcpRENDERCHECK_NO_USAGE_LOG |
Optional: Set to 1 to stop the local run counter in ~/.rendercheck/usage.jsonl. |
|---|
RenderCheck is an OCR testing kit for Playwright and Cypress. Its npm package, @rendercheck/sdk, also includes a stdio MCP server that you start with `rendercheck mcp`. A coding assistant can then hand it a PNG or JPEG screenshot, as a file path or as base64, and find out what a person would actually see. That covers wrong characters (a € where a $ was expected), text hidden behind another element, and text too faint to read.
Recognition runs inside the Node process using Tesseract.js (WebAssembly), with the English language data bundled in the package. It needs no API key and makes no network calls. verify_text gives pass or fail, the text it read, a confidence score and the position on the screenshot. When a check fails it also gives a reason code: NOT_FOUND, LOW_CONFIDENCE or INSUFFICIENT_CONTRAST. The confidence threshold is 80 unless min_confidence says otherwise. A WCAG contrast check runs only when min_contrast_ratio is given. Either tool can be limited to one rectangle of the image with region.
The library accepts lang and langPath to load other Tesseract languages, but at v0.6.0 the MCP tools take neither (packages/rendercheck/src/mcp/server.ts). Through MCP the server therefore reads English only. Its makers call the project a developer beta.
| Runtime | Node.js 18+ |
|---|
Node 18 or newer, since the server runs through npx. The screenshot must already exist as a PNG or JPEG file on the same machine, or be passed as base64. The server does not take screenshots itself. No account, API key or network access is needed.
Developer beta. OCR can confuse l/I/1 and O/0 and can skip text, especially light text on a coloured background in a busy screenshot. Passing a region helps. Very faint text may not be read at all. Contrast is estimated from pixels, so gradients, background images and anti-aliasing make it approximate. It checks visible text only, not layout, spacing or colour beyond contrast. Through MCP it reads English only, because the tools expose no language option at v0.6.0. Accepts PNG and JPEG only.
A good fit for developers whose coding assistant changes UI and should confirm the change actually rendered, for example a price, a label or contrast that meets WCAG, without sending screenshots to an outside OCR service. It is local, read-only and needs no keys. It needs a screenshot from somewhere else, such as a browser-automation server or a test run, so it complements those rather than replacing them. For layout or visual-regression checks, or for text in languages other than English through MCP, pick another tool.
verify_textread_text