lo-eyes

io.github.sophiacavePublished by GitHub account sophiacavev1.1.0Updated Oct 24, 2026

Visual accessibility inspector. WCAG contrast, touch targets, heading audits, screenshots.

VerifiedSTDIODesktop onlyBrowser AutomationDeveloper Tools

Overview

AI-generated overview

Local MCP server that inspects web pages for visual accessibility: WCAG contrast, touch targets, heading hierarchy, and responsive screenshots.

What you can do
  • Capture viewport-sized screenshots at device presets such as iPhone, iPad, laptop and desktop
  • Chunk a full page into readable viewport pieces with a RAG manifest
  • Run responsive and accessibility audits with S+ grading, covering overflow, small font sizes, touch targets and skipped heading levels
  • List the available device presets
When to use it
Useful when checking a frontend or site for mobile and desktop layout problems and basic accessibility issues, and when you want screenshots or page chunks an assistant can review. Handy for quick pre-release checks across several viewports.
Requirements
Runs as a local Python 3 process with Playwright and headless Chromium installed, plus the MCP SDK. The target site is set through a BASE_URL value. No accounts, API keys or environment variables are declared.
Before you install
The server drives a headless browser against whatever site BASE_URL points to, so it makes real network requests to that site. Screenshots and page content are passed back to the assistant. It only reads pages; no write actions are described.

Installation

In SourceWeft

  1. Open lo-eyes in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

lo-eyes

[CI]

[License: MIT] [Python 3.10+] [MCP Compatible]

Visual frontend accessibility inspector MCP server. WCAG contrast checking, touch target validation, heading hierarchy audits, responsive screenshots, and S+ grading across mobile and desktop viewports.

Built by Like One Foundation (501(c)(3) nonprofit). Works with any site by changing BASE_URL.

Tools

ToolDescription
eyes_screenshotViewport-sized screenshot at any device preset
eyes_scanAuto-chunk full page into readable viewport pieces with RAG manifest
eyes_auditResponsive + accessibility audit with S+ grading
eyes_devicesList available device presets

Device Presets

NameViewportType
iphone-se375x667Mobile
iphone-14390x844Mobile
ipad768x1024Tablet
laptop1280x800Desktop
desktop1440x900Desktop

Audit Checks

  • Overflow: Elements exceeding viewport width (respects scroll parents)
  • Font size: Text below 12px minimum
  • Touch targets: Interactive elements below Apple HIG 44px minimum
  • Heading hierarchy: Skipped heading levels (h1 -> h3)

Grading

GradeCriteria
S+Zero issues
A1-5 medium, zero high
B6+ medium, zero high
C1-2 high
D3-5 high
F6+ high

Setup

bash
cd lo-eyespython3 -m venv .venvsource .venv/bin/activatepip install playwright mcppython3 -m playwright install chromium

Usage

As MCP Server (Claude Code)

Add to .mcp.json:

json
{  "mcpServers": {    "lo-eyes": {      "command": "/path/to/lo-eyes/.venv/bin/python3",      "args": ["/path/to/lo-eyes/server.py"]    }  }}

As CLI

bash
./lo-eyes audit /                           # Audit homepage./lo-eyes screenshot /blog/ --device ipad   # iPad screenshot./lo-eyes scan / --device iphone-14         # Full-page chunked scan./lo-eyes responsive /academy/              # All 5 viewports

Stack

License

MIT


Built with love by Like One.

Source: README.md at commit fdca2e3

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.1.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts