Skip to main content
Glama
mya11yreport

mya11yreport-mcp

by mya11yreport

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MYA11Y_MCP_LOG_DIRNoSession log directory. Defaults to .mya11yreport-mcp/logs under the current working directory.<cwd>/.mya11yreport-mcp/logs
PLAYWRIGHT_HEADLESSNoDefault headless mode for browser sessions. Set to 'false' to require a real display (can be overridden per session).true
MYA11Y_MCP_IDLE_CLOSE_MSNoIdle auto-close delay in milliseconds (min 1000). Default is 300000 (5 minutes).300000

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
start_sessionA

Starts a browser session and returns its sessionId — pass that sessionId to every subsequent tool call (navigate, click, type, run_a11y_audit, ...). Each session is an isolated page with its own cookies, audit history, and action log. Sessions auto-close after 5 minutes of inactivity (MYA11Y_MCP_IDLE_CLOSE_MS overrides).

close_sessionA

Stops a session and terminates its browser context (page state and cookies are gone; the session's history file is finalized with a closedAt timestamp). Returns closed:false plus the active sessions when the id is unknown. A closed session can be started again later; its previous history is archived, not overwritten.

get_audit_guideA

Returns the step-by-step accessibility audit workflow for agents as markdown: how to enumerate URLs from a sitemap, run the automated axe-core pass, the structure/tab-order/images/contrast reviews, the output-report format, and exactly which checks (keyboard navigation, screen-reader compatibility, image meaning) must be done by a human. Call this before starting an audit. Needs no session or browser. Also published at https://mya11y.report/mcp/auditor-skill.

run_a11y_auditA

Runs an axe-core accessibility audit on the session page (or on url if provided, navigating first). Returns the session audit history: pages (hex ids, one per URL) and audits ({pageId, audit} entries) including the fresh result. Each audit contains violation counts by impact, per-violation details (rule id, help, selectors, failure summaries), and pass/incomplete rule counts.

check_color_contrastA

Computes the WCAG 2.2 contrast ratio between two colors and which of the four AA/AAA thresholds they clear. Accepts hex or rgb()/rgba() colors. Needs no session and no browser. Pass fontSizePx and fontWeight to also classify the pair as WCAG large text.

list_imagesA

Lists every and inline on the session page with its accessible name, the source that name came from (aria-label, aria-labelledby, alt, title, desc or none), its src/currentSrc and sanitized SVG markup, a decorative flag, and a shadow-piercing selector. Derived flags mark genuinely missing alt text and overly long alt text (>250 chars). Top frame only, open shadow roots only.

get_structureA

Reads the page structure: landmark regions, headings, lists (nested) and iframes, each with a shadow-piercing selector. A heading outline grouped by region with skipped-level and repeated-H1 flags is included when both regions and headings are returned. Top frame only, open shadow roots only.

get_tab_orderA

Lists the page's tab stops in the order the Tab key reaches them, using the tabbable algorithm: positive tabindex values first (ascending), then everything else in document order. Each stop reports its position, tag, label, effective tabindex, shadow-piercing selector and an outOfOrder flag when tabindex is positive. Top frame only; hidden/disabled/inert elements are excluded.

navigateA

Opens a URL in the session page and waits for it to load. Returns the final URL, page title, HTTP status, the session headless mode, and the hex pageId assigned to this URL for audit tracking.

clickA

Clicks an element in the session page. Auto-waits for the element to be visible, stable, and actionable. Targets support CSS selectors or accessibility-first locators (getByRole, getByText, getByLabel, ...).

typeA

Types text into an element (input, textarea, contenteditable). By default replaces the current value; set clear:false to append. Targets support selectors or getBy* locators.

press_keyA

Presses a key or chord (Enter, Tab, Escape, arrows, Space, Shift+Tab, Control+A, ...) in the session page. With a target, focuses that element and sends the key to it; without one, sends the key to the currently focused element. Use it for keyboard navigation, submitting a form with Enter, closing a dialog with Escape, or exercising keyboard-only interactions.

checkA

Checks a checkbox or radio input in the session page. No-op if already checked. Targets support selectors or getBy* locators (e.g. getByRole with name).

uncheckB

Unchecks a checkbox in the session page. No-op if already unchecked.

select_optionA

Selects an inside a element on the session page, matched by the option's value attribute. Waits for the element to be actionable. Targets support selectors or getBy* locators, same as type.

scroll_byA

Scrolls the session page window by the given deltas (window.scrollBy) and returns the new scroll position. For lazy-loaded content, scroll then re-run get_page_snapshot.

screenshotA

Captures the current viewport of the session page (what is on screen after scrolling — not the full page). Saved as .png inside the session log directory; returns the file path plus the scroll position and viewport at capture time.

get_page_snapshotA

Returns a YAML accessibility-tree snapshot of the session page (roles, names, states). Use it to discover roles/names to target with getByRole/getByText/getByLabel in click/type/check.

get_viewport_sizeA

Returns the session page's viewport size in CSS pixels.

get_scroll_positionA

Returns the current scroll position of the session page plus document scroll dimensions and the viewport size — useful for planning further scroll_by deltas.

evaluateA

Evaluates a JavaScript expression or function in the session page via Playwright page.evaluate and returns its value. Use it to inspect the live DOM (computed styles, geometry, custom element state) when get_page_snapshot is not enough. The result must be serializable across the Playwright boundary; non-serializable or undefined values come back as null with serializable:false. This runs arbitrary page JavaScript — only evaluate code you intend to run.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.8/5.0

Scored across 21 tools

Disambiguation4/5

The tools split into clear lifecycle, inspection, and interaction groups, and each inspection tool targets a distinct artifact (a11y tree, landmarks, tab stops, images). A few minor overlaps exist, such as get_viewport_size and get_scroll_position both returning viewport dimensions, and get_page_snapshot versus get_structure both describing page structure, but descriptions clarify the intended use.

Naming Consistency4/5

Most tools follow a verb_noun snake_case pattern (start_session, get_tab_order, run_a11y_audit). The interaction tools deviate as bare verbs (navigate, click, type, check, uncheck, evaluate, screenshot) and scroll_by uses a preposition, so the pattern is not uniform, but the categories are still readable and predictable.

Tool Count3/5

21 tools is on the heavy side for a single server, landing in the 16-25 range that feels bloated at first glance. That said, the count is justified by the combination of browser automation, page inspection, session management, and audit functionality; it is broad but not redundant.

Completeness4/5

The surface covers the full accessibility audit loop: session lifecycle, navigation, automated axe-core audits, contrast checks, structural inspection, and keyboard/form interactions for manual checks. Minor gaps remain, such as no explicit viewport resizing, hover action, or full-page screenshot option, but agents can work around them with evaluate or scrolling.

Maintenance

ActivityMaintained
ResponsivenessNo issues