# mcp-accessibility-scanner

Гоняет axe-проверки, обход по Tab и разбор дерева доступности прямо из агента. Пригодится, когда вёрстку нужно проверить до релиза.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 57
- Автор: JustasMonkev
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/JustasMonkev/mcp-accessibility-scanner
- Обновлён: 2026-10-24
- HTML: https://affpapa.org/nevibecode/mcp/mcp-accessibility-scanner

## Что делает

Сервер поднимает браузер через Playwright и прогоняет страницу инструментами axe-core. Агент открывает адрес, сканирует разметку, жмёт Tab по интерактивным элементам и сохраняет находки в JSON — с деталями по узлам и ссылками на исправления. `scan_page` с `annotateScreenshot: true` дополнительно рисует полноэкранный PNG с пометками, а `audit_screen_reader` смотрит дерево доступности, имена элементов и геометрию. Настоящий скринридер он не запускает, так что ручная проверка остаётся.

Перед первым запуском поставьте Google Chrome: npm-пакет браузер не тянет. Установка идёт через `npm install -g mcp-accessibility-scanner --allow-scripts=re2` — флаг нужен, чтобы собралась нативная зависимость `re2`. Без неё сервер падает с `Cannot find module './build/Release/re2.node'`. Если готового бинарника нет, потребуется тулчейн для сборки. Есть и образ на Docker Hub с Chromium внутри.

Дальше сервер прописывается в MCP-конфиг клиента как stdio-процесс с аргументами `--headless`, `--isolated` и `--output-dir ./a11y-output`. `--isolated` берёт свежий профиль, а не вашу личную сессию Chrome. Пути вывода считаются от рабочей директории сервера, поэтому при запуске из другого места указывайте абсолютный `--output-dir`. Автоматические проверки не заменяют сертификацию по WCAG — смотрите предупреждения о покрытии и непроверенные состояния страницы.

## Требования
- Нужно: Node.js (команды через npx)
- Работает с: Playwright

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add mcp-accessibility-scanner -- npx -y mcp-accessibility-scanner
```

### Codex

**Командой платформы**
```bash
codex mcp add mcp-accessibility-scanner -- npx -y mcp-accessibility-scanner
```

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mcp-accessibility-scanner": {
            "command": "npx",
            "args": [
                "-y",
                "mcp-accessibility-scanner"
            ]
        }
    }
}
```

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "mcp-accessibility-scanner": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "mcp-accessibility-scanner"
            ]
        }
    }
}
```

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add mcp-accessibility-scanner npx -y mcp-accessibility-scanner
```

## Когда брать
- найти картинки без alt-текста на странице
- проверить контраст текста до релиза
- пройти по Tab и увидеть, где теряется фокус
- собрать JSON-отчёт по нарушениям для команды
- разобрать дерево доступности формы с подписями полей

## Примеры запросов агенту
- Открой `http://localhost:3000` и прогони `scan_page` с `annotateScreenshot: true`
- Пройди `audit_keyboard` с `maxTabs: 30` и покажи, где фокус уходит не туда
- Запусти `audit_screen_reader` и проверь доступные имена у кнопок

## Похожие
- [Front-End Checklist](https://affpapa.org/nevibecode/mcp/front-end-checklist.md) — MCP-сервер · ★ 74559
- [Keploy](https://affpapa.org/nevibecode/mcp/keploy.md) — MCP-сервер · ★ 18727
- [SeleniumBase MCP](https://affpapa.org/nevibecode/mcp/seleniumbase-mcp.md) — MCP-сервер · ★ 13169
- [mobile-mcp](https://affpapa.org/nevibecode/mcp/mobile-mcp.md) — MCP-сервер · ★ 9946
- [e2e](https://affpapa.org/nevibecode/mcp/e2e.md) — MCP-сервер · ★ 11912
- [mockserver](https://affpapa.org/nevibecode/mcp/mockserver.md) — MCP-сервер · ★ 4996

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
