0.0 / 30
Public leaderboard
Public assessment
freema/mcp-design-system-extractor (mcp-design-system-extractor)
What changed in the harness
Selection accuracy 98→100, token cost up 5%, unconfirmed writes 0%→0%.
Category breakdown
Where the score comes from.
Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.
01Safety
02Legibility
27.1 / 30
03Economics
19.8 / 20
04Discoverability
13.1 / 20
Highest-impact fix
Estimated gain +30 pointsAdd explicit identity and permission preflight tools
Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.
Description evidence
Defects and rewrites.
3 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.
| Tool | Defect types | Suggested rewrite |
|---|---|---|
get_component_dependencies |
no_return_description |
Analyze the rendered HTML of a component to discover which other design system components it internally depends on, by detecting React components, web components, and CSS class patterns. Pass the component's story ID (e.g., "example-button--primary") as componentId. Returns the list of component IDs that the given component uses internally. |
get_theme_info |
no_return_description |
Get the design system theme information, including colors, spacing, typography, and breakpoints. Set includeAll=true to also return all CSS custom properties found in the theme (default is false); otherwise returns only the primary theme token groups. Returns the theme values as structured data. |
job_list |
name_restates_behavior no_return_description |
Retrieve all extraction jobs and their current status. Optionally filter by status ("all" default, "active" for queued/running, or "completed" for completed/failed/cancelled). Returns a list of jobs, each showing what it is processing and whether it is still running. |
Selection evidence
Confusable tool pairs.
5 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
get_component_html |
get_component_dependencies |
medium | Both take a componentId and operate on a component's rendered HTML; a task like 'analyze the button's HTML to see what it contains' could route to either, since one returns raw markup and the other analyzes the same HTML for embedded components and CSS patterns. |
list_components |
search_components |
high | Both are component-discovery tools with overlapping semantics (category filter vs. text/purpose query); a request like 'find all button components' or 'show me the modal components' can be plausibly satisfied by either, so an agent may pick the wrong one. |
job_status |
job_list |
medium | Both report job status; a task like 'check the status of my async jobs' is ambiguous between polling a single job_id (job_status) and listing all jobs with their status (job_list), especially when multiple jobs exist. |
get_component_html |
get_external_css |
medium | Both can yield component CSS: get_component_html offers an includeStyles extraction option while get_external_css extracts styles/tokens from a CSS URL, so 'extract the CSS/styles for this component' may be routed to either. |
get_theme_info |
get_external_css |
medium | Both surface design tokens/theme data (colors, spacing, typography); a task like 'get the design tokens or theme for the design system' is ambiguous between the built-in theme tool and the external-CSS token extractor. |
Compare the field