Skip to main content
Glama
dallask

Accessibility MCP Server

by dallask

β™Ώ Accessibility MCP Server

A Model Context Protocol (MCP) server that provides conversational, actionable accessibility testing. This server exposes accessibility auditing tools that can be used by AI agents and chat interfaces.

✨ Features

  • Conversational Results: Results formatted for natural language understanding, not raw data

  • Session Management: Reusable authenticated sessions for testing protected pages

  • Tag Filtering: Filter results by specific WCAG levels (wcag2a, wcag2aa, wcag21a, etc.)

  • Educational Focus: Tools that explain issues in plain language with code examples

  • Code-Level Fixes: Actual before/after code examples, not just descriptions

  • Progress Updates: Streaming progress for long-running batch operations

  • Smart Prioritization: AI-powered issue prioritization with quick wins identification

  • Compliance Reports: Automated VPAT/WCAG/ADA compliance documentation

  • Trend Tracking: Historical data and predictions for accessibility improvements

Related MCP server: accessibility-mcp-server

πŸ“‹ Prerequisites

  • Node.js 18+ (for npx command)

  • That's it! Everything else is handled automatically.

πŸš€ Quick Start (Using Published Package)

Step 1: Add to Your MCP Client Configuration

Add this server to your MCP client configuration (e.g., Claude Desktop, Cursor):

Claude Desktop Configuration

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "accessibility-audit": {
      "command": "npx",
      "args": ["-y", "@dallask/a11y-mcp-srv"]
    }
  }
}

Cursor Configuration

Add to your Cursor MCP settings (~/.cursor/mcp.json or Cursor Settings β†’ MCP):

{
  "mcpServers": {
    "accessibility-audit": {
      "command": "npx",
      "args": ["-y", "@dallask/a11y-mcp-srv"]
    }
  }
}

Step 2: Restart Your MCP Client

Restart Claude Desktop or Cursor to load the new MCP server configuration.

Step 3: Start Using It!

That's it! You're ready to use all 25+ accessibility tools. The package will be automatically downloaded and cached by npx on first use.

How it works:

  • npx automatically downloads and runs the package if needed

  • The -y flag answers "yes" to prompts (non-interactive)

  • Playwright browsers install automatically on first run

  • No manual installation, building, or configuration needed!

βš™οΈ Configuration (Environment Variables)

You can configure the server via your MCP client’s env section (e.g. Cursor MCP settings or Claude Desktop config). These options follow the same style as joe-watkins/accessibility-testing-mcp.

Variable

Values

Default

Description

A11Y_ENGINE

axe, ace

axe

Testing engine: axe-core (Deque) or IBM Equal Access (ACE).

WCAG_LEVEL

2.0_A, 2.0_AA, 2.0_AAA, 2.1_A, 2.1_AA, 2.1_AAA, 2.2_A, 2.2_AA, 2.2_AAA

2.1_AA

WCAG version and level used when the tool does not specify tags.

BEST_PRACTICES

true, false

true

Include best-practice rules (adds best-practice tag when no tags are provided).

SCREEN_SIZES

Comma-separated WIDTHxHEIGHT

1280x1024

Viewport size(s) for the browser (e.g. 1280x1024,320x640). The first size is used for audits.

HEADLESS_BROWSER

true, false

true

Run the browser in headless mode; set to false to show the browser window.

Example MCP config with env

Cursor (~/.cursor/mcp.json or Settings β†’ MCP):

{
  "mcpServers": {
    "accessibility-audit": {
      "command": "npx",
      "args": ["-y", "@dallask/a11y-mcp-srv"],
      "env": {
        "A11Y_ENGINE": "axe",
        "WCAG_LEVEL": "2.2_AA",
        "BEST_PRACTICES": "true",
        "SCREEN_SIZES": "1280x1024,320x640",
        "HEADLESS_BROWSER": "true"
      }
    }
  }
}

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "accessibility-audit": {
      "command": "npx",
      "args": ["-y", "@dallask/a11y-mcp-srv"],
      "env": {
        "A11Y_ENGINE": "axe",
        "WCAG_LEVEL": "2.2_AA",
        "BEST_PRACTICES": "true",
        "HEADLESS_BROWSER": "true"
      }
    }
  }
}

Tool parameters (e.g. engine, tags) override these defaults when provided in a request.

πŸŽ‰ Awesome Things You Can Do

πŸ” Comprehensive Accessibility Auditing

  • Audit any website - Single URLs, multiple pages, or entire sites

  • Test protected pages - Authenticated session management for login-protected content

  • Batch processing - Test multiple URLs in parallel with progress tracking

  • WCAG compliance - Check against WCAG 2.0, 2.1 (Levels A, AA, AAA) and best practices

🎯 Smart Prioritization & Quick Wins

  • Identify critical blockers - Find must-fix issues that block users

  • Quick wins detection - Easy fixes with high impact

  • Intelligent prioritization - Sort by impact, WCAG level, fixability, or user impact

  • Focus your efforts - Know exactly what to fix first

πŸ’» Code-Level Fixes

  • Before/after code examples - See exactly what needs to change

  • Copy-paste ready solutions - Actual code, not just descriptions

  • Multiple formats - Markdown, HTML, or JSON output

  • Specific fix suggestions - Targeted solutions for each issue

πŸ“š Educational Resources

  • Plain language explanations - Understand what each issue means

  • Why it matters - Learn the user impact

  • How to fix - Step-by-step guidance with examples

  • WCAG references - Direct links to accessibility standards

  • Common mistakes - Learn from typical errors

πŸ“Š Compliance & Reporting

  • VPAT reports - Generate Voluntary Product Accessibility Template documentation

  • WCAG compliance reports - Detailed compliance breakdowns

  • ADA reports - Americans with Disabilities Act compliance

  • Section 508 reports - Federal accessibility compliance

  • Executive summaries - High-level reports for stakeholders

πŸ“ˆ Tracking & Comparison

  • Before/after comparison - Track improvements over time

  • Trend analysis - Historical data and predictions

  • Score tracking - Monitor accessibility scores

  • Visual diffs - See what changed between audits

πŸ“€ Export & Share

  • CSV export - Import into Excel for analysis

  • Excel export - Professional reports with charts and formatting

  • JSON export - For API integration and data processing

  • HTML reports - Standalone web reports with visualizations

  • Dashboard generation - Visual summaries with charts

πŸ”Ž Filtering & Search

  • Filter by criteria - Rule IDs, categories, impact levels, WCAG levels

  • Search issues - Find specific problems quickly

  • Include/exclude modes - Focus on what matters

  • Element type filtering - Find issues in specific HTML elements

πŸ“Š Statistics & Aggregation

  • Site-wide analysis - Combine multiple audit results

  • Detailed statistics - Breakdowns by category, impact, WCAG level

  • Aggregated summaries - Overall site accessibility metrics

  • Grouping options - Organize by URL, category, rule, or impact

🎨 Visualization

  • Dashboards - Visual summaries with key metrics

  • Charts - Score trends and category breakdowns

  • Multiple formats - Text, Markdown, HTML, JSON

  • Executive reports - High-level summaries for stakeholders

πŸ’‘ Real-World Use Cases

For Developers

  • Get code-level fixes for accessibility issues

  • Learn accessibility concepts with educational explanations

  • Integrate into CI/CD pipelines

  • Export results for team sharing

For QA Teams

  • Batch test multiple pages efficiently

  • Track accessibility over time

  • Generate compliance reports

  • Compare before/after deployments

For Product Managers

  • Executive summary reports

  • Compliance documentation (VPAT, ADA)

  • Dashboard visualizations

  • Track accessibility scores over time

For Compliance Teams

  • Generate VPAT reports automatically

  • WCAG compliance documentation

  • Section 508 compliance checks

  • Detailed remediation plans

🎬 Quick Usage Example

Once configured, you can immediately start using the accessibility tools in your AI assistant:

Example: Audit a website

"Audit https://example.com for accessibility issues"

Example: Get quick fixes

"Show me quick fixes for the accessibility issues on cursor.com"

Example: Generate compliance report

"Generate a VPAT report for docs.atlan.com"

Example: Compare before/after

"Compare the accessibility of example.com before and after the redesign"

The AI assistant will automatically use the appropriate tools to fulfill your requests!

πŸ› οΈ Available Tools

Tier 1: Core Audit Tools

audit_url - Single URL Audit

Test a single URL for accessibility issues with conversational, actionable results.

Inputs:

  • url (required): Full URL or relative path

  • domain (optional): Base domain if URL is relative

  • tags (optional): Array of accessibility tags to check (e.g., ["wcag2a", "wcag2aa", "wcag21a", "best-practice"]). If not provided, all tags are checked.

  • waitForLoad (optional): Wait strategy - "networkidle" (default) | "load" | "domcontentloaded"

  • timeout (optional): Timeout in seconds (default: 30)

Example:

{
  "url": "https://example.com",
  "tags": ["wcag21aa"],
  "timeout": 45
}

Output: Structured JSON with summary, prioritized violations, WCAG compliance breakdown, quick fix suggestions, and conversational explanation.

audit_multiple_urls - Batch Audit

Test multiple URLs efficiently with progress updates.

Inputs:

  • urls (required): Array of URLs or comma-separated string

  • domain (optional): Base domain

  • tags (optional): Array of accessibility tags

  • parallel (optional): Number of parallel tests (default: 1)

  • continueOnError (optional): Continue if one fails (default: true)

Example:

{
  "urls": ["/home", "/about", "/contact"],
  "domain": "https://example.com",
  "tags": ["wcag2aa"],
  "parallel": 2
}

Output: Per-URL results, aggregated summary, and progress updates (streaming).

audit_site - Smart Site Audit

Intelligent site-wide audit with prioritization.

Inputs:

  • domain (required): Base domain

  • tags (optional): Array of accessibility tags. Applied to all pages.

  • strategy (optional): "critical" | "comprehensive" | "custom" (default: "comprehensive")

  • maxPages (optional): Maximum pages to test (default: 50)

  • priorityPaths (optional): Array of high-priority paths to test first

Example:

{
  "domain": "https://example.com",
  "strategy": "critical",
  "priorityPaths": ["/", "/login", "/checkout"],
  "tags": ["wcag21aa"],
  "maxPages": 20
}

Output: Prioritized results (critical pages first), site-wide score, and trend analysis if previous audits exist.

Tier 2: Session Management

create_session - Authenticated Session

Create a reusable authenticated session for testing protected pages.

Inputs:

  • domain (required): Base domain

  • username (required): Login username

  • password (required): Login password

  • loginUrl (optional): Custom login URL (default: {domain}/login)

  • loginSelectors (optional): Custom selectors for login form:

    • usernameSelector (default: "input[type='email'], input[name='username'], input[id='username']")

    • passwordSelector (default: "input[type='password']")

    • submitSelector (default: "button[type='submit'], input[type='submit']")

  • sessionId (optional): Custom session identifier (auto-generated if not provided)

Example:

{
  "domain": "https://app.example.com",
  "username": "user@example.com",
  "password": "password123",
  "loginUrl": "https://app.example.com/auth/login"
}

Output:

  • sessionId: Reusable session identifier

  • expiresAt: Session expiration time (ISO 8601)

  • testUrl: Test URL to verify session

Differentiator: Only MCP with reusable session management for authenticated pages.

audit_with_session - Authenticated Audit

Run an audit using an existing authenticated session.

Inputs:

  • sessionId (required): Session from create_session

  • url (required): URL to test (can be relative)

  • domain (optional): Base domain

  • tags (optional): Array of accessibility tags

  • waitForLoad (optional): Wait strategy (default: "networkidle")

  • timeout (optional): Timeout in seconds (default: 30)

Example:

{
  "sessionId": "session-abc123",
  "url": "/dashboard",
  "domain": "https://app.example.com",
  "tags": ["wcag21aa"]
}

Output: Same as audit_url but for authenticated pages.

Tier 3: Analysis & Reporting

get_accessibility_score - Calculate Score

Calculate accessibility score (0-100) with detailed breakdowns.

Inputs:

  • results (required): Audit result object or URL string

  • weights (optional): Custom weights for different issue types:

    • errors (default: 10)

    • contrast (default: 8)

    • alerts (default: 5)

    • features (default: 3)

    • structural (default: 6)

Example:

{
  "results": "https://example.com",
  "weights": {
    "errors": 15,
    "contrast": 10
  }
}

Output:

  • Overall score (0-100)

  • Breakdown by category (contrast, navigation, forms, etc.)

  • WCAG level compliance (A, AA, AAA)

  • Trend if historical data available

prioritize_issues - Smart Prioritization

Intelligently prioritize issues, identifying quick wins and critical blockers.

Inputs:

  • results (required): Audit result object

  • criteria (optional): "impact" | "wcag" | "fixability" | "user-impact" (default: "impact")

  • limit (optional): Top N issues to return (default: 10)

Example:

{
  "results": { /* audit result object */ },
  "criteria": "fixability",
  "limit": 5
}

Output:

  • Prioritized list with reasoning

  • Quick wins (easy fixes with high impact)

  • Critical blockers

explain_issue - Educational Tool

Explain what an accessibility issue means in plain language.

Inputs:

  • ruleId (required): Accessibility rule ID (e.g., "alt_missing", "contrast", "label_missing")

  • context (optional): Additional context about the issue (HTML element, page URL, etc.)

Example:

{
  "ruleId": "alt_missing",
  "context": "Image on homepage hero section"
}

Output:

  • Plain language explanation

  • Why it matters (user impact)

  • How to fix (with code examples)

  • WCAG reference

  • Common mistakes

Differentiator: Educational focus - helps users learn accessibility.

get_quick_fixes - Actionable Fixes

Get specific fix suggestions with before/after code examples.

Inputs:

  • results (required): Audit result object or URL string

  • format (optional): "markdown" | "html" | "json" (default: "json")

  • includeCode (optional): Include code examples (default: true)

Example:

{
  "results": "https://example.com",
  "format": "markdown",
  "includeCode": true
}

Output:

  • List of fixes with:

    • Current code (if available)

    • Fixed code

    • Explanation

    • Impact estimate

Differentiator: Code-level fixes, not just descriptions.

generate_compliance_report - Compliance Documentation

Generate compliance reports in various formats.

Inputs:

  • results (required): Audit result object

  • format (optional): "VPAT" | "WCAG" | "ADA" | "Section508" (default: "WCAG")

  • level (optional): "A" | "AA" | "AAA" (default: "AA")

  • includeRemediation (optional): Include fix suggestions (default: true)

Example:

{
  "results": { /* audit result object */ },
  "format": "VPAT",
  "level": "AA",
  "includeRemediation": true
}

Output:

  • Formatted compliance report

  • WCAG mapping

  • Remediation plan

  • Executive summary

get_wcag_compliance - WCAG Status

Check WCAG compliance status with per-criterion breakdown.

Inputs:

  • results (required): Audit result object or URL string

  • level (optional): "A" | "AA" | "AAA" (default: "AA")

Example:

{
  "results": "https://example.com",
  "level": "AA"
}

Output:

  • Compliance status (pass/fail/partial)

  • Per-criterion breakdown

  • Missing requirements

  • Compliance percentage

Tier 4: Comparison & Tracking

compare_accessibility - Before/After Comparison

Compare two audits to track improvements.

Inputs:

  • before (required): Previous audit result or URL

  • after (required): Current audit result or URL

  • format (optional): "summary" | "detailed" | "diff" (default: "summary")

Example:

{
  "before": "https://example.com/v1",
  "after": "https://example.com/v2",
  "format": "detailed"
}

Output:

  • Issues fixed

  • Issues introduced

  • Score improvement

  • Remaining issues

  • Visual diff (if applicable)

track_accessibility - Historical Tracking

Track accessibility over time with trend analysis.

Inputs:

  • url (required): URL to track

  • timeframe (optional): "7d" | "30d" | "90d" | "all" (default: "30d")

  • metric (optional): "score" | "issues" | "wcag-compliance" (default: "score")

Example:

{
  "url": "https://example.com",
  "timeframe": "90d",
  "metric": "score"
}

Output:

  • Historical data

  • Trend visualization (text-based)

  • Predictions

  • Recommendations

Tier 5: Export & Data Management

export_to_csv - Export to CSV

Export audit results to CSV format for spreadsheet analysis, including metadata and violation rows.

Inputs:

  • results (required): Audit result object or URL string

  • includeMetadata (optional): Include test information and environment data (default: true)

  • includeViolations (optional): Include detailed violation rows (default: true)

  • format (optional): "standard" | "detailed" | "minimal" (default: "standard")

Example:

{
  "results": "https://example.com",
  "format": "detailed",
  "includeMetadata": true,
  "includeViolations": true
}

Output:

  • CSV content as string with metadata section and violation rows

  • Format type used

  • Total issues count

Use case: Import into Excel, share with stakeholders, data analysis

export_to_excel - Export to Excel

Export audit results to Excel/XLSX format with formatting. Requires xlsx package.

Inputs:

  • results (required): Audit result object or URL string

  • includeCharts (optional): Generate charts for score trends and category breakdown (default: false)

  • formatting (optional): Apply colors, headers, and styling (default: true)

Example:

{
  "results": { /* audit result object */ },
  "includeCharts": true,
  "formatting": true
}

Output:

  • Excel file content (base64 encoded)

  • Format type (xlsx)

  • Total issues count

Use case: Professional reports, presentations, stakeholder sharing

Note: Requires xlsx package. Install with npm install xlsx.

export_to_json - Export to JSON

Export audit results as structured JSON with optional raw results.

Inputs:

  • results (required): Audit result object or URL string

  • pretty (optional): Pretty-print JSON (default: true)

  • includeRaw (optional): Include raw accessibility engine results (default: false)

Example:

{
  "results": "https://example.com",
  "pretty": true,
  "includeRaw": false
}

Output:

  • JSON string with audit results

  • Pretty-print status

  • Raw results inclusion status

Use case: API integration, data processing, backup

export_to_html_report - Generate HTML Report

Generate standalone HTML report with styling and optional visual charts.

Inputs:

  • results (required): Audit result object or URL string

  • template (optional): "default" | "minimal" | "detailed" (default: "default")

  • includeCharts (optional): Include visual charts (default: true)

Example:

{
  "results": "https://example.com",
  "template": "detailed",
  "includeCharts": true
}

Output:

  • HTML string with embedded CSS/JS

  • Template used

  • Charts inclusion status

Use case: Web sharing, email reports, documentation

filter_issues - Filter Issues

Filter issues from audit results by various criteria (rule IDs, categories, impact levels, WCAG levels, etc.). Supports include/exclude modes.

Inputs:

  • results (required): Audit result object

  • filters (required): Object with filter criteria:

    • ruleIds (optional): Array of rule IDs to include/exclude

    • categories (optional): Array of categories (error, contrast, etc.)

    • impactLevels (optional): Array of impact levels ("critical", "serious", "moderate", "minor")

    • wcagLevels (optional): Array of WCAG levels ("A", "AA", "AAA")

    • minCount (optional): Minimum occurrence count

    • elementTypes (optional): Filter by HTML element types (e.g., ["img", "input", "button"])

  • mode (optional): "include" | "exclude" (default: "include")

Example:

{
  "results": { /* audit result object */ },
  "filters": {
    "impactLevels": ["critical", "serious"],
    "wcagLevels": ["A", "AA"]
  },
  "mode": "include"
}

Output:

  • Filtered audit result object

  • Original issue count

  • Filtered issue count

  • Filters applied

Use case: Focus on specific issue types, exclude false positives

search_issues - Search Issues

Search issues by text content, selector, XPath, or description. Supports case-sensitive and case-insensitive search.

Inputs:

  • results (required): Audit result object

  • query (required): Search query string

  • fields (optional): Array of fields to search ("description", "element", "xpath", "selector", "ruleId", "userImpact", "fix", "all") (default: ["all"])

  • caseSensitive (optional): Case-sensitive search (default: false)

Example:

{
  "results": { /* audit result object */ },
  "query": "missing alt",
  "fields": ["description", "userImpact"],
  "caseSensitive": false
}

Output:

  • Array of matching issues

  • Total matches count

  • Fields searched

Use case: Find specific issues, locate elements

Tier 7: Aggregation & Statistics

aggregate_audit_results - Aggregate Results

Combine and aggregate multiple audit results. Groups issues by URL, category, rule, or none, and provides aggregated summary statistics.

Inputs:

  • results (required): Array of audit result objects

  • groupBy (optional): "url" | "category" | "rule" | "none" (default: "url")

  • includeSummary (optional): Include aggregated summary statistics (default: true)

Example:

{
  "results": [
    { /* audit result 1 */ },
    { /* audit result 2 */ }
  ],
  "groupBy": "category",
  "includeSummary": true
}

Output:

  • Aggregated audit result with combined statistics

  • Grouping strategy used

  • Total results aggregated

  • Grouped issues (if applicable)

Use case: Site-wide reports, batch analysis, trend identification

get_statistics - Generate Statistics

Generate detailed statistics from audit results with breakdowns by category, impact, WCAG level, or rule ID. Supports single or multiple audit results.

Inputs:

  • results (required): Audit result object or array of audit results

  • breakdown (optional): Array of breakdown dimensions ("category", "impact", "wcag", "rule") (default: all dimensions)

Example:

{
  "results": [
    { /* audit result 1 */ },
    { /* audit result 2 */ }
  ],
  "breakdown": ["category", "impact", "wcag"]
}

Output:

  • Total issues count

  • Average accessibility score

  • WCAG compliance breakdown

  • Statistics by category, impact, WCAG level, and rule ID

  • Counts, percentages, and distributions

Use case: Dashboard data, reporting, analysis

Tier 8: Visualization & Reporting

generate_dashboard - Generate Dashboard

Create a visual dashboard summary of audit results with key metrics, charts, and summaries. Supports multiple formats and optional charts.

Inputs:

  • results (required): Audit result object, array of audit results, URL string, or array of URL strings

  • format (optional): "text" | "markdown" | "html" | "json" (default: "markdown")

  • includeCharts (optional): Include ASCII/text charts (default: true)

Example:

{
  "results": ["https://example.com/page1", "https://example.com/page2"],
  "format": "markdown",
  "includeCharts": true
}

Output:

  • Formatted dashboard with key metrics, charts, and summaries

  • Format used

  • Total results processed

Use case: Quick overview, presentations, status reports

generate_summary_report - Generate Summary Report

Generate executive summary report with key findings and recommendations. Supports multiple formats and detail levels.

Inputs:

  • results (required): Audit result object, array of audit results, URL string, or array of URL strings

  • format (optional): "text" | "markdown" | "html" (default: "markdown")

  • level (optional): "executive" | "detailed" | "technical" (default: "executive")

Example:

{
  "results": "https://example.com",
  "format": "markdown",
  "level": "executive"
}

Output:

  • Summary report with key findings and recommendations

  • Format used

  • Detail level used

  • Total results processed

Use case: Stakeholder communication, documentation

🏷️ Supported Accessibility Tags

Filter results by specific WCAG levels or best practices:

  • wcag2a - WCAG 2.0 Level A

  • wcag2aa - WCAG 2.0 Level AA

  • wcag2aaa - WCAG 2.0 Level AAA

  • wcag21a - WCAG 2.1 Level A

  • wcag21aa - WCAG 2.1 Level AA (most common requirement)

  • wcag21aaa - WCAG 2.1 Level AAA

  • best-practice - Best practice recommendations

Example Usage:

// Only check WCAG 2.1 AA compliance
{
  "url": "https://example.com",
  "tags": ["wcag21aa"]
}

// Check multiple WCAG levels
{
  "url": "https://example.com",
  "tags": ["wcag2a", "wcag2aa", "best-practice"]
}

πŸ“Š Result Format

All audit tools return structured results in the following format:

{
  summary: {
    totalIssues: number
    score: number
    wcagCompliance: { A: number, AA: number, AAA: number }
    byCategory: Record<string, number>
    byImpact: Record<string, number>
  }
  prioritizedIssues: Array<{
    ruleId: string
    impact: 'critical' | 'serious' | 'moderate' | 'minor'
    description: string
    wcagLevel: string
    tags: string[] // Array of tags this violation matches
    element: string
    xpath: string
    fix: {
      current: string
      suggested: string
      explanation: string
    }
    userImpact: string
    priority: number
  }>
  conversationalSummary: string
  quickWins: Array<{
    ruleId: string
    description: string
    impact: string
    fix: string
  }>
  criticalBlockers: Array<{
    ruleId: string
    description: string
    impact: string
  }>
  appliedFilters?: {
    tags?: string[]
    originalIssueCount?: number
  }
}

πŸ“ Usage Examples

Basic URL Audit

{
  "tool": "audit_url",
  "arguments": {
    "url": "https://example.com",
    "tags": ["wcag21aa"]
  }
}

Authenticated Audit Flow

Step 1: Create Session

{
  "tool": "create_session",
  "arguments": {
    "domain": "https://app.example.com",
    "username": "user@example.com",
    "password": "password123"
  }
}

Step 2: Audit Protected Page

{
  "tool": "audit_with_session",
  "arguments": {
    "sessionId": "<session-id-from-step-1>",
    "url": "/dashboard",
    "tags": ["wcag21aa"]
  }
}

Batch Audit with Progress

{
  "tool": "audit_multiple_urls",
  "arguments": {
    "urls": ["/home", "/about", "/contact", "/products"],
    "domain": "https://example.com",
    "parallel": 2,
    "tags": ["wcag2aa"]
  }
}

Get Quick Fixes

{
  "tool": "get_quick_fixes",
  "arguments": {
    "results": "https://example.com",
    "format": "markdown",
    "includeCode": true
  }
}

Compare Before/After

{
  "tool": "compare_accessibility",
  "arguments": {
    "before": "https://example.com/v1",
    "after": "https://example.com/v2",
    "format": "detailed"
  }
}

Generate Compliance Report

{
  "tool": "generate_compliance_report",
  "arguments": {
    "results": { /* audit result object */ },
    "format": "VPAT",
    "level": "AA",
    "includeRemediation": true
  }
}

Export to CSV

{
  "tool": "export_to_csv",
  "arguments": {
    "results": "https://example.com",
    "format": "detailed",
    "includeMetadata": true,
    "includeViolations": true
  }
}

Export to Excel

{
  "tool": "export_to_excel",
  "arguments": {
    "results": { /* audit result object */ },
    "includeCharts": true,
    "formatting": true
  }
}

Export to JSON

{
  "tool": "export_to_json",
  "arguments": {
    "results": "https://example.com",
    "pretty": true,
    "includeRaw": false
  }
}

Generate HTML Report

{
  "tool": "export_to_html_report",
  "arguments": {
    "results": "https://example.com",
    "template": "detailed",
    "includeCharts": true
  }
}

Filter Issues

{
  "tool": "filter_issues",
  "arguments": {
    "results": { /* audit result object */ },
    "filters": {
      "impactLevels": ["critical", "serious"],
      "wcagLevels": ["A", "AA"]
    },
    "mode": "include"
  }
}

Search Issues

{
  "tool": "search_issues",
  "arguments": {
    "results": { /* audit result object */ },
    "query": "missing alt",
    "fields": ["description", "userImpact"],
    "caseSensitive": false
  }
}

Aggregate Audit Results

{
  "tool": "aggregate_audit_results",
  "arguments": {
    "results": [
      { /* audit result 1 */ },
      { /* audit result 2 */ }
    ],
    "groupBy": "category",
    "includeSummary": true
  }
}

Get Statistics

{
  "tool": "get_statistics",
  "arguments": {
    "results": [
      { /* audit result 1 */ },
      { /* audit result 2 */ }
    ],
    "breakdown": ["category", "impact", "wcag"]
  }
}

Generate Dashboard

{
  "tool": "generate_dashboard",
  "arguments": {
    "results": ["https://example.com/page1", "https://example.com/page2"],
    "format": "markdown",
    "includeCharts": true
  }
}

Generate Summary Report

{
  "tool": "generate_summary_report",
  "arguments": {
    "results": "https://example.com",
    "format": "markdown",
    "level": "executive"
  }
}

πŸ› Error Handling

The server includes comprehensive error handling:

  • Graceful degradation: Partial results on batch failures

  • Clear error messages: Human-readable error descriptions

  • Retry logic: Automatic retries for transient failures

  • Validation: Input validation with helpful error messages

Common error scenarios:

  • Invalid URLs or unreachable pages

  • Session expiration (for authenticated audits)

  • Timeout errors (configurable)

  • Invalid tag combinations

πŸ—οΈ Project Structure

a11y-mcp-srv/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ server.ts           # Main MCP server entry point
β”‚   β”œβ”€β”€ tools/              # Tool implementations
β”‚   β”‚   β”œβ”€β”€ audit.ts       # Core audit tools
β”‚   β”‚   β”œβ”€β”€ session.ts     # Session management
β”‚   β”‚   β”œβ”€β”€ analysis.ts    # Analysis & reporting
β”‚   β”‚   β”œβ”€β”€ comparison.ts  # Comparison tools
β”‚   β”‚   β”œβ”€β”€ export.ts      # Export tools (CSV, Excel, JSON, HTML)
β”‚   β”‚   β”œβ”€β”€ filter.ts      # Filtering and search tools
β”‚   β”‚   β”œβ”€β”€ aggregate.ts   # Aggregation and statistics tools
β”‚   β”‚   └── visualize.ts   # Visualization and dashboard tools
β”‚   β”œβ”€β”€ core/              # Core accessibility functionality
β”‚   β”‚   β”œβ”€β”€ accessibility-runner.ts      # Accessibility execution
β”‚   β”‚   β”œβ”€β”€ session-manager.ts  # Session handling
β”‚   β”‚   β”œβ”€β”€ result-processor.ts # Result formatting
β”‚   β”‚   β”œβ”€β”€ error-handler.ts    # Error handling
β”‚   β”‚   └── progress-streamer.ts # Progress updates
β”‚   └── types/             # TypeScript types
β”œβ”€β”€ dist/                  # Compiled JavaScript
β”œβ”€β”€ wave.min.js           # Accessibility engine script (required)
β”œβ”€β”€ package.json
β”œβ”€β”€ tsconfig.json
└── README.md

πŸ”¨ Local Development (Optional)

If you want to contribute or modify the code, you can set up a local development environment:

Prerequisites for Local Development

  • Node.js 18+

  • npm or yarn

Setup Steps

  1. Clone the repository

    git clone <repository-url>
    cd a11y-mcp-srv
  2. Install dependencies

    npm install
  3. Install Playwright browsers

    npx playwright install --with-deps chromium
  4. Build the project

    npm run build
  5. Verify accessibility script

    • Ensure wave.min.js is present in the project root

Running Locally

Development Mode (with watch)

npm run dev

Production Mode

npm start

Using Local Version in MCP Client

If you want to use the local version instead of the published package:

{
  "mcpServers": {
    "accessibility-audit": {
      "command": "node",
      "args": ["/absolute/path/to/a11y-mcp-srv/dist/server.js"]
    }
  }
}

Note: Use absolute paths in your configuration.

πŸ”‘ Key Differentiators

  1. Zero Setup Required - Just add config and use! No installation, building, or manual setup needed

  2. Conversational Interface - Results formatted for natural language understanding

  3. Session Management - Only MCP with reusable authenticated sessions for protected pages

  4. Educational Focus - explain_issue teaches accessibility concepts, not just reports problems

  5. Code-Level Fixes - Actual before/after code examples, not just descriptions

  6. Progress Updates - Streaming progress for long-running batch operations

  7. Smart Prioritization - AI-powered issue prioritization with quick wins identification

  8. Compliance Reports - Automated VPAT/WCAG/ADA/Section 508 documentation

  9. Tag Filtering - Filter by specific WCAG levels to reduce noise and focus on what matters

  10. 25+ Tools - Comprehensive suite covering auditing, analysis, reporting, export, and more

Attribution

This project is derived from alii13/accessibility-mcp-server, which is licensed under the MIT License. The original copyright notice and license are preserved in this distribution. See the NOTICE file for details.

πŸ“„ License

MIT License - feel free to use in your projects!

🀝 Contributing

Contributions are welcome! Please ensure all code follows the existing style and includes appropriate tests.

πŸ†˜ Support

For issues, questions, or contributions, please open an issue on the repository.


Happy accessibility testing! β™Ώβœ¨

Available Tools

22 tools
aggregate_audit_resultsA

Combine and aggregate multiple audit results. Groups issues by URL, category, rule, or none, and provides aggregated summary statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupByNoGrouping strategy: "url" (group by URL), "category" (group by category), "rule" (group by rule ID), or "none" (no grouping). Default: "url".url
resultsYesArray of audit result objects to aggregate.
includeSummaryNoInclude aggregated summary statistics (default: true).

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the transparency burden. It discloses the grouping strategies (url, category, rule, none) and that aggregated summary statistics are produced, but it does not explain the output format or whether the input results are modified. This is moderate behavioral disclosure but leaves important details unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that leads with the main action, then lists grouping options and the summary output. Every phrase adds value; no redundancy or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema clarifies parameters, but there is no output schema, so the description should describe return values. It mentions 'aggregated summary statistics' only vaguely and does not specify the shape of the returned object, which is a meaningful gap for a tool that aggregates heterogeneous audit results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema describes all three parameters with 100% coverage, so the description does not need to repeat them. The description's mention of grouping and summary statistics mirrors the schema's enum and includeSummary field without adding deeper semantics or usage nuance, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb-resource pair: 'Combine and aggregate multiple audit results.' It also names the grouping options, which clarifies its role. However, it does not explicitly differentiate itself from siblings like get_statistics or generate_summary_report, so it is clear but not fully distinctive.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'multiple audit results' indicates the intended context: use when you have several audit result objects to aggregate. It does not provide explicit exclusions or name alternative tools for different scenarios, but the condition is clear enough for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

audit_multiple_urlsA

Test multiple URLs efficiently with optional parallel processing and progress tracking.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoSpecific accessibility tags to check. Applied to all URLs. If not provided, env WCAG_LEVEL and BEST_PRACTICES are used.
urlsYesURLs to test (array or comma-separated string).
domainNoBase domain if URLs are relative (e.g., "https://example.com").
engineNoTesting engine: "axe" or "ace". Overrides env A11Y_ENGINE when provided.
parallelNoNumber of parallel tests to run (default: 1).
continueOnErrorNoContinue processing if one URL fails (default: true).

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden for behavioral disclosure. It mentions optional parallel processing and progress tracking, which are useful behavioral traits, but it does not disclose error handling, side effects, or any requirements. This is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that states the core purpose and key features without filler. Every word contributes value, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with six parameters and no output schema, the description gives the high-level purpose but omits details about return values, error handling, or input formats. The rich schema and sibling context compensate, but the description alone leaves some gaps for a complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of parameters, so the baseline is 3. The description adds the concept of progress tracking, which is not a parameter, and aligns with the 'parallel' parameter, but it does not add significant meaning beyond the schema's existing parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool tests multiple URLs, distinguishing it from sibling tools like audit_url which handle individual URLs. It also adds specific behavioral features (parallel processing, progress tracking) that make the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'multiple URLs' implies use when multiple URLs need testing, and the context of sibling tools (audit_url for single URLs) reinforces this. However, it does not explicitly state when to choose this over alternatives or provide exclusion criteria, leaving the guidance somewhat implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

audit_urlA

Test a single URL for accessibility issues. Returns structured, conversational results with prioritized issues and fix suggestions.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull URL or relative path to test. If relative, domain must be provided.
tagsNoSpecific accessibility tags to check. If not provided, tags from env WCAG_LEVEL and BEST_PRACTICES are used.
domainNoBase domain if URL is relative (e.g., "https://example.com").
engineNoTesting engine: "axe" (axe-core, default) or "ace" (IBM Equal Access). Overrides env A11Y_ENGINE when provided.
timeoutNoTimeout in seconds (default: 30).
waitForLoadNoWait strategy for page loading.networkidle

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full behavioral disclosure. It states it returns structured, conversational results with prioritized issues and fix suggestions, which is informative. However, it does not explicitly state that the operation is read-only or describe any limitations (e.g., handling of invalid URLs, network dependency), though these are not contradictory.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loads the action, and provides useful output details without filler. It earns a top score for efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given six parameters and no output schema or annotations, the description is slightly thin but adequate. It explains the purpose and output format, but could mention additional behaviors like handling relative paths or engine selection, though the schema covers these. A score of 3 reflects a minimally complete description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All six parameters have schema descriptions (100% coverage), so the schema carries the parameter details. The description does not add further parameter semantics, but its mention of 'conversational results' hints at the output rather than the input, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Test'), clarifies the resource ('a single URL'), and the intent ('accessibility issues'). It also differentiates from siblings like audit_multiple_urls by explicitly stating 'single URL'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it's for testing a single URL, which implies use cases. However, it does not explicitly reference alternatives such as audit_multiple_urls for batch auditing or audit_with_session for session-based testing, so it misses an opportunity to draw contrasts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

audit_with_sessionA

Run an accessibility audit on a URL using an existing authenticated session. This allows testing protected pages without re-authenticating for each audit.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull URL or relative path to test. If relative, domain must be provided.
tagsNoSpecific accessibility tags to check. If not provided, all tags are checked.
domainNoBase domain if URL is relative. If not provided, uses session domain.
sessionIdYesSession ID from create_session tool.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the core behavior (using an existing session, avoiding re-authentication) but does not mention side effects (e.g., whether it consumes the session, if it's read-only, or if it creates any records). The 'protected pages' context adds value but lacks details on what the audit does beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action, and zero filler. The first sentence states the operation, the second explains the benefit, which is concise and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for the basic use case (authenticated audits), but lacks context about how to obtain a session (sibling create_session), potential alternatives (audit_url), and return value expectations since no output schema exists. It covers the core purpose but leaves some gaps given the absence of annotations/output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are well-documented. The tool description itself adds little beyond the schema, though it does imply that sessionId is used to maintain authentication. Baseline 3 is appropriate as the description does not further explain parameter usage or relationships.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: 'Run an accessibility audit on a URL using an existing authenticated session.' It uses a specific verb ('run') and resource ('accessibility audit'), and differentiates from siblings by explicitly mentioning the existing session and protected pages, which separates it from plain audit_url.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool: 'This allows testing protected pages without re-authenticating for each audit.' It implies it's intended for authenticated/protected content, but does not explicitly mention alternatives or exclusions (e.g., when to use audit_url instead).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_accessibilityA

Compare two accessibility audits to track improvements. Identifies issues that were fixed, introduced, or remain, with score improvement and visual diff summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
afterYesCurrent audit results object or URL string. If URL is provided, an audit will be run first.
beforeYesPrevious audit results object or URL string. If URL is provided, an audit will be run first.
formatNoOutput format: "summary" for concise comparison, "detailed" or "diff" for comprehensive diff visualization (default: summary).summary

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the output content (fixed/introduced/remaining issues, score change, visual diff). It does not mention side effects like auto-running audits on URL input, but that is already captured in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the primary purpose and key output categories. No redundant information or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, the schema is rich, and the description covers the essential behavioral outcome. It lacks mention of prerequisites or error conditions, but for a comparison tool this is adequate without being exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains before/after/format in detail. The description adds no new parameter-level meaning beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb+resource ('Compare two accessibility audits') and clearly differentiates from siblings like get_accessibility_score or track_accessibility by stating it identifies fixed, introduced, and remaining issues plus score improvement and visual diff summary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the use case clear: tracking improvements between two audits. It does not explicitly name alternatives or exclusions, but the sibling tools for single audits or scores make the comparison purpose distinct.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_sessionA

Create a reusable authenticated session by logging into a website. The session can be reused for multiple audits of protected pages.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesBase domain (e.g., "https://example.com" or "example.com").
loginUrlNoCustom login URL. If not provided, defaults to {domain}/login.
passwordYesLogin password.
usernameYesLogin username.
sessionIdNoCustom session identifier. If not provided, one is generated.
loginSelectorsNoCustom selectors for login form. If not provided, defaults are used.

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only states that the tool logs into a website and creates a reusable session, but does not mention credentials handling, session persistence, security implications, or potential side effects (e.g., server-side session creation). This is a significant gap for a tool that handles authentication.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (two sentences), front-loads the core action, and contains no redundant information. Every word serves a purpose, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a nested object (loginSelectors) and no output schema, yet the description does not mention what the tool returns (e.g., sessionId) or how the session is used with sibling audit tools. While the schema documents parameters, the description lacks high-level context about the workflow (e.g., the need to pass the session to audit_with_session). This is a moderate gap for a tool that serves as a prerequisite to other audit tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add any parameter-specific semantics beyond what the schema already provides; it does not explain how parameters like domain, username, or loginSelectors interact. The schema handles parameter documentation adequately, so no additional credit is warranted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('create') and resource ('reusable authenticated session'), and distinguishes it from sibling tools like audit_with_session by focusing on session creation rather than usage. It also mentions the purpose for audits of protected pages, which provides useful context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by noting the session is 'reused for multiple audits of protected pages,' which signals when to use this tool. However, it does not explicitly mention alternatives or exclusions (e.g., when to use audit_with_session directly with existing credentials), losing a point for not naming any sibling tool or alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

explain_issueA

Explain what an accessibility issue means in plain language. Provides educational information including why it matters, how to fix it, WCAG references, and code examples.

ParametersJSON Schema
NameRequiredDescriptionDefault
ruleIdYesAccessibility rule ID (e.g., "alt_missing", "contrast", "label_missing").
contextNoAdditional context about the issue (optional). Can include element information or specific circumstances.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses the tool's educational nature and what it provides (WCAG references, code examples), but does not specify the output format or any behavioral edge cases. For a read-only explanatory tool, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that packs the core purpose and deliverable list efficiently without filler. It is concise and front-loaded, though it could be slightly more structured with explicit segments.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (2 parameters, no output schema) and the description covers its educational scope well. The missing return format is minor for an explain tool, and the schema handles parameter documentation. Overall, the description is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both ruleId and context well described. The tool description does not add any parameter-specific meaning beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Explain what an accessibility issue means in plain language' with a specific scope (why it matters, how to fix it, WCAG references, code examples). It distinguishes from sibling audit/fix tools by emphasizing educational content, though it does not explicitly name an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when a user needs to understand an accessibility issue, but it does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives like get_quick_fixes or filter_issues. Context is present but exclusions are absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_to_csvA

Export audit results to CSV format for spreadsheet analysis. Includes metadata section and violation rows.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoExport format: "standard" (default), "detailed" (includes all fields), or "minimal" (essential fields only).standard
resultsYesAudit results object or URL string. If URL is provided, an audit will be run first.
includeMetadataNoInclude test information and environment data (default: true).
includeViolationsNoInclude detailed violation rows (default: true).

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It adds value by mentioning the CSV includes metadata and violation rows, but it does not disclose whether the tool triggers an audit when given a URL, or any side effects. This is minimal but not misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences communicate the purpose and key output features with zero wasted words. Information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is short but sufficient for a simple export tool given the rich schema. It covers the output structure but omits the URL-triggers-audit behavior, which is documented in the schema. Overall complete enough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are fully documented there. The description adds no additional param-level meaning beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool exports audit results to CSV, which is a specific verb+resource. It distinguishes itself from sibling export tools by naming the format and use case (spreadsheet analysis).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for spreadsheet analysis' gives clear context for when to use this tool, and the siblings listing shows alternative formats, but no explicit exclusions or when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_to_excelB

Export audit results to Excel/XLSX format with formatting. Requires xlsx package.

ParametersJSON Schema
NameRequiredDescriptionDefault
resultsYesAudit results object or URL string. If URL is provided, an audit will be run first.
formattingNoApply colors, headers, and styling (default: true).
includeChartsNoGenerate charts for score trends and category breakdown (default: false).

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must convey behavioral traits. It mentions the xlsx package requirement, which is a useful dependency note. However, it does not disclose important behaviors such as how the output is delivered (e.g., file path, download), whether it triggers an audit when a URL is passed (the schema covers this, but the description doesn't add context), or any side effects. The description is too sparse to give the agent a clear picture of the tool's runtime behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of two short sentences that immediately state the core function and a prerequisite. Every word earns its place, and there is no redundant or inflated language. It is well-structured and front-loaded, making it easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is no output schema and no annotations, the description leaves significant gaps: it does not explain how the exported file is returned or saved, does not mention that the 'results' parameter can be a URL to trigger a new audit (though the schema does), and offers no guidance on choosing this tool over sibling export tools. For a tool with multiple parameters and related siblings, the description is under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides complete descriptions for all three parameters (results, formatting, includeCharts), so the baseline is 3. The description does not add any parameter-specific information beyond the schema; it merely echoes the formatting concept without elaborating on the parameters themselves. No value is added over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action (export), the resource (audit results), and the destination format (Excel/XLSX). It distinguishes itself from sibling export tools by naming the specific format. The mention of formatting adds useful context without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by specifying the output format (Excel/XLSX), suggesting it is appropriate when an Excel file is desired. However, it does not explicitly contrast with sibling tools like export_to_csv or export_to_json, nor does it state conditions for when to prefer this tool over alternatives. No exclusions or alternative recommendations are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_to_html_reportC

Generate standalone HTML report with styling. Includes optional visual charts.

ParametersJSON Schema
NameRequiredDescriptionDefault
resultsYesAudit results object or URL string. If URL is provided, an audit will be run first.
templateNoReport template: "default" (standard report), "minimal" (essential info only), or "detailed" (comprehensive report).default
includeChartsNoInclude visual charts (default: true).

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must disclose behavioral traits, but it only mentions 'standalone' and 'optional visual charts' β€” features rather than behaviors. It does not describe return format, side effects, prerequisites, or limitations, which is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short, front-loaded sentences with no fluff. Every word contributes to the core message, making it very concise and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a dual-mode results parameter and no output schema, yet the description does not explain what the tool returns (HTML string, file path, etc.) or mention the dual-mode behavior. The schema covers parameters, but the description omits essential context for confident use, making it incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all three parameters with descriptions, including the dual nature of the results parameter (object or URL). The description adds no extra semantics beyond what the schema already provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the primary action: generating a standalone HTML report with styling. This distinguishes it from CSV/Excel/JSON export tools, but it does not explicitly differentiate from other report-generating siblings like generate_summary_report or generate_dashboard.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus other export/reporting tools. The description does not mention alternatives, exclusions, or typical use cases, leaving the agent without decision-support.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_to_jsonB

Export audit results as structured JSON. Supports pretty-printing and optional raw results.

ParametersJSON Schema
NameRequiredDescriptionDefault
prettyNoPretty-print JSON (default: true).
resultsYesAudit results object or URL string. If URL is provided, an audit will be run first.
includeRawNoInclude raw accessibility engine results (default: false).

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must fully disclose behavioral traits. It fails to mention that providing a URL string will run an audit first, which is a significant side-effect. The description only covers output formatting options (pretty, raw) and does not disclose any potential side effects or state changes. This is a notable transparency gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is highly concise, consisting of two short sentences that get straight to the point. It front-loads the core function and mentions the key options without wasting words. Every sentence contributes meaningful information, making it appropriately sized for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the schema detailing parameters, the description omits the crucial context that the 'results' parameter can be a URL which triggers an audit. This dual-mode behavior is not reflected in the description, leaving the tool's full capability ambiguous. With no output schema and no annotations, the description does not sufficiently situate the tool among its siblings or clarify when to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with each parameter already having clear descriptions. The tool description adds minimal semantic value beyond the schema, only loosely referencing 'pretty-printing' and 'optional raw results,' which map to the schema's existing parameter descriptions. Since the schema already explains the parameters well, the description's contribution is marginal.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Export audit results as structured JSON.' This is a specific verb+resource that distinguishes it from sibling export tools like export_to_csv and export_to_html_report. It also mentions the supported features (pretty-printing and optional raw results), further clarifying its purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when JSON output of audit results is needed, but provides no explicit guidance on when to choose this tool over alternatives. There is no mention of the fact that passing a URL triggers an audit, which is a critical usage nuance. The context of being a JSON export tool gives some implied direction, but no explicit when/when-not/alternatives are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

filter_issuesB

Filter issues from audit results by various criteria (rule IDs, categories, impact levels, WCAG levels, etc.). Supports include/exclude modes.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoFilter mode: "include" (only include matching issues) or "exclude" (exclude matching issues).include
filtersYesFilter criteria object.
resultsYesAudit result object from a previous audit.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It mentions include/exclude modes but fails to reveal whether the input results are mutated, how multiple filter criteria are combined (AND/OR), or what the return value looks like. The lack of such essential behavioral details leaves the agent uncertain about side effects and results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the core action, and contains no redundant information. Every word contributes to understanding the tool's purpose and key modes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is moderately complex due to a nested filters object and an enumeration-driven mode, but the description does not address important contextual aspects like output format, behavior with no matching filters, or interaction between filters. Without an output schema, the description should clarify what the tool returns, which it omits.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage of parameter descriptions, so a baseline of 3 is appropriate. The description adds minimal value beyond the schemaβ€”it lists criteria that are already in the schema's property descriptions. It does not clarify the 'results' parameter further than the schema already does.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Filter issues from audit results by various criteria' with specific mention of criteria types (rule IDs, categories, impact levels, WCAG levels). It also distinguishes itself by mentioning 'includes/exclude modes', a feature not implied by sibling names like 'search_issues' or 'prioritize_issues'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., having an audit result before filtering), nor does it specify contexts where include or exclude modes would be preferred. The description simply states what it does without situational advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_compliance_reportB

Generate compliance reports in VPAT, WCAG, ADA, or Section 508 format. Includes WCAG criterion mapping, compliance percentages, executive summary, and optional remediation plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNoWCAG compliance level to assess: "A", "AA", or "AAA". Default: AA.AA
formatNoReport format: "VPAT" (Voluntary Product Accessibility Template), "WCAG" (WCAG compliance report), "ADA" (Americans with Disabilities Act report), or "Section508" (Section 508 compliance report). Default: WCAG.WCAG
resultsYesAudit result object from a previous audit.
includeRemediationNoInclude remediation plan with fix suggestions in the report (default: false).

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full burden of behavioral disclosure. It describes report contents but does not clarify side effects, return format, whether it persists data, or prerequisites (like results from a prior audit). This leaves the agent uncertain about the tool's operational impact.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded with the main verb and object, and it contains no filler. It efficiently lists formats and key contents, though it could be structured into two sentences for even better readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (4 parameters, nested results object, no output schema), the description provides a reasonable summary but misses key contextual details: it does not mention the required 'results' parameter, describe the return value shape, or explain how it differs from other reporting tools. This is adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds limited semantic value, only mentioning the 'optional remediation plan' which maps to includeRemediation. It does not elaborate on level or format relationships beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Generate'), the resource ('compliance reports'), and enumerates supported formats (VPAT, WCAG, ADA, Section 508). It also lists key report contents, distinguishing it from sibling tools like generate_summary_report or export_to_html_report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for generating compliance reports in specific formats, but it does not provide explicit exclusions or comparisons with alternative tools. Since siblings like generate_summary_report and export_to_html_report overlap, more guidance on when to prefer this tool would be useful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_dashboardA

Create a visual dashboard summary of audit results with key metrics, charts, and summaries. Supports multiple formats (text, markdown, HTML, JSON) and optional charts.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoOutput format: "text" (plain text), "markdown" (markdown format), "html" (HTML report), or "json" (structured JSON). Default: "markdown".markdown
resultsYesAudit result object(s) or URL string(s). If URL(s) provided, audit(s) will be run first.
includeChartsNoInclude ASCII/text charts in the dashboard (default: true).

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It fails to mention that the 'results' parameter can accept URLs and trigger audits, a significant side effect evident in the schema. It also does not describe the output format or whether the operation is read-only or creates persistent artifacts, so transparency is limited.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of two sentences that front-load the primary purpose and then list supported formats. Every word adds information, with no redundant details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with moderate complexity (accepting objects, arrays, or URLs) and no output schema, the description is somewhat lacking. It explains the output concept ('visual dashboard summary') but does not specify what the returned dashboard looks like, nor does it mention the audit-before-dashboard behavior for URL inputs, which is covered only in the parameter schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides detailed descriptions for all three parameters, including enums and defaults. The description adds no new information about parameter values beyond restating that formats include text, markdown, HTML, and JSON and that charts are optional, so it does not exceed the baseline provided by the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool's function with a specific verb ('Create') and resource ('visual dashboard summary of audit results'). It mentions key elements (metrics, charts, summaries) that differentiate it from sibling report tools like generate_summary_report or export_to_html_report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives such as generate_summary_report or generate_compliance_report. It only implies that it is suitable when a dashboard with visual charts is desired, leaving the agent to infer the appropriate context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_summary_reportA

Generate executive summary report with key findings and recommendations. Supports multiple formats (text, markdown, HTML) and detail levels (executive, detailed, technical).

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNoDetail level: "executive" (high-level summary for executives), "detailed" (comprehensive summary with breakdowns), or "technical" (technical details for developers). Default: "executive".executive
formatNoOutput format: "text" (plain text), "markdown" (markdown format), or "html" (HTML report). Default: "markdown".markdown
resultsYesAudit result object(s) or URL string(s). If URL(s) provided, audit(s) will be run first.

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It fails to mention that providing URLs as input will trigger an audit first, nor does it clarify whether the operation is read-only or has side effects. The description only lists capabilities, not behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long and front-loaded with the main purpose. Every sentence is informative and there is no redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has three parameters, no output schema, and no annotations. The description omits the important behavior that URL inputs trigger an audit, which could lead an agent to misuse the tool. The report content and return format are only vaguely implied, leaving gaps for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with detailed descriptions for each parameter including enums and defaults. The description mentions 'multiple formats (text, markdown, HTML)' and 'detail levels (executive, detailed, technical)', which reinforces the schema but adds minimal new meaning beyond it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Generate executive summary report with key findings and recommendations.' It uses a specific verb ('Generate') and resource ('executive summary report'), and the mention of formats and detail levels distinguishes it from sibling tools like generate_compliance_report or export_to_html_report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used for creating executive summaries but does not explicitly state when to use it over alternatives such as generate_compliance_report or prioritize_issues. No exclusions or alternative tool references are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_accessibility_scoreA

Calculate accessibility score (0-100) from audit results with detailed breakdowns by category and WCAG compliance levels. Supports custom weights for different issue types.

ParametersJSON Schema
NameRequiredDescriptionDefault
resultsYesAudit results object or URL string. If URL is provided, an audit will be run first.
weightsNoCustom weights for different issue types (e.g., {"critical": 5.0, "serious": 3.0}). If not provided, default weights are used.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the burden. It does not disclose that providing a URL triggers an audit first, which is a significant side effect. However, the schema covers this, and the 'get' prefix suggests read-only behavior, so the description is not misleading but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary purpose, and contains no unnecessary words. Every clause adds useful information about breakdowns and weights.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only 2 parameters, a complete schema, and no output schema, the description adequately covers the score range and breakdown nature. It could mention the URL-triggered audit behavior and return format details, but the tool is simple enough that the description is mostly sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for both parameters (results and weights), so the schema already provides clear semantics. The description adds only the mention of custom weights, which slightly reinforces but does not substantially extend the parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Calculate' and the resource 'accessibility score (0-100)', with specifics about breakdowns by category and WCAG compliance levels. It also mentions custom weights, distinguishing it from sibling tools like audit_url or prioritize_issues.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you have audit results and want a score, but it does not explicitly state when to use this tool versus alternatives like get_wcag_compliance or audit_url. No exclusions or alternative guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_quick_fixesA

Get specific fix suggestions with before/after code examples from audit results. Returns actionable fixes formatted as markdown, HTML, or JSON.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoOutput format: "markdown" for markdown-formatted fixes, "html" for HTML format, or "json" for structured data (default: json).json
resultsYesAudit results object or URL string. If URL is provided, an audit will be run first.
includeCodeNoInclude before/after code examples in the fixes (default: true).

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does state that fixes are returned in different formats, but it fails to mention a key behavioral trait: if a URL is provided in the 'results' parameter, an audit will be run first. It also does not disclose that the 'includeCode' parameter can omit code examples. This is a significant gap for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the verb and resource, and every phrase earns its place. No wasted words or redundant details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is relatively simple with a well-documented schema, but the description omits important behavioral context (the URL-triggered audit and the includeCode toggle). While the schema covers these, the description alone is insufficient for an agent to fully anticipate side effects. Given the low complexity, a 3 is reasonable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage for all three parameters with detailed descriptions, so the baseline is 3. The description adds minimal value beyond the schema, only mentioning output formats that correspond to the 'format' parameter. It does not add further meaning to 'results' or 'includeCode'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Get'), a specific resource ('fix suggestions'), and a source ('from audit results'). It also mentions the output formats, distinguishing it from sibling tools like explain_issue or audit_url.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies usage context: use this tool when you have audit results and need actionable fixes. It does not explicitly name alternative tools or exclusion criteria, but the context is clear enough. No explicit exclusions are given, so a 4 is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_statisticsA

Generate detailed statistics from audit results with breakdowns by category, impact, WCAG level, or rule ID. Supports single or multiple audit results.

ParametersJSON Schema
NameRequiredDescriptionDefault
resultsYesAudit result object or array of audit results to analyze.
breakdownNoArray of breakdown dimensions: "category", "impact", "wcag", "rule". Default: all dimensions.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. 'Generate detailed statistics' implies a non-mutating analysis operation, but the description does not explicitly state side effects, return format, or any permissions required. It provides minimal but sufficient transparency for a likely read-only tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, front-loaded with the main purpose and followed by relevant detail. No redundant or extraneous information, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no output schema, the description does not explain what the returned statistics look like (e.g., counts, percentages, structure). It also omits edge cases like empty results or how breakdowns are presented. While adequate for a simple statistics tool, the lack of output details leaves some uncertainty.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters described in the schema. The description adds little beyond the schema, only restating the breakdown dimensions and supporting single/multiple results, which are already covered by the schema's oneOf definition. The baseline of 3 is appropriate when schema handles the semantic heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates detailed statistics from audit results and lists specific breakdown dimensions (category, impact, WCAG level, rule ID). It also notes support for single or multiple audit results. While it doesn't explicitly distinguish itself from siblings like aggregate_audit_results or generate_summary_report, the focus on statistical breakdowns makes the purpose clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for generating statistics from audit results, and the phrase 'Supports single or multiple audit results' gives context on input flexibility. However, there is no explicit guidance on when to prefer this tool over alternatives, nor any mention of when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_wcag_complianceB

Check WCAG compliance status with detailed per-criterion breakdown. Returns compliance status (pass/fail/partial), compliance percentage, violations per criterion, and missing requirements.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNoWCAG compliance level to check: "A", "AA", or "AAA". Default: AA.AA
resultsYesAudit results object or URL string. If URL is provided, an audit will be run first.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must disclose behavioral traits. It mentions the return values (pass/fail/partial, percentage, violations, missing requirements) but omits key behaviors like that a URL input triggers a fresh audit, or any side effects, permissions, or rate-limit concerns. For a read-only tool this is acceptable, but the missing audit-trigger behavior is a notable gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, each earning its place: the first states the primary action, the second lists the returned information. There is no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the return content in reasonable detail, which is important given no output schema. However, it does not mention that the tool can accept a URL to audit first, nor does it provide usage context relative to related tools. This leaves some gaps for a relatively simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage, including descriptions for both 'results' and 'level'. The description adds no additional parameter semantics, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Check' and resource 'WCAG compliance status', and specifies the detailed per-criterion breakdown, which differentiates it from the sibling get_accessibility_score. However, it does not explicitly distinguish itself from other compliance-related tools like generate_compliance_report, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives such as get_accessibility_score or audit_url. The description only states what the tool does, without mentioning prerequisites, context, or exclusion conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

prioritize_issuesA

Intelligently prioritize accessibility issues based on specified criteria, identifying quick wins (easy fixes with high impact) and critical blockers (must fix before launch).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoTop N issues to return. If not provided, all issues are returned.
resultsYesAudit result object from a previous audit.
criteriaNoPrioritization criteria: "impact" (by impact level), "wcag" (by WCAG compliance level), "fixability" (by ease of fix), or "user-impact" (by user experience impact).impact

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavior. It mentions the outcome of identifying quick wins and critical blockers, but does not state whether the tool is read-only, returns a new list, or modifies the input. It also omits return format and any side effects, which is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the core action. It includes useful, specific details (quick wins, critical blockers) without redundancy, and does not repeat schema information. The only minor padding is 'Intelligently', but it does not detract from overall efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description gives a high-level overview of the tool's function and outputs categories, but with no output schema it fails to fully describe the return structure. It also does not explain how prioritization criteria affect the output or how the 'results' object is processed, leaving gaps for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds little beyond the schema, only referencing 'specified criteria' which is already detailed in the criteria enum. It does not elaborate on the 'results' or 'limit' parameters, which are well-covered by the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: to prioritize accessibility issues based on specified criteria. It adds specificity by identifying 'quick wins' and 'critical blockers', which distinguishes it from sibling tools like filter_issues or search_issues. The verb 'prioritize' and resource 'accessibility issues' are explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for prioritization tasks via 'based on specified criteria' and 'identifying quick wins and critical blockers', but it does not explicitly state when to use this tool versus alternatives. There is no mention of exclusions or comparisons to sibling tools, leaving the agent to infer applicability.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_issuesC

Search issues by text content, selector, XPath, or description. Supports case-sensitive and case-insensitive search.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query string.
fieldsNoFields to search: "description", "element", "xpath", "selector", "ruleId", "userImpact", "fix", or "all" (default: ["all"]).
resultsYesAudit result object from a previous audit.
caseSensitiveNoCase-sensitive search (default: false).

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure, but only mentions case sensitivity support. It does not clarify that the tool searches within an existing audit results object, nor does it describe the return behavior or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, front-loaded with the action 'Search issues', and contains no filler or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 4 parameters, a nested result object, and no output schema, the description is too sparse to fully guide an agent. It omits the requirement for a previous audit result, the return format, and how results are limited, leaving important operational context missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides full descriptions for all parameters (100% coverage), so the baseline is 3. The description adds only a loose mapping to fields ('text content, selector, XPath, or description') but does not meaningfully enhance parameter understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a search action on issues and lists some searchable fields (text content, selector, XPath, description). However, it does not differentiate from the sibling tool filter_issues, and 'text content' is somewhat ambiguous, so it is not a perfect 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus filter_issues or other sibling tools. It also fails to mention that the 'results' parameter must be an existing audit result, which is a key prerequisite.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

track_accessibilityA

Track accessibility metrics over time with trend analysis, predictions, and recommendations. Stores audit results for historical comparison.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to track accessibility metrics for.
metricNoMetric to track: "score" (accessibility score 0-100), "issues" (total number of issues), or "wcag-compliance" (average WCAG compliance percentage). Default: score.score
timeframeNoTimeframe for historical data: "7d" (7 days), "30d" (30 days), "90d" (90 days), or "all" (all available data). Default: 30d.30d

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the transparency burden. It discloses a side effect: 'Stores audit results for historical comparison', indicating a write/persistence behavior. However, it does not clarify whether the tool triggers new audits or only reads existing data, nor does it mention authentication, rate limits, or data retention. This is partial disclosure but leaves key behavioral questions unanswered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences that front-load the primary action ('Track accessibility metrics over time') and add value with supporting details ('trend analysis, predictions, recommendations; stores audit results'). Every word earns its place, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 3 parameters, no output schema, and no annotations. The description explains the core purpose and mentions outputs like 'trend analysis, predictions, and recommendations', but it does not describe the return format, how trends are presented, or what 'recommendations' entail. This leaves some gaps for an agent that needs to invoke the tool and interpret results, but it is adequate for understanding the basic operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-specific context beyond what the schema already provides; it does not mention url, metric, or timeframe. Thus it meets the baseline but does not enhance understanding of parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Track accessibility metrics over time' with trend analysis, predictions, and recommendations. This distinguishes it from sibling tools like get_accessibility_score (single snapshot) and audit_url (one-time audit), establishing a unique value proposition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for tracking metrics over time ('Track accessibility metrics over time') but does not explicitly state when to use this over alternatives or mention exclusions. While the phrase 'with trend analysis, predictions, and recommendations' suggests a historical/comparative use case, it lacks direct guidance on when not to use it compared to siblings like compare_accessibility or generate_summary_report.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 22 tool updatesv1.1.13
    • First observedaggregate_audit_results
    • First observedaudit_multiple_urls
    • First observedaudit_url
    • First observedaudit_with_session
    • First observedcompare_accessibility
    • First observedcreate_session
    • First observedexplain_issue
    • First observedexport_to_csv
    • First observedexport_to_excel
    • First observedexport_to_html_report
    • First observedexport_to_json
    • First observedfilter_issues
    • First observedgenerate_compliance_report
    • First observedgenerate_dashboard
    • First observedgenerate_summary_report
    • First observedget_accessibility_score
    • First observedget_quick_fixes
    • First observedget_statistics
    • First observedget_wcag_compliance
    • First observedprioritize_issues
    • First observedsearch_issues
    • First observedtrack_accessibility

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a distinct functionality: auditing, session management, scoring, prioritization, explanation, fixes, comparison, tracking, compliance, exports, filtering, searching, aggregation, statistics, dashboard, and summary. The four export tools differ by output format, and the three report generators serve different purposes. No two tools appear to do the same thing.

Naming Consistency4/5

The vast majority follow a clear snake_case verb_noun pattern (e.g., get_accessibility_score, generate_compliance_report, filter_issues). Minor deviations like audit_multiple_urls and audit_with_session break the strict verb_noun structure but remain intuitive and consistent in style (lowercase, underscores).

Tool Count4/5

At 22 tools, the count is slightly heavy (above the ideal 3-15 range) but is justified by the comprehensive scope of accessibility testing: auditing, analysis, reporting, exports, and compliance. Each tool covers a distinct feature, so the number feels earned rather than bloated.

Completeness5/5

The toolset provides complete coverage of the accessibility audit lifecycle: running audits (single, multiple, with sessions), analyzing results (scoring, prioritization, explanations, quick fixes), tracking progress (comparison, trends), compliance reporting (WCAG, VPAT, ADA), and various export/filter/aggregation options. No obvious dead ends; all core workflows are supported.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dallask/a11y-mcp-srv'

If you have feedback or need assistance with the MCP directory API, please join our Discord server