We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/yashpreetbathla/mcp-accessibility-bridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
<svg xmlns="http://www.w3.org/2000/svg" width="900" height="420" font-family="monospace,sans-serif">
<rect width="900" height="420" fill="#0d1117"/>
<text x="450" y="38" text-anchor="middle" fill="#58a6ff" font-size="20" font-weight="bold">Claude + MCP Bridge Workflow</text>
<text x="450" y="60" text-anchor="middle" fill="#8b949e" font-size="12">From natural language prompt → production-ready test selectors</text>
<!-- Steps -->
<!-- Step 1 -->
<rect x="30" y="90" width="150" height="80" rx="8" fill="#161b22" stroke="#7ee787" stroke-width="2"/>
<text x="105" y="120" text-anchor="middle" fill="#7ee787" font-size="13" font-weight="bold">1. Prompt</text>
<text x="105" y="142" text-anchor="middle" fill="#8b949e" font-size="10">"Generate tests</text>
<text x="105" y="158" text-anchor="middle" fill="#8b949e" font-size="10">for login page"</text>
<line x1="180" y1="130" x2="220" y2="130" stroke="#58a6ff" stroke-width="2" marker-end="url(#a)"/>
<!-- Step 2 -->
<rect x="220" y="90" width="150" height="80" rx="8" fill="#161b22" stroke="#58a6ff" stroke-width="2"/>
<text x="295" y="115" text-anchor="middle" fill="#58a6ff" font-size="13" font-weight="bold">2. Connect</text>
<text x="295" y="137" text-anchor="middle" fill="#8b949e" font-size="10">browser_connect</text>
<text x="295" y="153" text-anchor="middle" fill="#8b949e" font-size="10">browser_navigate</text>
<line x1="370" y1="130" x2="410" y2="130" stroke="#58a6ff" stroke-width="2" marker-end="url(#a)"/>
<!-- Step 3 -->
<rect x="410" y="90" width="150" height="80" rx="8" fill="#161b22" stroke="#d2a8ff" stroke-width="2"/>
<text x="485" y="115" text-anchor="middle" fill="#d2a8ff" font-size="13" font-weight="bold">3. Inspect</text>
<text x="485" y="137" text-anchor="middle" fill="#8b949e" font-size="10">get_ax_tree</text>
<text x="485" y="153" text-anchor="middle" fill="#8b949e" font-size="10">get_interactive_elements</text>
<line x1="560" y1="130" x2="600" y2="130" stroke="#58a6ff" stroke-width="2" marker-end="url(#a)"/>
<!-- Step 4 -->
<rect x="600" y="90" width="150" height="80" rx="8" fill="#161b22" stroke="#ffa657" stroke-width="2"/>
<text x="675" y="115" text-anchor="middle" fill="#ffa657" font-size="13" font-weight="bold">4. Generate</text>
<text x="675" y="137" text-anchor="middle" fill="#8b949e" font-size="10">selectorGenerator</text>
<text x="675" y="153" text-anchor="middle" fill="#8b949e" font-size="10">4-priority engine</text>
<line x1="750" y1="130" x2="790" y2="130" stroke="#58a6ff" stroke-width="2" marker-end="url(#a)"/>
<!-- Step 5 -->
<rect x="790" y="90" width="80" height="80" rx="8" fill="#161b22" stroke="#f78166" stroke-width="2"/>
<text x="830" y="118" text-anchor="middle" fill="#f78166" font-size="12" font-weight="bold">5. Test</text>
<text x="830" y="140" text-anchor="middle" fill="#8b949e" font-size="10">Ready!</text>
<text x="830" y="158" text-anchor="middle" fill="#8b949e" font-size="9">✓ 4 frameworks</text>
<!-- Before/After comparison -->
<rect x="30" y="220" width="400" height="170" rx="8" fill="#161b22" stroke="#f78166" stroke-width="1.5"/>
<text x="230" y="245" text-anchor="middle" fill="#f78166" font-size="14" font-weight="bold">Before (Traditional)</text>
<text x="50" y="268" fill="#8b949e" font-size="11">// Brittle — breaks on CSS refactor</text>
<text x="50" y="288" fill="#e6edf3" font-size="11">page.click('.btn-primary.js-sign-btn');</text>
<text x="50" y="316" fill="#8b949e" font-size="11">// Brittle — breaks if ID renamed</text>
<text x="50" y="336" fill="#e6edf3" font-size="11">page.click('#login_field');</text>
<text x="50" y="364" fill="#8b949e" font-size="11">// Brittle — breaks on DOM restructure</text>
<text x="50" y="384" fill="#e6edf3" font-size="11">page.click('form > div:nth-child(2) > input');</text>
<rect x="460" y="220" width="410" height="170" rx="8" fill="#161b22" stroke="#7ee787" stroke-width="1.5"/>
<text x="665" y="245" text-anchor="middle" fill="#7ee787" font-size="14" font-weight="bold">After (MCP-Generated)</text>
<text x="480" y="268" fill="#8b949e" font-size="11">// Stable — tied to semantic purpose</text>
<text x="480" y="288" fill="#7ee787" font-size="11">page.getByRole('button', { name: 'Sign in' });</text>
<text x="480" y="316" fill="#8b949e" font-size="11">// Stable — ARIA role survives redesigns</text>
<text x="480" y="336" fill="#7ee787" font-size="11">page.getByRole('textbox', { name: 'Username' });</text>
<text x="480" y="364" fill="#8b949e" font-size="11">// Stable — test ID never changes</text>
<text x="480" y="384" fill="#7ee787" font-size="11">page.getByTestId('search-input');</text>
<defs>
<marker id="a" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto">
<path d="M0,0 L0,6 L8,3 z" fill="#58a6ff"/>
</marker>
</defs>
</svg>