list_profiles
Retrieve available assistive-technology profiles for scoring. Use the returned profile IDs with analysis tools to evaluate navigation difficulty for specific screen reader and platform combinations.
Instructions
List the assistive-technology (AT) profiles available for scoring. Each profile models a specific screen reader and platform — e.g., NVDA on Windows, VoiceOver on iOS — with its own navigation cost weights and action vocabulary. Returns an array of {id, name, platform, description} for each profile.
Read-only, no parameters, static data. Call once to discover valid profile IDs, then pass a profile ID to analyze_url, trace_path, or analyze_pages. Default profile for all analysis tools is 'generic-mobile-web-sr-v0' if none is specified.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/mcp/tools/list-profiles.ts:4-40 (handler)MCP tool handler for 'list_profiles'. Registers the tool on the MCP server. Calls listProfiles() and getProfile() from the profiles module to fetch all registered AT profiles and returns them as a JSON array with id, name, platform, and description.
export function registerListProfiles(server: McpServer): void { server.registerTool( "list_profiles", { description: "List the assistive-technology (AT) profiles available for scoring. " + "Each profile models a specific screen reader and platform — e.g., NVDA on Windows, " + "VoiceOver on iOS — with its own navigation cost weights and action vocabulary. " + "Returns an array of {id, name, platform, description} for each profile.\n\n" + "Read-only, no parameters, static data. Call once to discover valid profile IDs, " + "then pass a profile ID to analyze_url, trace_path, or analyze_pages. " + "Default profile for all analysis tools is 'generic-mobile-web-sr-v0' if none is specified.", inputSchema: {}, }, async () => { const profiles = listProfiles(); const details = profiles.map((id) => { const p = getProfile(id); return { id, name: p?.name ?? id, platform: p?.platform ?? "unknown", description: p?.description ?? "", }; }); return { content: [ { type: "text" as const, text: JSON.stringify(details, null, 2), }, ], }; }, ); } - src/mcp/tools/list-profiles.ts:7-17 (schema)Input schema for the 'list_profiles' tool. Accepts no parameters (inputSchema: {}).
{ description: "List the assistive-technology (AT) profiles available for scoring. " + "Each profile models a specific screen reader and platform — e.g., NVDA on Windows, " + "VoiceOver on iOS — with its own navigation cost weights and action vocabulary. " + "Returns an array of {id, name, platform, description} for each profile.\n\n" + "Read-only, no parameters, static data. Call once to discover valid profile IDs, " + "then pass a profile ID to analyze_url, trace_path, or analyze_pages. " + "Default profile for all analysis tools is 'generic-mobile-web-sr-v0' if none is specified.", inputSchema: {}, }, - src/mcp/index.ts:36-36 (registration)Registration call that wires registerListProfiles into the MCP server creation.
registerListProfiles(server); - src/mcp/index.ts:13-13 (registration)Import of the registerListProfiles function from the tools/list-profiles module.
import { registerListProfiles } from "./tools/list-profiles.js"; - src/profiles/index.ts:28-30 (helper)The core listProfiles() helper that returns all registered profile IDs from the internal profileRegistry Map.
export function listProfiles(): string[] { return [...profileRegistry.keys()]; }