{
  "markdown": "# lo-eyes\n\n[![CI](https://github.com/sophiacave/lo-eyes/actions/workflows/ci.yml/badge.svg)](https://github.com/sophiacave/lo-eyes/actions/workflows/ci.yml)\n\n\n<!-- mcp-name: io.github.sophiacave/lo-eyes -->\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-purple.svg)](https://opensource.org/licenses/MIT)\n[![Python 3.10+](https://img.shields.io/badge/Python-3.10+-blue.svg)](https://www.python.org/)\n[![MCP Compatible](https://img.shields.io/badge/MCP-Compatible-orange.svg)](https://modelcontextprotocol.io)\n\n**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.\n\nBuilt by [Like One Foundation](https://likeone.ai) (501(c)(3) nonprofit). Works with any site by changing `BASE_URL`.\n\n## Tools\n\n| Tool | Description |\n|------|-------------|\n| `eyes_screenshot` | Viewport-sized screenshot at any device preset |\n| `eyes_scan` | Auto-chunk full page into readable viewport pieces with RAG manifest |\n| `eyes_audit` | Responsive + accessibility audit with S+ grading |\n| `eyes_devices` | List available device presets |\n\n## Device Presets\n\n| Name | Viewport | Type |\n|------|----------|------|\n| `iphone-se` | 375x667 | Mobile |\n| `iphone-14` | 390x844 | Mobile |\n| `ipad` | 768x1024 | Tablet |\n| `laptop` | 1280x800 | Desktop |\n| `desktop` | 1440x900 | Desktop |\n\n## Audit Checks\n\n- **Overflow**: Elements exceeding viewport width (respects scroll parents)\n- **Font size**: Text below 12px minimum\n- **Touch targets**: Interactive elements below Apple HIG 44px minimum\n- **Heading hierarchy**: Skipped heading levels (h1 -> h3)\n\n## Grading\n\n| Grade | Criteria |\n|-------|----------|\n| S+ | Zero issues |\n| A | 1-5 medium, zero high |\n| B | 6+ medium, zero high |\n| C | 1-2 high |\n| D | 3-5 high |\n| F | 6+ high |\n\n## Setup\n\n```bash\ncd lo-eyes\npython3 -m venv .venv\nsource .venv/bin/activate\npip install playwright mcp\npython3 -m playwright install chromium\n```\n\n## Usage\n\n### As MCP Server (Claude Code)\n\nAdd to `.mcp.json`:\n```json\n{\n  \"mcpServers\": {\n    \"lo-eyes\": {\n      \"command\": \"/path/to/lo-eyes/.venv/bin/python3\",\n      \"args\": [\"/path/to/lo-eyes/server.py\"]\n    }\n  }\n}\n```\n\n### As CLI\n\n```bash\n./lo-eyes audit /                           # Audit homepage\n./lo-eyes screenshot /blog/ --device ipad   # iPad screenshot\n./lo-eyes scan / --device iphone-14         # Full-page chunked scan\n./lo-eyes responsive /academy/              # All 5 viewports\n```\n\n## Stack\n\n- Python 3\n- [Playwright](https://playwright.dev/) (headless Chromium)\n- [MCP SDK](https://github.com/modelcontextprotocol/python-sdk) (FastMCP, stdio transport)\n\n## License\n\nMIT\n\n---\n\nBuilt with love by [Like One](https://likeone.ai).\n",
  "bytes": 2774,
  "sha": "d01d40685929c6f8e2262a11c5bd1c16e7e85f06a57a7cb6e108642cc974a48f",
  "repo_slug": "sophiacave/lo-eyes",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_sophiacave_lo_eyes_4176bcda/readme"
}