Ply UI
Server Details
List, search, and inspect Ply Angular + Tailwind copy-in components.
- Status
- Healthy
- Uptime
- 100.0% over 39 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- ply-ui-ng/ply
- GitHub Stars
- 10
- Server Listing
- Ply UI
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 3 tools
Each tool has an explicitly distinct retrieval strategy: get_component for a single known name, list_components for tier/category/substring filtering, and search_components for fuzzy/token ranking. Descriptions cross-reference each other and even warn against misuse (e.g., 'not a fuzzy match', 'not a category browse'), leaving no realistic overlap.
All three tools follow the same snake_case verb_noun pattern (get_/list_/search_ + components), sharing a single resource domain. Predictable and readable throughout.
Three tools is minimal but each covers a genuinely distinct lookup mode (known name, filtered browse, fuzzy search) with no redundancy. It sits at the low end of the well-scoped range, but the deliberate exclusion of install/write operations keeps the set from feeling artificially thin.
The read-only registry surface (list, search, get metadata, optional free source) is fully covered for discovery. The only apparent gap is component installation, which is deliberately delegated to the external CLI (npx ply-ui-cli add) rather than exposed as an MCP tool, so agents hit a documented handoff rather than a dead end.
Available Tools
3 toolsget_componentGet component detailsARead-onlyIdempotentInspect
Get registry metadata for one known component (deps, category, file list). Use search_components when the name is uncertain. Free source only when includeSource=true. Pro source is never streamed via MCP. Does not install; returns installCommand (npx ply-ui-cli add ).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Registry component name (e.g. button, card) | |
| includeSource | No | If true, include free-tier source file contents. Pro source is never returned via MCP in V1. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds substantive behavior beyond them: free-tier source is gated behind includeSource=true, Pro source is never streamed via MCP, and the tool does not install anything but returns an installCommand. Those are exactly the non-obvious traits an agent needs before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with purpose before the alternative-tool routing and the source-tier caveats. Dense and mostly waste-free, though the telegraphic phrasing ('Free source only when includeSource=true') costs a bit of readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the return-value burden and does so: it lists the metadata fields returned and specifically calls out installCommand. Combined with the source-tier and no-install caveats, an agent has everything needed to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema already spells out both parameters, including that Pro source is never returned via MCP in V1. The description's note about includeSource largely restates that, so it adds little semantic value beyond the structured field. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get registry metadata for one known component') and immediately enumerates what that metadata contains (deps, category, file list). It explicitly separates itself from the sibling search_components by the condition of name certainty, so an agent can pick between the two without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the alternative tool explicitly ('Use search_components when the name is uncertain') and gives the selecting condition. It also implicitly scopes usage to known names via 'one known component', leaving no ambiguity about the lookup-vs-search split.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_componentsList Ply componentsARead-onlyIdempotentInspect
List Ply registry components filtered by tier, category, or a case-insensitive substring, sorted by name. Not a fuzzy match: search_components ranks uncertain names, and get_component reads one known name. Does not install. To copy a component into a project, tell the user to run npx ply-ui-cli add .
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Substring filter on name, description, usage, or keywords (case-insensitive) | |
| tier | No | Filter by license tier | all |
| category | No | Filter by registry category |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral boundaries beyond the annotations: results are sorted by name, matching is not fuzzy, and installation must be done with the external CLI command.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and filtering behavior, then uses short sentences to route the agent to alternatives and clarify the install boundary. There is no redundant or wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter list tool with full schema coverage and safety annotations, the description covers selection, filtering, sorting, and the non-install boundary well. It does not describe the exact shape of returned component records, which is a minor gap because no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema fully documents q, tier, and category including enums and defaults. The description mentions the filter dimensions but adds no syntax or format details beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: it lists Ply registry components, with filters and name sorting. It also explicitly distinguishes this tool from search_components and get_component, so an agent can select it without opening sibling schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states when to use this tool versus alternatives: search_components for uncertain or fuzzy names, get_component for one known component, and the CLI add command for copying into a project. It also explicitly says this tool does not install.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_componentsSearch Ply componentsARead-onlyIdempotentInspect
Rank Ply registry components by a fuzzy or token match when the name is uncertain (for example "dialog modal"). Not a category browse: list_components filters by tier, category, or substring, and get_component reads one known name. Does not install. To copy a match into a project, tell the user to run npx ply-ui-cli add (or local stdio add_components).
| Name | Required | Description | Default |
|---|---|---|---|
| tier | No | Filter by license tier | all |
| limit | No | Maximum ranked matches to return (1-40). Defaults to 12. | |
| query | Yes | Natural-language or substring query (e.g. "dialog modal", "button"). Matches name, description, usage, and keywords. | |
| category | No | Filter by registry category |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, open-world behavior; the description adds the valuable negative guarantee "Does not install" and points to the correct mechanism for the mutating step (npx ply-ui-cli add or add_components). It doesn't say how ranking or tie-breaking works or whether results are paginated, which keeps it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, zero filler: purpose and match mode first, sibling differentiation second, side-effect and follow-up action last. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param search tool with full schema coverage and rich annotations, nothing an agent needs to choose and invoke it correctly is missing; result ordering is implied by "rank" and no output schema exists to explain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the query param's natural-language/substring semantics and the limit range, so the schema already carries parameter meaning. The description only echoes the query example ("dialog modal") and says nothing about tier or category beyond what the enum descriptions provide, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Rank Ply registry components") plus the matching mode (fuzzy or token match), and explicitly contrasts itself with list_components and get_component by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives the trigger condition ("when the name is uncertain"), an example query, explicit exclusions ("Not a category browse"), and names both alternative tools with their respective use cases. Also covers the downstream action: instruct the user to run the CLI add command.
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 tool update
- Changed
search_components1 field changed- added
Input schema / properties / limit / descriptionAdded value: +"Maximum ranked matches to return (1-40). Defaults to 12."
3 tool updates
- First observed
get_component - First observed
list_components - First observed
search_components
Related MCP Connectors
Find, read and install shadcn components with Salesforce Lightning's look, for Radix and Base UI.
Browse, inspect and render Jetpack Compose Material 3 and Wear component catalogs.
Search, read and add Frontic UI's Vue components for commerce storefronts.
Find UI components and themes, retrieve code, and generate with hosted 21st AI when enabled.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceSearch, inspect and install the 21 free MIT components of Marvelous UI (framework-agnostic Web Components and CSS) and their design tokens into a project. Runs locally over stdio with no network calls.1MIT
- AlicenseAqualityBmaintenanceSearch, view, add, diff and update labsUI React components in a Next.js + Tailwind v4 project, and check its setup with doctor. Components are copied into your repo as plain TSX you own.471MIT
- AlicenseNot gradedqualityCmaintenanceEnables agents to search a fully local catalog of 21st-style shadcn components via full-text search, inspect individual records, generate reusable build prompts, retrieve install steps, and fetch design tokens for aesthetic keywords. Runs entirely offline over stdio with no API keys, paywalls, or rate limits.Apache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables dynamic exploration of Angular library components by reading and analyzing the public API exports. Provides tools to list available components and retrieve detailed component information.-
Glama MCP Gateway
Add one secure layer between your agents and this server.