Skip to content

feat(mcp): add Hy3 AccessLens accessibility review server - #210

Open
DzSexton wants to merge 1 commit into
Tencent-Hunyuan:rhinobird2026from
DzSexton:agent/hy3-accesslens-mcp
Open

feat(mcp): add Hy3 AccessLens accessibility review server#210
DzSexton wants to merge 1 commit into
Tencent-Hunyuan:rhinobird2026from
DzSexton:agent/hy3-accesslens-mcp

Conversation

@DzSexton

Copy link
Copy Markdown

概述

新增 Hy3 AccessLens MCP:一个面向 HTML / JSX / TSX / Vue / Svelte 源文件的“证据优先”无障碍审查 Server。它把确定性静态发现、Hy3 影响分析、Hy3 修复规划与修复前后比较拆成四个可组合步骤,避免把模型推断冒充 WCAG 合规结论。

Refs #3

主要内容

  • 基于官方 MCP Python SDK,通过本地 stdio 暴露 4 个结构化工具:
    • accesslens_scan_file
    • accesslens_review_page
    • accesslens_plan_fixes
    • accesslens_compare_files
  • Hy3 通过 OpenAI 兼容接口完成用户影响排序、语义风险提示和修复计划;模型只能引用当前确定性 finding ID,非法 JSON、未知 ID、遗漏/重复修复项均会被拒绝或有限重试。
  • 静态层覆盖 13 类规则,并返回稳定 ID、行号、片段、严重度、WCAG 映射、总数和截断状态。
  • 比较工具按规则增减和严重度判定 improved / regressed / needs_review / unchanged,不会用“问题总数下降”掩盖新出现的高严重度问题。
  • 提供目录白名单、符号链接拒绝、文件类型/大小/UTF-8 校验、凭据遮盖、远程 HTTPS 限制和模型响应上限。
  • 提供 Windows / POSIX 一键安装脚本、英文与中文 README、CodeBuddy / Cursor / Codex 配置、示例页面、可复现评测和 CI。

已完成验证

  • pytest:19 passed,1 skipped(当前 Windows 环境无创建符号链接权限;Linux CI 会执行该用例)
  • ruff check .:通过
  • 真实 MCP stdio 子进程:完成 initialize、4-tool discovery、output schema 校验和 accesslens_scan_file 调用
  • 确定性评测:示例页面从 12 个覆盖范围内发现降为 0,结论为 improved
  • 打包:wheel 与 sdist 构建成功,并从 wheel 路径完成导入和 stdio 调用
  • Cursor Agent 2026.07.23-e383d2b:Server 为 ready,成功发现 4 个工具及参数
  • CodeBuddy CLI 2.131.0:Server 健康检查为 Connected

详细证据见 mcp_servers/hy3_accesslens/docs/client-validation.md

安全与边界

  • Server 只读,不执行或写回被检查源码。
  • API Key 仅从环境变量读取,仓库不包含真实凭据。
  • 发送 Hy3 前会对常见 API Key、GitHub token、JWT、Bearer token、AWS key 与私钥片段做遮盖。
  • 源码片段在 system prompt 中明确标记为不可信数据。
  • 工具用于辅助审查,不构成 WCAG 或法律合规认证。

Draft 状态说明

当前环境没有 HY3_API_KEY,Cursor / CodeBuddy CLI 账号也未完成认证,因此以下赛题证据尚待真实环境补齐,本文档没有用 fixture 冒充:

  • 真实 Hy3 endpoint 调用记录
  • CodeBuddy 与 Cursor 中的模型介导工具调用记录
  • 展示原生客户端实际调用过程的 GIF / 视频

其余实现、协议、打包、离线评测及两个原生客户端的连接/工具发现证据均已提交。

@DzSexton
DzSexton marked this pull request as ready for review July 31, 2026 14:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant