RenderCheck MCP
Checks on-screen text with local OCR: an MCP server and SDK for Playwright and Cypress that catch wrong, faint or missing text
- 94 ★ on the repository
- Last commit
Minimal access
Why this level
- Recognition is local, but the agent reads screenshots that may contain personal data
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/rendercheckDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewMinimal accessThe tool runs nothing and makes no network calls.
- Recognition is local, but the agent reads screenshots that may contain personal data
This is third-party code. Review the repository files before installing.
What it does
RenderCheck takes a page screenshot in a Playwright or Cypress test, reads it with local OCR and fails the test if the on-screen text differs from what is expected, is too faint or is missing. DOM tests miss such cases: a `€` where a `$` belongs, or text covered by another element. The error message shows what was read, with what confidence and where it differs. Recognition runs on Tesseract.js in WebAssembly, with no API key, upload or network, and English language data ships in the package. `rendercheck mcp` starts an MCP server over stdio with two tools: `verify_text` checks that text is visible, legible and matching, and `read_text` returns what a user sees. `npx @rendercheck/sdk init` adds a short instruction to the repo ("after changing UI, verify the pixels with verify_text") and the server entry for Claude Code, Codex, Cursor and Copilot. The SDK has `toShowText`, `toShowCurrency` and `toShowDate` assertions that respect locale, a confidence threshold and a WCAG contrast threshold. The same repository holds a free website that recognizes text from images entirely in the browser.
Who it is for. Interface developers and testers on Playwright or Cypress who ask an agent to check that an edit did not break the visible text.
Good fit when
- An agent changed the layout and you must confirm the total on screen stayed the same
- You need to catch text present in the DOM but covered by another element
- You check WCAG text contrast right in a test
- Prices and dates must render in the right locale, for example `1.234,50 €`
- You want to read text from a screenshot in the agent without uploading it to a cloud
Not a fit when
- You need handwriting or multi-language scan recognition: the package ships English OCR data
- You need an exact recognition quality metric: the README says there is no general accuracy figure
- The project uses another test framework: support is stated for Playwright and Cypress, with Cypress run on 13 (Electron, Linux) only
Example request
After editing the checkout page, take a screenshot and use verify_text to check that the screen says "Total: $14.00".MCP
- Transport
- stdio
- Authentication
- not required
Limitations
The project is in developer beta. OCR accuracy depends on the image: the author says plainly there is no general figure, and the small benchmark suite in `packages/rendercheck/benchmarks` is self-made and shows cases where it is wrong. The package was renamed: up to 0.4.1 it was `@freetextfromimage/rendercheck`, from 0.5.0 it is `@rendercheck/sdk`. Node 18 or later and `@playwright/test` 1.40+ or `cypress` 12+ are required. A run counter is written to `~/.rendercheck/usage.jsonl` on your machine without screenshot text, and `RENDERCHECK_NO_USAGE_LOG=1` turns it off.
How to disable. Remove the `rendercheck` entry from the MCP configuration with `claude mcp remove rendercheck` and the package with `npm uninstall @rendercheck/sdk`. The `~/.rendercheck/usage.jsonl` file can be deleted by hand.
FAQ
How do I connect RenderCheck to Claude Code?
With `claude mcp add rendercheck -- npx -y @rendercheck/sdk mcp`. The server uses stdio and exposes the `verify_text` and `read_text` tools.
Are screenshots sent to a cloud?
No. OCR runs in-process on your machine, no API key is needed and no network calls are made. Screenshot text is not written to the run counter.
Why is it better than checking the DOM?
The DOM shows what should be on the page, while a screenshot shows what a person sees. RenderCheck catches a wrong character, a covered element and low contrast.
Which test frameworks are supported?
Playwright 1.40 and later and Cypress 12 and later. Cypress has been run only on version 13 in Electron on Linux.
What does the init command do?
`npx @rendercheck/sdk init` adds an agent instruction and an MCP server entry to the repo for Claude Code, Codex, Cursor and Copilot. Re-running updates only the marked RenderCheck block.
Discussion
No questions or reviews yet.
Related
MCP serversMCP Accessibility Scanner runs axe checks, exercises keyboard focus and saves accessibility reports for web pages
kogiQA MCP gives an agent a browser that finds page elements without selectors, for debugging web apps and writing e2e tests
UI Verify: visual testing for agents
UI Verify
UI Verify's remote MCP server: the agent reviews pull request UI changes, inspects diffs and accepts the intended baselines
A community Playwright MCP server: browser automation, screenshots, device emulation and test code generation
A Claude Code plugin that verifies a change against its plan: boots your stack, runs acceptance criteria, reports evidence.
An MCP server that checks whether the agent is really done: drives the real app and returns pass, fail or couldn't tell with the file and line
README in short
The README puts the main example with an error message and the SDK install first. The rest covers the free browser tool for text from images: features, UI variants, SEO settings and spec-driven development. The package README in `packages/rendercheck` details Playwright, Cypress, the CLI, MCP and options.