{"name":"io.github.uxloom-dev/uxloom","slug":"uxloom-dev-uxloom","title":null,"description":"Agent-native UI/UX design validation: journey completeness, state coverage, and WCAG checks.","url":"https://mcp.market/server/uxloom-dev-uxloom","rating":null,"grade":"B","score":78,"certified":false,"status":"active","category":"ai","tags":["ai","media"],"presence":{"score":25,"stars":1,"forks":0,"downloads_week":56,"last_push_at":"2026-08-09T17:02:13.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/uxloom-dev/uxloom","website":"https://uxloom.dev","version":"0.14.0","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"uxloom","version":"0.14.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Path to the project file (default: ./uxloom.project.json in the working directory)","format":"string","name":"UXLOOM_PROJECT"}]}],"tools":[{"name":"brief_answer","description":"Submit brief answers. Unanswered fields take researched defaults and are recorded in the assumption ledger (auditable, reversible).","write_action":true,"price_micros":0,"input_schema":null},{"name":"brief_start","description":"Start a design brief. Returns a structured questionnaire. Answer every question you can yourself — from the provided context document (PRD, spec) first, then conversation context; only relay questions marked askHuman:true to the user. Then call brief_answer.","write_action":false,"price_micros":0,"input_schema":null},{"name":"comment_context","description":"The full work packet for one reviewer comment: the comment, the exact layout block its pin lands on, the complete screen definition (contract, components, layout, rationale, exemptions), every journey state referencing that screen with its transitions, and the current validation findings scoped to that screen. Use it to address the comment precisely, then call comment_resolve.","write_action":false,"price_micros":0,"input_schema":null},{"name":"comment_resolve","description":"Resolve a reviewer comment after addressing it. The resolution note is shown to the reviewer and persisted; the pin clears live in every open preview. Never resolve without actually making the change.","write_action":false,"price_micros":0,"input_schema":null},{"name":"comments_list","description":"Reviewer comments from the preview, with lifecycle status. Comments the reviewer clicked \"→ agent\" on are ASSIGNED — they are your work queue: call comment_context for each (assigned first, then open), make the change, then comment_resolve. Check this at session start and after every validation run.","write_action":false,"price_micros":0,"input_schema":null},{"name":"coverage_report","description":"The demo number: screens delivered vs. states the journeys actually need. Returns per-screen coverage and the missing-state list.","write_action":false,"price_micros":0,"input_schema":null},{"name":"design_audit","description":"Reverse bridge (RFC 0007): audit a design export against the contract. Point it at a Figma/Penpot SVG or JSON export, a folder of them, or a uxloom `--manifest` index.json. Recovers screen×state from frame names (grammar \"<Screen> / <state>\", or the manifest) and reports which required screens/states have no frame: design-screen-unmapped, design-state-missing, design-frame-unmapped. Optional scaff","write_action":false,"price_micros":0,"input_schema":null},{"name":"design_review","description":"One iterative design-review round (max 3 per project — enforced). Computes validation + rationale coverage, persists the round with deltas to <project>.reviews.json, and returns a structured rubric to critique the design against: completeness, evidence, consistency, market fit, accessibility, honesty. Address the rubric, improve the design, then call again. Round 4 is refused: present results to t","write_action":false,"price_micros":0,"input_schema":null},{"name":"journey_define","description":"Add or replace a journey (a state machine: states reference screens, events move between states). Screens referenced here must be registered via screen_register before project_validate passes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"palette_check","description":"Check a design system's color pairs against WCAG 2.2 AA (4.5:1) before any screens exist. Reports each pair's exact ratio, pass/fail, and thin-margin passes (under 5.0:1) that one shade lighter would break.","write_action":false,"price_micros":0,"input_schema":null},{"name":"project_audit","description":"Audit the implementation against the design contract (drift detection). Static tiers: the uxloom.map.json screen registry and data-ux-screen/data-ux-state markers in source. Returns per-state verdicts (implemented with file:line evidence / unimplemented / unproven) and findings with fixes. When implementing screens from the contract, emit data-ux-state markers so the code stays self-auditing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"project_export","description":"Return the complete current project document (for inspection, backup, or transformation before a project_import).","write_action":false,"price_micros":0,"input_schema":null},{"name":"project_import","description":"Replace the whole project in one call: journeys and screens together. Prefer this over many journey_define/screen_register calls when registering a complete or large design. Validates the full document; unknown fields are rejected.","write_action":false,"price_micros":0,"input_schema":null},{"name":"project_init","description":"Create a new UXLoom project file (uxloom.project.json). Run once per product.","write_action":true,"price_micros":0,"input_schema":null},{"name":"project_validate","description":"Run every critic: journey completeness (unreachable states, dead ends, broken transitions), state coverage, WCAG contrast, touch targets, text expansion — plus fragment-merge errors and open reviewer comments from the preview. Honors uxloom.config.json thresholds. Iterate until errors = 0 and reviewer comments are addressed.","write_action":true,"price_micros":0,"input_schema":null},{"name":"screen_critique","description":"Findings scoped to a single screen. Use during iteration on one screen.","write_action":false,"price_micros":0,"input_schema":null},{"name":"screen_register","description":"Add or replace a screen: its intent, requiredStates (the contract), designedStates (progress), and components with colors/labels/target sizes for the critics.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":78,"grade":"B","scanned_at":"2026-09-23T21:40:59.283Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-23T21:40:59.270Z","components":{"code":{"score":20,"max":25,"notes":["49 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":12,"max":15,"notes":["last push 45 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"dist/optional-browser.js: …ime via an * indirect dynamic import (`new Function(\"return import(...)\")()`), so tsc * nev…"}],"inputs":{"packages":[{"registryType":"npm","identifier":"uxloom","version":"0.14.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":4,"publishedAt":"2026-08-09T15:52:21.854Z","repositoryUrl":"git+https://github.com/uxloom-dev/uxloom.git","weeklyDownloads":56}],"repo":{"found":true,"owner":"uxloom-dev","repo":"uxloom","archived":false,"pushedAt":"2026-08-09T17:02:13Z","stars":1,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/302799502?v=4","ownerCreatedAt":"2026-07-12T09:14:18Z","license":"MIT"},"icon":{"url":"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='6' fill='%23131614'/%3E%3Cpath d='M6 8v10c0 4 3 7 7 7M13 8v10c0 4 3 7 7 7M20 8v10c0 4 3 7 6 7' stroke='%23d9a441' stroke-width='2.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E","source":"site"},"presence":{"stars":1,"forks":0,"downloadsWeek":56,"license":"MIT","lastPushAt":"2026-08-09T17:02:13.000Z","score":25}}}},"grade_history":[],"reviews":[]}