Skip to main content
Glama
JMitac

MCP Accessibility Audit

by JMitac
README.md
# 🔍 MCP Accessibility Audit

Servidor MCP (Model Context Protocol) para ejecutar auditorías de accesibilidad web siguiendo los estándares WCAG. Genera reportes detallados en español con soluciones recomendadas.

## ✨ Características

- 🔎 **Auditoría automatizada** usando axe-core y Puppeteer
- 🇪🇸 **Reportes en español** con traducciones de violaciones
- 💡 **Soluciones recomendadas** con ejemplos de código
- 📊 **Reportes en Markdown** fáciles de leer y versionar
- 🎯 **Soporte WCAG 2.0 y 2.1** (niveles A, AA, AAA)

## 📋 Requisitos

- Node.js 18.0.0 o superior
- npm 9.0.0 o superior

## 🚀 Instalación

```bash
# Clonar o navegar al proyecto
cd mcp-accessibility-audit

# Instalar dependencias
npm install
```

## 📖 Uso

### Con MCP Inspector (Recomendado para pruebas)

```bash
npm run mcp:inspector
```

Esto abrirá una interfaz web donde puedes:
1. Conectar al servidor
2. Listar herramientas disponibles
3. Ejecutar auditorías

### Con Claude Desktop

Agrega esta configuración a tu `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "accessibility-audit": {
      "command": "npx",
      "args": ["tsx", "src/index.ts"],
      "cwd": "/ruta/a/mcp-accessibility-audit"
    }
  }
}
```

## 🛠️ Herramientas Disponibles

### `audit_accessibility`

Ejecuta una auditoría de accesibilidad en una URL.

| Parámetro | Tipo | Requerido | Descripción |
|-----------|------|-----------|-------------|
| `url` | string | ✅ | URL a auditar |
| `outputDir` | string | ❌ | Directorio para reportes (default: ./reports) |
| `wcagLevel` | string | ❌ | Nivel WCAG (default: wcag21aa) |

### `list_reports`

Lista todos los reportes generados.

| Parámetro | Tipo | Requerido | Descripción |
|-----------|------|-----------|-------------|
| `outputDir` | string | ❌ | Directorio donde buscar (default: ./reports) |

## 📁 Estructura del Proyecto

```
mcp-accessibility-audit/
├── src/
│   ├── index.ts           # Punto de entrada
│   ├── server.ts          # Configuración del servidor MCP
│   ├── tools/             # Definición de herramientas
│   ├── services/          # Lógica de negocio
│   ├── translations/      # Traducciones al español
│   ├── types/             # Tipos TypeScript
│   └── utils/             # Utilidades
├── docs/
│   ├── ARQUITECTURA.md    # Documentación de arquitectura
│   └── GUIA_USO.md        # Guía de uso detallada
├── reports/               # Reportes generados (gitignore)
└── package.json
```

## 🌿 Ramas del Repositorio

| Rama | Contenido |
|------|-----------|
| `master` | Código fuente del servidor MCP Accessibility Audit |
| `test-accessibility-app` | Proyecto React de prueba con problemas de accesibilidad intencionales para validar el MCP |

### Proyecto de Prueba

La rama `test-accessibility-app` contiene una aplicación React + TypeScript con violaciones de accesibilidad intencionales:

- 🖼️ Imágenes sin `alt` o con alt no descriptivo
- 📝 Formularios sin labels asociados
- 🔘 Botones sin texto accesible
- 🔗 Enlaces con texto no descriptivo
- 🏗️ Estructura HTML incorrecta (saltos de encabezados, múltiples h1)
- 🎨 Problemas de contraste de color
- 📊 Tablas sin encabezados

Para usar el proyecto de prueba:

```bash
# Cambiar a la rama de prueba
git checkout test-accessibility-app

# Instalar dependencias
npm install

# Iniciar servidor de desarrollo
npm run dev
# Se abrirá en http://localhost:5180

# Luego ejecutar audit_accessibility con url: http://localhost:5180
```

## 📚 Documentación

- [Guía de Uso](./docs/GUIA_USO.md) - Instrucciones detalladas paso a paso

## 📄 Licencia

MIT