Skip to main content
Glama
This server has been deprecated

Rebranded to ComposeLint AI. Repository has been moved to TechsOneAi/ComposeLintAI.

list_orphans

Read-onlyIdempotent

Identify registered but unused design tokens in a Jetpack Compose project to support cleanup and dead code elimination; read-only, returns orphan token locations.

Instructions

List all orphan tokens (registered but never used).

When to use:
- Call during design system cleanup or dead code elimination.

When NOT to use:
- Do not use to delete tokens directly (must be removed manually or approved).

Side effects:
- None (strictly read-only orphan detection).

Orphan tokens are a sign of design system clutter.
Use this to identify tokens that can be safely removed
or that need to be used in the codebase.

Args:
    project_path: optional — explicit path to project root.

Returns:
    JSON with list of orphan tokens and their locations.

Input Schema

NameRequiredDescriptionDefault
project_pathNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added
  2. Removed
  3. First observedv0.1.0

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the 'None (strictly read-only)' side-effects note largely restates structured data. It does add useful context beyond annotations: that removal must be done manually or approved, and that output is JSON with token locations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Sectioned and front-loaded with the core statement first, so the important part is immediately visible. A few lines do not earn their place, notably the filler sentence 'Orphan tokens are a sign of design system clutter' and a redundant 'Returns' block given an output schema exists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-optional-parameter read-only listing tool, everything an agent needs is present: what the tool returns, when to use it, its non-destructive nature, and the caveat that it cannot remove anything. Output schema and annotations fill the remaining gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the single project_path parameter has no schema description, so the description must carry the load. 'optional — explicit path to project root' conveys optionality and intent, but leaves unstated what happens when omitted (implicit project discovery), so it only partially compensates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List all orphan tokens') and immediately defines the filter in a parenthetical ('registered but never used'), which distinguishes it semantically from the sibling list_tokens. An agent can tell exactly what set of tokens it will get back.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit 'When to use' (design system cleanup, dead code elimination) and 'When NOT to use' (do not expect it to delete tokens) sections give clear context and one exclusion. It stops short of naming a concrete alternative sibling (e.g. list_tokens for all tokens), which would be the 5-level detail.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.