Accessibility Agents

io.github.Community-Access由 GitHub 帳號 Community-Access 發布v7.1.0更新於 Oct 29, 2026

WCAG 2.2 scanners for web pages, Office, PDF, ePub and Markdown: contrast, axe, veraPDF and more.

概覽

AI 產生的概覽

無障礙掃描 MCP 伺服器,讓助理依 WCAG 2.2 與 PDF/UA 規則檢查網頁、Office 文件、PDF、ePub 與 Markdown。

可以做什麼
  • 檢查顏色對比度、標題層級、連結文字與表單標籤是否符合 WCAG 指引
  • 掃描及批次掃描 Office、PDF、ePub、Markdown 文件,擷取中繼資料並修正文件中繼資料或標題結構
  • 對線上網址執行瀏覽器掃描:axe-core、無障礙樹、鍵盤導覽、對比度與視窗寬度重排
  • 以 veraPDF 深入驗證 PDF,並將 PDF 表單轉為無障礙 HTML
  • 把 Markdown、HTML 或 DOCX 檔案上傳到遠端 GLOW 服務進行稽核、修正、轉換與產生報告
  • 讀取 WCAG 參考資源,使用稽核、元件與準則說明提示範本,並維護稽核快取
適用情境
適合需要稽核或修正文件與網頁無障礙問題的情境,例如檢查 PDF 或 Word 檔是否符合 PDF/UA 或 WCAG,或在開發時對網站執行 axe-core 與鍵盤操作檢查。
執行需求
以 stdio 方式在本機執行,可透過 npx 或打包入口啟動,需要 Node.js LTS(22、24 或 26)。選用功能需額外安裝:瀏覽器掃描需 playwright、@axe-core/playwright 與 Chromium,表單轉換需 pdf-lib,深入 PDF 驗證需 veraPDF 命令列工具與 Java 11 以上。HTTP 模式需 npm install,並使用 PORT、A11Y_MCP_HOST、A11Y_MCP_STATELESS。
安裝前請注意
GLOW 橋接工具會把你的 Markdown、HTML 或 DOCX 檔案上傳到遠端端點(預設 letitglow.app,可用 GLOW_API_BASE_URL 變更)進行稽核、修正、轉換與產生報告。修正類工具會變更文件中繼資料與標題結構,快取工具會寫入稽核結果。瀏覽器工具會存取線上網址。未宣告任何身分驗證,共用的 HTTP 部署若不設限將不受保護。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Accessibility Agents,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

A11y Agent Team MCP Server

MCP (Model Context Protocol) server that provides 39 accessibility scanning tools over Streamable HTTP or stdio. Works with Claude Code, Claude Desktop, VS Code, the Copilot CLI and any MCP-compatible client. It is built on @modelcontextprotocol/sdk 1.32.2 and implements what that SDK provides (protocol revisions up to 2025-11-25); see the MCP standards page for where it stands against 2026-07-28.

In this repository, the MCP server lives in the top-level mcp-server/ directory. The main entry points are server.js (HTTP) and stdio.js (stdio).

What Works Out Of The Box

The MCP server is the executable part of document scanning. The skills (for PDF, pdf-accessibility and pdf-scan-config under skills/) tell the model when to scan; this server provides the actual scan_pdf_document tool.

What you installWhat you getPDF scanning works?
Skills onlyPDF scanning instructions in chatNo
Skills + MCP serverWorking scan_pdf_document toolYes
Skills + MCP server + veraPDFBaseline scan + deep PDF/UA validationYes

A plugin install launches dist/stdio.mjs, a single esbuild bundle of the stdio server and its dependencies, so it starts with no npm install (mcp.json, and mcpServers in .claude-plugin/plugin.json). Playwright, @axe-core/playwright and pdf-lib are left out of the bundle and stay optional; the tools that need them say how to install them. Run npm install in this folder only for the HTTP server (server.js) or to work on the source.

If you change the server's source, run npm run build here and commit the rebuilt dist/stdio.mjs: the bundle gate in npm run verify fails when the committed bundle differs from a fresh build.

Architecture

The server supports two transport modes:

ModeEntry PointTransportUse Case
HTTPserver.jsStreamable HTTP (stateful with a GET event stream by default; stateless with A11Y_MCP_STATELESS=1). The legacy HTTP+SSE transport is not offeredRemote clients, shared servers, CI/CD
stdiostdio.js (bundled as dist/stdio.mjs)stdin/stdoutClaude Desktop, plugin installs, local use

Both modes share the same tool implementations via server-core.js.

Quick Start

Before you start, make sure node --version reports a supported Node.js LTS line (26, 24 or 22) and that npm is available. The repository installer does not install Node.js; get it from https://nodejs.org/en/download.

bash
# stdio, from the bundle: no install needednode mcp-server/dist/stdio.mjs
# HTTP mode needs the dependenciescd mcp-servernpm installnpm start# -> http://127.0.0.1:3100/mcp

From npm, with no checkout (from 7.1.0, once published as @community-access/accessibility-agents-mcp; also listed in the MCP Registry as io.github.Community-Access/accessibility-agents):

bash
npx -y @community-access/accessibility-agents-mcpclaude mcp add accessibility-agents -- npx -y @community-access/accessibility-agents-mcp

The npm package is the stdio bundle alone. The browser and PDF form tools need their optional packages in the same node_modules, so for those install the server into a folder with them and run it from there: npm install @community-access/accessibility-agents-mcp playwright @axe-core/playwright pdf-lib, npx playwright install chromium, then npx accessibility-agents-mcp.

For a PDF-only walkthrough, see PDF-QUICKSTART.md.

Prerequisite Matrix

Each class, with requirement, needed for and required.

ClassRequirementNeeded ForRequired?
RuntimeNode.js LTS (26, 24 or 22)Running the MCP serverYes
Runtimenone for the stdio bundledist/stdio.mjs carries @modelcontextprotocol/sdk and zod inside itNo
HTTP or developmentnpm, then npm install in this folder (@modelcontextprotocol/sdk, zod, express)The HTTP server (server.js), running the unbundled source and the testsOnly for those
ClientMCP-compatible clientCalling the server toolsYes
Optional featureJava 11+ + verapdfDeep PDF validation with run_verapdf_scanNo
Optional featureplaywright, @axe-core/playwright, ChromiumBrowser-based scanning toolsNo
Optional featurepdf-libconvert_pdf_form_to_htmlNo
Installer-onlygitCloning the repositoryNo

Python is not required to run the MCP server or to install the package.

Local Vs Shared Server

You can run this MCP server either locally on your own machine or as a shared HTTP service.

ModeWhere it runsBest for
Local stdioYour machine, started by the clientClaude Desktop and local-only use
Local HTTPYour machine on 127.0.0.1VS Code Copilot, local testing, debugging
Shared HTTPA server or containerTeam use, CI/CD, remote clients

For most users, start locally first. The default HTTP binding is 127.0.0.1, so it is not exposed to the network unless you deliberately change the host.

Configuration

Each environment variable, with its default and description.

Environment VariableDefaultDescription
PORT3100HTTP server port
A11Y_MCP_HOST127.0.0.1Bind address
A11Y_MCP_STATELESS(unset)Set to 1 for stateless mode
GLOW_API_BASE_URLhttps://letitglow.app/mcpEndpoint the GLOW bridge tools call

Stateful vs Stateless

  • Stateful (default): Sessions persist across requests (Mcp-Session-Id), and a GET request opens a server-sent event stream for that session. Best for interactive use. The 2026-07-28 MCP revision removes sessions and the GET endpoint; this mode follows the SDK.
  • Stateless: Each request creates a fresh server instance. No sessions, POST only. Best for CI/CD and serverless deployments.

Client Configuration

Claude Desktop (claude_desktop_config.json)

Claude Desktop starts local servers from claude_desktop_config.json (Settings, Developer, Edit Config), using stdio:

json
{  "mcpServers": {    "a11y-agent-team": {      "command": "node",      "args": ["/path/to/mcp-server/dist/stdio.mjs"]    }  }}

Remote HTTP servers are added in Claude Desktop as custom connectors rather than in this file; see https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp.

Claude Code

The plugin registers the server for you. Without the plugin:

bash
claude mcp add --transport stdio a11y-agent-team -- node /path/to/mcp-server/dist/stdio.mjs

VS Code (.vscode/mcp.json)

json
{  "servers": {    "a11y-agent-team": {      "type": "http",      "url": "http://127.0.0.1:3100/mcp"    }  }}

Using GLOW Bridge Tools

The GLOW bridge tools are part of this MCP server. You do not register a second MCP server for GLOW.

Default behavior

  • The bridge targets https://letitglow.app/mcp by default.
  • You can call glow_health_check immediately after starting this server.

Use a different GLOW endpoint

Option 1: set server environment variable before startup:

bash
# Linux/macOSexport GLOW_API_BASE_URL="https://letitglow.app/mcp"npm start
powershell
# Windows PowerShell$env:GLOW_API_BASE_URL = "https://letitglow.app/mcp"npm start

Option 2: pass baseUrl per tool call (for one-off testing):

  • glow_health_check with baseUrl
  • glow_audit_document with baseUrl
  • glow_fix_document with baseUrl
  • glow_convert_document with baseUrl
  • glow_generate_report with baseUrl

Example prompts after connection

  • Run glow_health_check
  • Audit ./docs/sample.md with glow_audit_document using format markdown
  • Convert ./docs/sample.md from markdown to html with glow_convert_document
  • Generate an html report for ./docs/sample.md with glow_generate_report

PDF-Only Quick Start

If your immediate goal is only PDF accessibility scanning, this is the smallest working path:

  1. Install a Node.js LTS release (26, 24 or 22).
  2. Open this folder: mcp-server/
  3. Run npm install
  4. Start the server with npm start
  5. Point your MCP client at http://127.0.0.1:3100/mcp
  6. Install the skills (see Getting started) if you want the guided PDF workflow in chat

Minimum files for the MCP side:

  • package.json
  • server.js
  • server-core.js
  • stdio.js
  • tools/

If you also want the chat workflow layer, add:

  • the pdf-accessibility and pdf-scan-config skills (skills/pdf-accessibility/, skills/pdf-scan-config/), installed with the rest of the package
  • templates/pdf-config-moderate.json copied to your project as .a11y-pdf-config.json (optional)

Available Tools

Core Tools

Each tool, with its description.

ToolDescription
check_contrastCalculate WCAG contrast ratio between two colors
get_accessibility_guidelinesGet WCAG AA guidelines for component types
check_heading_structureAnalyze HTML heading hierarchy
check_link_textDetect ambiguous or missing link text
check_form_labelsCheck form inputs for accessible labels

Document Tools

Each tool, with its description.

ToolDescription
scan_office_documentScan .docx/.xlsx/.pptx for accessibility issues
scan_pdf_documentScan PDF using PDF/UA checks
scan_epub_documentScan .epub files for EPUB Accessibility 1.1 conformance
extract_document_metadataExtract accessibility-relevant metadata
batch_scan_documentsScan multiple documents in one call
fix_document_metadataFix document metadata (title, language, author)
fix_document_headingsFix heading structure in documents

GLOW Bridge Tools

Each tool, with its description.

ToolDescription
glow_health_checkCheck health of a GLOW endpoint (default: https://letitglow.app/mcp)
glow_audit_documentUpload a markdown/html/docx file to GLOW and run /audit
glow_fix_documentUpload a markdown/html/docx file to GLOW and run /fix
glow_convert_documentUpload a markdown/html/docx file to GLOW and run /convert
glow_generate_reportUpload a markdown/html/docx file to GLOW and run /report

Advanced Tools (Optional Dependencies)

Each tool, with its requires and description.

ToolRequiresDescription
run_axe_scanplaywright, @axe-core/playwrightRun axe-core against a live URL
run_playwright_a11y_treeplaywrightCapture accessibility tree
run_playwright_keyboard_scanplaywrightTest keyboard navigation
run_playwright_contrast_scanplaywrightVisual contrast analysis
run_playwright_viewport_scanplaywrightTest reflow at multiple widths
run_verapdf_scanveraPDF CLIPDF/UA-1 (default), PDF/UA-2 or PDF/A validation, chosen with flavour (SARIF output)
convert_pdf_form_to_htmlpdf-libConvert PDF forms to accessible HTML

Markdown Tools

Each tool, with its description.

ToolDescription
scan_markdown_documentScan markdown files for accessibility issues (links, alt text, headings, tables, emoji)

Caching Tools

Each tool, with its description.

ToolDescription
check_audit_cacheCheck if a cached audit result exists for a file
update_audit_cacheStore or update an audit result in the cache

Installing Optional Dependencies

bash
# Playwright + axe-core (for web scanning)npm install playwright @axe-core/playwrightnpx playwright install chromium
# pdf-lib (for PDF form conversion)npm install pdf-lib
# veraPDF (external CLI)# Download from https://verapdf.org/software/

Actionable veraPDF Setup

veraPDF is optional. The built-in scan_pdf_document tool works without it. Install veraPDF when you need deeper PDF/UA validation than the built-in heuristic scan provides.

What veraPDF is for

  • Validate PDF/UA conformance more deeply than the built-in scanner
  • Confirm structure and metadata issues against a dedicated PDF validator
  • Use as a second pass after baseline scanning

What veraPDF is not for

  • It is not required for baseline PDF scanning
  • It is not the primary remediation workflow in this repository
  • Do not assume verapdf --fix is part of the supported workflow here

Install veraPDF

veraPDF requires Java 11 or later.

Windows

Install Java first if it is not already present:

bash
winget install --exact --id EclipseAdoptium.Temurin.21.JRE

Then install veraPDF using Chocolatey if available:

bash
choco install verapdf

If Chocolatey is not part of your environment, use the manual installer from https://docs.verapdf.org/install/.

macOS

bash
brew install verapdf

Manual download

Download from https://docs.verapdf.org/install/ and make sure verapdf is available on your PATH.

Verify veraPDF

bash
verapdf --version

On Windows, restart your terminal or editor after installing Java or veraPDF so the updated PATH is picked up.

Use veraPDF directly

bash
verapdf --flavour ua1 --format text path/to/file.pdf

Use veraPDF through this MCP server

Once the server is running and veraPDF is installed on the same machine, an MCP client can call run_verapdf_scan.

Example natural-language requests:

  • Run a deep PDF/UA scan on report.pdf using veraPDF
  • Validate brochure.pdf with veraPDF and summarize the failures

The tool will return installation guidance if verapdf is not installed.

For more background, see veraPDF integration.

Health Check

bash
curl http://127.0.0.1:3100/health# {"status":"ok","name":"a11y-agent-team","version":"7.1.0","mode":"stateful"}

MCP Prompts

Pre-built prompt templates that guide the model through accessibility workflows.

PromptArgumentsDescription
audit-pageurl (required), level (optional: A/AA/AAA)Structured WCAG audit instruction; walks through axe-core, heading, link, form, keyboard, and contrast scans
check-componentcomponent (required)Component-specific review using built-in guidelines (modal, tabs, accordion, combobox, carousel, form, live-region, navigation, general)
explain-wcagcriterion (required)Explain a WCAG criterion with practical examples, common violations, and testing guidance

MCP Resources

Read-only data endpoints for accessibility reference material. The two with a {...} parameter are resource templates: a client lists or completes them and reads a concrete address such as a11y://guidelines/modal.

Resource URIDescription
a11y://guidelines/{component}Component accessibility guidelines in Markdown (modal, tabs, accordion, combobox, carousel, form, live-region, navigation, general)
a11y://toolsAuto-generated list of all registered tools with descriptions
a11y://config/{profile}Scan configuration templates as JSON (strict, moderate, minimal)

Security

  • Path traversal prevention: File operations validate paths against home directory and CWD boundaries (CWE-22)
  • Symlink resolution: Write operations resolve symlinks to prevent escape (CWE-59)
  • SSRF protection: URL-based tools validate schemes (http/https only)
  • Command injection prevention: External commands use execFile (not exec) with argument arrays
  • File size limits: Documents capped at 100 MB, batch operations at 50 files
  • Local binding: Server binds to 127.0.0.1 by default (not exposed to network)

Deployment

Docker

dockerfile
FROM node:24-slimWORKDIR /appCOPY package.json .RUN npm installCOPY . .EXPOSE 3100CMD ["node", "server.js"]

Systemd

ini
[Unit]Description=A11y Agent Team MCP ServerAfter=network.target
[Service]Type=simpleExecStart=/usr/bin/node /opt/a11y-mcp/server.jsEnvironment=PORT=3100Restart=on-failure
[Install]WantedBy=multi-user.target

License

MIT. See LICENSE in the repository root.

來源:mcp-server/README.md,提交 7597f1a

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v7.1.0最新Oct 29, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分