Web Accessibility MCP Server

Web Accessibility MCP Server

使用 axe-core 和 Puppeteer 提供 Web 可访问性分析和色盲模拟,从而能够根据 WCAG 指南进行详细的可访问性检查和视觉模拟。

Category
访问服务器

Tools

simulate_colorblind

Simulate how a webpage looks for colorblind users

check_accessibility

Check web accessibility of a given URL using axe-core

README

Web Accessibility MCP 服务器

smithery badge

一个使用 axe-core 和 Puppeteer 提供 Web 可访问性分析功能的 MCP (模型上下文协议) 服务器。

<a href="https://glama.ai/mcp/servers/mya2mkxy9a"><img width="380" height="200" src="https://glama.ai/mcp/servers/mya2mkxy9a/badge" alt="Web Accessibility Server MCP server" /></a>

功能

  • 使用 axe-core 分析任何 URL 的 Web 可访问性
  • 使用颜色矩阵模拟色盲(红色盲、绿色盲、蓝色盲)
  • 详细的可访问性违规报告
  • 支持自定义用户代理和选择器
  • 用于故障排除的调试日志
  • 基于 WCAG 指南的全面可访问性检查

前提条件

  • Node.js (v14 或更高版本)
  • npm

安装

通过 Smithery 安装

要通过 Smithery 为 Claude Desktop 自动安装 Web Accessibility MCP Server:

npx -y @smithery/cli install @bilhasry-deriv/mcp-web-a11y --client claude

手动安装

  1. 克隆存储库:
git clone [repository-url]
cd mcp-web-a11y
  1. 安装依赖项:
npm install
  1. 构建服务器:
npm run build

配置

将服务器添加到您的 MCP 设置文件(通常位于 ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json):

{
  "mcpServers": {
    "web-a11y": {
      "command": "node",
      "args": ["/path/to/mcp-web-a11y/build/index.js"],
      "disabled": false,
      "autoApprove": [],
      "env": {
        "MCP_OUTPUT_DIR": "/path/to/output/directory"
      }
    }
  }
}

环境变量

  • MCP_OUTPUT_DIR: 将保存屏幕截图输出的目录
    • simulate_colorblind 工具需要
    • 如果未指定,则默认为相对于当前工作目录的 './output'
    • 在 MCP 设置中配置时必须是绝对路径

用法

该服务器提供两个工具:check_accessibility 用于分析 Web 可访问性,simulate_colorblind 用于模拟色盲。

工具: check_accessibility

使用 axe-core 检查给定 URL 的可访问性。

参数

  • url (必需): 要分析的 URL
  • waitForSelector (可选): 分析前要等待的 CSS 选择器
  • userAgent (可选): 请求的自定义用户代理字符串

用法示例

<use_mcp_tool>
<server_name>mcp-web-a11y</server_name>
<tool_name>check_accessibility</tool_name>
<arguments>
{
  "url": "https://example.com",
  "waitForSelector": ".main-content",
  "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
</arguments>
</use_mcp_tool>

工具: simulate_colorblind

使用颜色矩阵转换模拟网页在患有不同类型色盲的用户眼中的外观。

色盲类型

该工具支持三种类型的色盲模拟:

  1. 红色盲 (Protanopia) - 使用矩阵:

    0.567, 0.433, 0
    0.558, 0.442, 0
    0, 0.242, 0.758
    
  2. 绿色盲 (Deuteranopia) - 使用矩阵:

    0.625, 0.375, 0
    0.7, 0.3, 0
    0, 0.3, 0.7
    
  3. 蓝色盲 (Tritanopia) - 使用矩阵:

    0.95, 0.05, 0
    0, 0.433, 0.567
    0, 0.475, 0.525
    

参数

  • url (必需): 要捕获的 URL
  • type (必需): 要模拟的色盲类型 ('protanopia', 'deuteranopia', 或 'tritanopia')
  • outputPath (可选): 屏幕截图输出的自定义路径
  • userAgent (可选): 请求的自定义用户代理字符串

用法示例

<use_mcp_tool>
<server_name>mcp-web-a11y</server_name>
<tool_name>simulate_colorblind</tool_name>
<arguments>
{
  "url": "https://example.com",
  "type": "deuteranopia",
  "outputPath": "colorblind_simulation.png"
}
</arguments>
</use_mcp_tool>

响应格式

check_accessibility 响应

{
  "url": "analyzed-url",
  "timestamp": "ISO-timestamp",
  "violations": [
    {
      "impact": "serious|critical|moderate|minor",
      "description": "Description of the violation",
      "help": "Help text explaining the issue",
      "helpUrl": "URL to detailed documentation",
      "nodes": [
        {
          "html": "HTML of the affected element",
          "failureSummary": "Summary of what needs to be fixed"
        }
      ]
    }
  ],
  "passes": 42,
  "inapplicable": 45,
  "incomplete": 3
}

simulate_colorblind 响应

{
  "url": "analyzed-url",
  "type": "colorblind-type",
  "outputPath": "path/to/screenshot.png",
  "timestamp": "ISO-timestamp",
  "message": "Screenshot saved with [type] simulation"
}

错误处理

该服务器包括针对常见场景的全面错误处理:

  • 网络错误
  • 无效的 URL
  • 超时问题
  • DNS 解析问题

错误响应将包含详细的消息,以帮助诊断问题。

开发

项目结构

mcp-web-a11y/
├── src/
│   └── index.ts    # 主要服务器实现
├── build/          # 编译后的 JavaScript
├── output/         # 生成的屏幕截图
├── package.json    # 项目依赖项和脚本
└── tsconfig.json   # TypeScript 配置

构建

npm run build

这将:

  1. 将 TypeScript 编译为 JavaScript
  2. 使输出文件可执行
  3. 将编译后的文件放在 build 目录中

调试

该服务器包括详细的调试日志,可以在控制台输出中观察到。 这包括:

  • 网络请求和响应
  • 页面加载状态
  • 选择器等待状态
  • 来自分析页面的任何控制台消息
  • 颜色模拟进度

常见问题和解决方案

  1. 超时错误

    • 增加代码中的超时值
    • 检查网络连接
    • 验证 URL 是否可访问
  2. DNS 解析错误

    • 验证 URL 是否正确
    • 检查网络连接
    • 尝试使用 www 子域名
  3. 未找到选择器

    • 验证选择器是否存在于页面上
    • 等待动态内容加载
    • 检查页面源代码以获取正确的选择器
  4. 颜色模拟问题

    • 确保页面的颜色以支持的格式指定(RGB、RGBA 或 HEX)
    • 检查页面是否使用动态颜色更改(可能需要额外的等待时间)
    • 验证屏幕截图输出目录是否存在且可写

贡献

  1. Fork 存储库
  2. 创建一个功能分支
  3. 提交您的更改
  4. 推送到分支
  5. 创建一个 Pull Request

许可证

该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选
mcp-server-qdrant

mcp-server-qdrant

这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。

官方
精选
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选