Skip to main content
This guide provides comprehensive setup instructions for all supported MCP clients, including troubleshooting tips and advanced configuration options.
Quick start? See the Installation Guide for basic setup. This guide covers detailed configuration and troubleshooting.

Prerequisites

Before setting up any MCP client:
1

Verify Node.js version

node --version
Required: Node.js ≥ 20If you need to update: Download Node.js
2

Test npx access

npx --version
Should return npm version (npx is bundled with npm)
3

Verify accessibility-hub package

npx -y accessibility-hub --version
This downloads and tests the package
Chrome/Chromium is required for browser-based analysis. Puppeteer will download it automatically on first run (~170MB).

Claude Desktop

Configuration

1

Locate config file

Find your configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json
Open with:
open -a TextEdit ~/Library/Application\ Support/Claude/claude_desktop_config.json
2

Add configuration

If file is empty or doesn’t exist:
{
  "mcpServers": {
    "accessibility-hub": {
      "command": "npx",
      "args": ["-y", "accessibility-hub"]
    }
  }
}
If you already have other servers:
{
  "mcpServers": {
    "other-server": {
      "command": "node",
      "args": ["/path/to/other-server.js"]
    },
    "accessibility-hub": {
      "command": "npx",
      "args": ["-y", "accessibility-hub"]
    }
  }
}
3

Restart Claude Desktop

Important: Completely quit and restart Claude Desktop
  • macOS: Cmd+Q, then reopen
  • Windows: Right-click system tray icon → Quit, then reopen
  • Linux: Close all windows, then reopen
Use “Quit” not just closing the window. The app must fully restart.
4

Verify setup

In Claude Desktop, type:
What tools do you have available?
You should see:
  • analyze-with-axe
  • analyze-with-pa11y
  • analyze-with-lighthouse
  • analyze-contrast
  • analyze-mixed

Optional: Environment Variables

Configure logging and behavior:
{
  "mcpServers": {
    "accessibility-hub": {
      "command": "npx",
      "args": ["-y", "accessibility-hub"],
      "env": {
        "LOG_LEVEL": "debug",
        "PUPPETEER_EXECUTABLE_PATH": "/path/to/chrome"
      }
    }
  }
}
Available environment variables:
VariableValuesDescription
LOG_LEVELerror, warn, info, debugLogging verbosity
PUPPETEER_EXECUTABLE_PATHPath to ChromeUse specific Chrome binary
PUPPETEER_SKIP_DOWNLOADtrueSkip Chromium download (use system Chrome)

Troubleshooting

Symptoms: No accessibility tools availableSolutions:
  1. Verify JSON syntax (use JSONLint)
  2. Check file location is correct for your OS
  3. Ensure you fully quit and restarted Claude (not just closed window)
  4. Check Claude logs:
    • macOS: ~/Library/Logs/Claude/
    • Windows: %APPDATA%\Claude\logs\
    • Linux: ~/.config/Claude/logs/
Symptoms: Error message about server startupSolutions:
  1. Verify Node.js version: node --version (≥ 20)
  2. Test npx directly: npx -y accessibility-hub --version
  3. Check permissions on config file
  4. Try absolute path instead of npx:
    {
      "command": "node",
      "args": ["/absolute/path/to/node_modules/.bin/accessibility-hub"]
    }
    
Symptoms: Errors about Chrome or PuppeteerSolutions:
  1. Let Puppeteer download Chrome automatically (first run takes time)
  2. Or install Chrome system-wide and use:
    {
      "env": {
        "PUPPETEER_SKIP_DOWNLOAD": "true",
        "PUPPETEER_EXECUTABLE_PATH": "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
      }
    }
    
  3. Common Chrome paths:
    • macOS: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
    • Windows: C:\Program Files\Google\Chrome\Application\chrome.exe
    • Linux: /usr/bin/google-chrome
Symptoms: EACCES or permission denied errorsSolutions:
  1. Run without sudo (npm global installs should not require sudo)
  2. Configure npm to use user directory:
    mkdir ~/.npm-global
    npm config set prefix '~/.npm-global'
    echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.profile
    source ~/.profile
    
  3. Use npx (recommended) which doesn’t require global install

Cursor

Click to automatically install: Install in Cursor After clicking, restart Cursor.

Manual Install

1

Decide: Project or Global

Project-level (recommended for team collaboration):
  • Config file: .cursor/mcp.json in your project root
  • Only active in this project
  • Can be committed to git
Global (personal use across all projects):
  • Config file location varies by OS
  • Active in all Cursor windows
  • Check Cursor settings for location
2

Create/edit config file

Project-level:
mkdir -p .cursor
touch .cursor/mcp.json
Add configuration:
{
  "mcpServers": {
    "accessibility-hub": {
      "command": "npx",
      "args": ["-y", "accessibility-hub"]
    }
  }
}
3

Restart Cursor

Completely restart Cursor (Cmd+Q / Alt+F4, then reopen)
4

Verify setup

Open Cursor’s command palette and ask:
What MCP tools are available?

Troubleshooting

Cursor checks configs in this order:
  1. Project-level: .cursor/mcp.json
  2. Global config (OS-specific)
To check which is active:
  • Open Cursor settings
  • Search for “MCP”
  • View active configuration path
Solutions:
  1. Ensure .cursor/mcp.json is in project root (not nested)
  2. Check JSON syntax
  3. Restart Cursor from project root directory
  4. Try global config as alternative
For team projects, commit .cursor/mcp.json:
# .gitignore
# Don't ignore .cursor/mcp.json so team can use it
!.cursor/mcp.json
Team members need:
  1. Node.js ≥ 20 installed
  2. Pull the repo with .cursor/mcp.json
  3. Restart Cursor
No manual configuration needed!

Windsurf

Configuration

1

Locate config file

Windsurf config location:
~/.codeium/windsurf/mcp_config.json
Create directory if it doesn’t exist:
mkdir -p ~/.codeium/windsurf
touch ~/.codeium/windsurf/mcp_config.json
2

Add configuration

{
  "mcpServers": {
    "accessibility-hub": {
      "command": "npx",
      "args": ["-y", "accessibility-hub"]
    }
  }
}
3

Restart Windsurf

Completely quit and restart Windsurf
4

Verify setup

In Windsurf, ask:
List available MCP tools

Troubleshooting

Solutions:
  1. Create directory structure:
    mkdir -p ~/.codeium/windsurf
    
  2. Verify path (may vary by Windsurf version)
  3. Check Windsurf documentation for config location
Windsurf is built on VSCode but uses Codeium config locations.If issues persist:
  1. Check Windsurf version (may need update)
  2. Verify MCP support is enabled in settings
  3. Check Windsurf logs for errors

Claude Code CLI

Installation

Install Claude CLI if not already installed:
# Install Claude CLI
npm install -g @anthropic-ai/claude-cli

# Verify installation
claude --version

Configuration

1

Add MCP server

claude mcp add accessibility-hub -- npx -y accessibility-hub
The -- separates Claude CLI args from the server command
2

Verify setup

List configured servers:
claude mcp list
You should see:
accessibility-hub: npx -y accessibility-hub
3

Test usage

claude "Analyze the accessibility of https://example.com"

Advanced Usage

Analyze HTML from stdin:
curl https://example.com | claude "Check this HTML for accessibility issues"
#!/bin/bash

# Analyze multiple URLs
urls=(
  "https://example.com/page1"
  "https://example.com/page2"
  "https://example.com/page3"
)

for url in "${urls[@]}"; do
  echo "Analyzing $url..."
  claude "Analyze $url and show only critical issues" > "report-$(basename $url).txt"
done

Troubleshooting

Solutions:
  1. Install Claude CLI:
    npm install -g @anthropic-ai/claude-cli
    
  2. Verify npm global bin is in PATH:
    echo $PATH | grep npm
    
  3. Use full path:
    $(npm bin -g)/claude mcp add accessibility-hub -- npx -y accessibility-hub
    
Solutions:
  1. Test server directly:
    npx -y accessibility-hub --version
    
  2. Remove and re-add:
    claude mcp remove accessibility-hub
    claude mcp add accessibility-hub -- npx -y accessibility-hub
    
  3. Check Claude CLI logs:
    claude mcp logs accessibility-hub
    
Ensure Claude CLI is authenticated:
claude auth login
Follow prompts to authenticate with your Anthropic account

Local Development Setup

For contributing or testing local changes:
1

Clone and build

git clone https://github.com/drzkn/A-I-ccesibility.git
cd A-I-ccesibility
pnpm install
pnpm build
2

Point MCP client to local build

Update your MCP client config:
{
  "mcpServers": {
    "accessibility-hub": {
      "command": "node",
      "args": ["/absolute/path/to/A-I-ccesibility/dist/server.js"]
    }
  }
}
Use absolute path, not relative path or ~
3

Development with watch mode

In the project directory:
pnpm dev
This rebuilds on file changes. Restart your MCP client to pick up changes.
4

Debug with MCP Inspector

pnpm inspect
Opens MCP Inspector for interactive debugging

Proxy and Firewall Configuration

HTTP Proxy

If behind a corporate proxy:
{
  "mcpServers": {
    "accessibility-hub": {
      "command": "npx",
      "args": ["-y", "accessibility-hub"],
      "env": {
        "HTTP_PROXY": "http://proxy.company.com:8080",
        "HTTPS_PROXY": "http://proxy.company.com:8080",
        "NO_PROXY": "localhost,127.0.0.1"
      }
    }
  }
}

Self-Signed Certificates

For internal sites with self-signed certs:
{
  "options": {
    "browser": {
      "ignoreHTTPSErrors": true
    }
  }
}
Only use ignoreHTTPSErrors: true for internal testing, never for public sites.

Verifying Installation

Test Commands

After setup, verify with these test prompts:
What accessibility testing tools do you have?
Expected: List of 5 tools (analyze-with-axe, analyze-with-pa11y, etc.)

Common Issues Checklist

If tools aren’t working:
  • Node.js version ≥ 20
  • Config file JSON is valid
  • Config file is in correct location
  • MCP client fully restarted (quit and reopened)
  • npx works: npx -y accessibility-hub --version
  • Firewall allows outbound HTTPS
  • Chrome/Chromium download completed (first run)

Multi-Client Setup

Using multiple MCP clients? You can configure all of them:
# Claude Desktop
code ~/Library/Application\ Support/Claude/claude_desktop_config.json

# Cursor (project)
mkdir -p .cursor && code .cursor/mcp.json

# Windsurf
code ~/.codeium/windsurf/mcp_config.json

# Claude CLI
claude mcp add accessibility-hub -- npx -y accessibility-hub
All use the same configuration format, so you can copy/paste.

Next Steps

Quickstart

Try your first accessibility analysis

Workflows

Learn common testing workflows

Effective Prompts

Write better accessibility prompts

Troubleshooting

Advanced debugging techniques

Build docs developers (and LLMs) love