Skip to main content
Glama

Ply UI

Server Details

List, search, and inspect Ply Angular + Tailwind copy-in components.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
ply-ui-ng/ply
GitHub Stars
10
Server Listing
Ply-ui

TDQS

A3.9/5.0

Scored across 3 tools

Disambiguation4/5

get_component (single item metadata), list_components (browse with filters), and search_components (fuzzy name lookup) have largely distinct purposes, but list_components' name-substring filter overlaps with search_components' token search, which could cause misselection when an agent wants to find a component by name.

Naming Consistency5/5

All three tools follow a clean, predictable verb_noun snake_case pattern: get_component, list_components, search_components. The pluralization on the collection tools is sensible and consistent.

Tool Count3/5

Three tools is on the thin side for a component registry, and the read-only surface leaves little room for anything beyond discovery. It is defensible for a deliberately narrow read-only MCP, but borderline.

Completeness3/5

The registry is browsable and searchable, but the surface is read-only: there is no actual install/add tool, and the descriptions reference an 'add_components' local stdio tool and a CLI command instead. Agents hit a dead end whenever the user wants to actually add a component.

Available Tools

3 tools
get_componentGet component detailsA
Read-onlyIdempotent
Inspect

Get registry metadata for one component (deps, category, file list). Free source only when includeSource=true. Pro source is never streamed via MCP. Does not install; returns installCommand (npx ply-ui-cli add ).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesRegistry component name (e.g. button, card)
includeSourceNoIf true, include free-tier source file contents. Pro source is never returned via MCP in V1.

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations: free-tier source is gated on includeSource, pro source is never streamed over MCP, and rather than installing it returns an installCommand with its syntax. These are exactly the operational constraints an agent needs and cannot infer from readOnly/idempotent hints.

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

Conciseness5/5

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

Three tight sentences, front-loaded with the core purpose, then conditional behavior, then the explicit non-install contract. No filler or redundancy.

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

Completeness4/5

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

With no output schema, the description usefully names a return field (installCommand) and the tier constraints on source. It could say a bit more about the metadata shape, but for a small two-parameter read tool it is essentially complete.

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 description coverage is 100%, so both parameters are already documented, and the description's 'Free source only when includeSource=true' largely restates the schema. Baseline 3 is appropriate since it adds little syntax or format detail beyond the schema.

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?

Specific verb+resource ('Get registry metadata for one component') with an enumerated payload (deps, category, file list). The singular scope clearly contrasts with the list_components and search_components siblings.

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?

Gives clear triggering context via the includeSource=true conditional and states what the tool does NOT do (does not install). It does not explicitly route to list_components/search_components, so it stops short of full when/when-not/alternatives coverage.

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

list_componentsList Ply componentsA
Read-onlyIdempotent
Inspect

List components from the Ply registry. Filter by tier (free|pro|all), category, or name substring. Does not install anything. To copy a component into a project, tell the user to run npx ply-ui-cli add .

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoSubstring filter on name, description, usage, or keywords (case-insensitive)
tierNoFilter by license tierall
categoryNoFilter by registry category

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds the useful boundary that nothing is installed, but says nothing about result volume, pagination, or ordering, which matters for an open-world registry listing.

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

Conciseness5/5

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

Three short sentences, front-loaded with the action, then filters, then the critical exclusion. No filler and nothing buried.

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

Completeness3/5

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

With no output schema and a registry-backed open-world tool, the description leaves the return shape (fields, pagination, whether the list is exhaustive) unspecified. It is adequate for calling the tool, but not complete for interpreting results or disambiguating from search_components.

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 description coverage is 100%, so all three filters are already documented in the schema, including enum values. The description's mention of tier values and name-substring filtering mostly restates the schema, putting it at the baseline for high coverage.

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

Purpose4/5

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

States a specific verb+resource ('List components from the Ply registry') and enumerates the filter dimensions, so the agent knows exactly what the tool returns. It does not, however, differentiate itself from the sibling search_components, which the 'name substring' filter wording suggests may overlap with.

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?

Explicitly scopes the tool as read-only browsing ('Does not install anything') and routes the install use case to the external CLI command. What's missing is guidance on when to pick this over get_component or search_components, which is the most likely selection ambiguity given the siblings.

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

search_componentsSearch Ply componentsA
Read-onlyIdempotent
Inspect

Fuzzy / token search over registry component names (e.g. "dialog", "sheet", "carousel"). Does not install anything. Prefer this before guessing names, then give the user npx ply-ui-cli add (or local stdio add_components).

ParametersJSON Schema
NameRequiredDescriptionDefault
tierNoFilter by license tierall
limitNo
queryYesNatural-language or substring query (e.g. "dialog modal", "button"). Matches name, description, usage, and keywords.
categoryNoFilter by registry category

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/idempotentHint/non-destructive, so safety is covered structurally. The description adds genuinely useful context beyond them: it is a search/discovery operation that 'does not install anything', which prevents the agent from treating it as a mutating action and routes installation to add_components. It does not describe pagination or result shape, but that is a minor gap against the annotation coverage.

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?

Two densely packed sentences that front-load the core action and then the recommended follow-up workflow, with no filler. Slightly compressed/chained phrasing, but every clause earns its place.

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

Completeness3/5

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

For a 4-parameter, 75%-covered search tool with no output schema, the description covers purpose and workflow but says nothing about what the results look like (e.g. scores, matched fields), which it would need to compensate for since no output schema exists. Adequate but with a visible gap.

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 description coverage is high (75%), with the query, tier, limit, and category parameters already documented or enum-constrained in the schema. The description only adds token/fuzzy matching behavior via its examples, contributing little beyond the schema. Baseline 3 is appropriate where the schema does the heavy lifting.

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

Purpose4/5

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

The description gives a specific verb and resource ('Fuzzy / token search over registry component names') plus concrete examples ('dialog', 'sheet', 'carousel') that make the target unambiguous. It clarifies it is discovery-only ('Does not install anything'), separating it from an install action, but never names or contrasts the sibling tools get_component and list_components, so sibling differentiation is incomplete.

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?

It states a clear usage condition and follow-up workflow: 'Prefer this before guessing names, then give the user npx ply-ui-cli add <name> (or local stdio add_components).' This tells the agent both when to reach for this tool and what to do with the result. It stops short of naming when to use get_component or list_components instead, so alternatives are not fully covered.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updates
    • First observedget_component
    • First observedlist_components
    • First observedsearch_components

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.