Skip to main content
Glama

workflow_optimize_ux

Analyze and improve user experience by running comprehensive optimization checks for performance, accessibility, usability, mobile responsiveness, and SEO.

Instructions

Run comprehensive UX optimization analysis

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYes
analysesNo

Implementation Reference

  • The main handler function for the 'workflow_optimize_ux' tool. It validates input using OptimizeUXSchema, orchestrates multiple UX analyses (performance, accessibility, usability, mobile, SEO), calculates an overall score, generates recommendations, and returns structured results.
    async optimizeUX(args: any) { const params = OptimizeUXSchema.parse(args); const analyses = params.analyses || ['performance', 'accessibility', 'usability']; try { const results: any = { url: params.url, timestamp: new Date().toISOString(), analyses: {}, recommendations: [], overallScore: 0 }; // Performance Analysis if (analyses.includes('performance')) { results.analyses.performance = await this.analyzePerformance(params.url); } // Accessibility Analysis if (analyses.includes('accessibility')) { results.analyses.accessibility = await this.analyzeAccessibility(params.url); } // Usability Analysis if (analyses.includes('usability')) { results.analyses.usability = await this.analyzeUsability(params.url); } // Mobile Analysis if (analyses.includes('mobile')) { results.analyses.mobile = await this.analyzeMobile(params.url); } // SEO Analysis if (analyses.includes('seo')) { results.analyses.seo = await this.analyzeSEO(params.url); } // Calculate overall score const scores = Object.values(results.analyses).map((a: any) => a.score || 0); results.overallScore = scores.reduce((a, b) => a + b, 0) / scores.length; // Generate recommendations results.recommendations = this.generateUXRecommendations(results.analyses); return { content: [ { type: 'text', text: JSON.stringify(results, null, 2) } ] }; } catch (error: any) { return { content: [ { type: 'text', text: `Error optimizing UX: ${error.message}` } ], isError: true }; } }
  • Zod schema used for input validation in the optimizeUX handler.
    const OptimizeUXSchema = z.object({ url: z.string().url(), analyses: z.array(z.enum(['performance', 'accessibility', 'usability', 'mobile', 'seo'])).optional() });
  • src/index.ts:257-273 (registration)
    Tool registration entry in the ListTools response, defining name, description, and input schema for discovery.
    name: 'workflow_optimize_ux', description: 'Run comprehensive UX optimization analysis', inputSchema: { type: 'object', properties: { url: { type: 'string' }, analyses: { type: 'array', items: { type: 'string', enum: ['performance', 'accessibility', 'usability', 'mobile', 'seo'] } } }, required: ['url'] } },
  • src/index.ts:332-333 (registration)
    Dispatch case in the CallToolRequestHandler switch statement that routes execution to the workflowTools.optimizeUX method.
    case 'workflow_optimize_ux': return await this.workflowTools.optimizeUX(args);
  • Helper method that simulates performance analysis, returning metrics, score, and optimization opportunities. Called by the main handler.
    private async analyzePerformance(url: string): Promise<any> { // Simulate performance analysis return { score: 85, metrics: { firstContentfulPaint: '1.2s', largestContentfulPaint: '2.4s', totalBlockingTime: '150ms', cumulativeLayoutShift: 0.05, speedIndex: '3.2s' }, opportunities: [ 'Reduce JavaScript bundle size', 'Optimize images', 'Enable text compression' ] }; }

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/willem4130/ui-ux-mcp-server'

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