Skip to main content
Glama
ComponentPilot MCP

ComponentPilot MCP

ComponentPilot MCP

ComponentPilot is a local STDIO MCP server for finding public UI patterns and source-linked implementations from The Component Gallery. It retrieves cited evidence live; it does not ship a component database or crawl implementation sites during ordinary research.

Install and run

Node.js 22+ and a TinyFish API key are required for live use. Copy .env.example only for local reference; set the key in your MCP client or shell and never commit it.

npm install
export TINYFISH_API_KEY='your_tinyfish_api_key'
npm run build
npm test

Start the compiled server with npm start. MCP messages use standard input/output, so this is not an HTTP server.

Related MCP server: Tessera

How to use it

Ask in ordinary frontend language. Start with find_components, then use the returned catalog component name in follow-up calls. For example: “I need products side by side with previous/next arrows.”

Tools

Research tools: find_components, get_component_examples, find_design_systems, get_accessibility_guidance, compare_implementations, and health_check. They return bounded, cited source metadata and never follow third-party implementation links.

Agent tools: inspect_component_demo validates a source-linked target and queues a TinyFish inspection, returning a run_id immediately. get_component_demo_run retrieves that same run without queuing, retrying, or billing a second run. Run context is held only in memory, so query it from the same ComponentPilot process.

The Agent accepts a source-linked implementation name, URL, or both when they identify the same source record; it never accepts an arbitrary browsing target. Without a selector it returns a structured list of available names. Set selection_mode to "auto" only when the user explicitly asks ComponentPilot to select the first source-backed implementation. Its checks are limited, reversible, and return structured errors or uncertainty rather than invented observations. For Tabs, Tab-key focus alone is not treated as arrow-key, activation, tab-panel, or accessibility evidence.

Evidence and pagination

get_component_examples uses offset pagination. Start with offset: 0, then keep using next_offset while has_more is true. total is the complete normalized source result count, not the current page length.

Every source-derived record carries source_url, retrieved_at, and verification: "source_retrieved". Empty results such as no_match, no_results, and not_published are successful responses. Redirects, stale evidence, source-layout changes, blocks, and unsafe links fail explicitly. A citation proves retrieval, not accessibility, quality, safety, or permission to republish linked content.

Claude Desktop (macOS)

Build first, then add this to Claude Desktop’s MCP configuration. Replace the generic path and key locally; do not put a real key in a repository or chat.

{
  "mcpServers": {
    "componentpilot": {
      "command": "node",
      "args": ["/absolute/path/to/componentpilot-mcp/dist/index.js"],
      "env": { "TINYFISH_API_KEY": "your_tinyfish_api_key" }
    }
  }
}

Restart Claude Desktop after editing the configuration or rebuilding.

Examples

Natural-language discovery prompt:

I need users to browse several products side by side with previous/next arrows. Find verified Component Gallery patterns first, explain the matches with citations, then show implementation examples for the best match.

First examples page:

{ "component": "Carousel", "max_results": 5, "offset": 0 }

Queue an Agent inspection after get_component_examples has returned the implementation:

{
  "component": "Carousel",
  "implementation_name": "Example UI",
  "requested_checks": ["keyboard_navigation"]
}

Check the same run later; this never starts another inspection:

{ "run_id": "the_run_id_returned_by_inspect_component_demo" }

Test

npm test
npm run build

npm run health is an optional live Fetch check and requires TINYFISH_API_KEY. health_check reports server health separately from source reachability and cached-data freshness. It performs one bounded Fetch probe at startup and then at most once per five-minute probe interval (COMPONENTPILOT_HEALTH_PROBE_INTERVAL_MS); concurrent health calls share that probe and never queue a TinyFish Agent run. A failed probe retains, and clearly timestamps, the last successful source data. Do not bypass an access block; update parser code and tests if the Gallery layout changes.

Example Prompts

You don't need to know component names or MCP tool names.

  • "I'm building a dashboard and want users to switch between Profile, Settings, and Activity without leaving the page. What component should I use?"

  • "Compare Ariakit, Headless UI, and Chakra UI tabs for a React project. Which would you recommend?"

  • "Use ComponentPilot to try the live Ariakit Tabs demo. Click between sections and tell me what actually changes."

For more examples, see EXAMPLE_PROMPTS.md.

Available Tools

8 tools
compare_implementationsC

Compare distinct implementation references linked by a component page without crawling third-party sites.

NameRequiredDescriptionDefault
componentYes
source_idNo
max_resultsNo
implementation_namesNo

TDQS

C2.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden, and it only discloses that no third-party crawling occurs. It says nothing about whether the tool is read-only, where the data comes from (cached vs live), rate limits, or what the comparison output looks like.

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?

A single front-loaded sentence with no filler; the constraint is placed usefully at the end. It is concise to the point of under-specification, but nothing in it is wasted.

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

Completeness2/5

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

For a four-parameter tool with zero annotation and zero schema description coverage and no output schema, one sentence is far too thin. An agent lacks the information needed to supply source_id or implementation_names correctly or to know what the comparison returns.

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

Parameters1/5

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

Schema description coverage is 0% across four parameters, so the description must compensate and it does not. None of 'component', 'source_id', 'max_results', or 'implementation_names' is explained — an agent cannot tell what source_id identifies or what implementation_names filters.

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

Purpose3/5

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

The description gives a verb ('compare') and an object ('distinct implementation references linked by a component page'), which tells an agent this is a comparison operation over referenced implementations. However, 'implementation references' is vague about what is actually returned, and the differentiator from siblings like get_component_examples or inspect_component_demo is only implicit.

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

Usage Guidelines2/5

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

There is no explicit when-to-use or when-not-to-use guidance and no naming of alternatives. The only guidance is the negative constraint 'without crawling third-party sites', which hints at scope but doesn't tell an agent when to pick this over get_component_examples or inspect_component_demo.

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

find_componentsA

Dynamically discover verified component types from a configured public catalogue. Use this first to translate a user's natural-language frontend intent (for example, horizontally browsable products) into returned catalog component name(s); do not guess a component name. Returns source citations.

NameRequiredDescriptionDefault
queryYes
source_idNo
max_resultsNo

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses that results are verified and accompanied by source citations and that lookup is 'dynamic' against a configured catalogue, but says nothing about whether the call is read-only, what happens on zero matches, or any catalogue/auth preconditions.

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 with the directive front-loaded ('Use this first'), a useful concrete example, and a short return-value note. No filler or restatement of the tool name.

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 simple three-parameter discovery tool with no output schema, the description covers intent translation and return citations but omits result-count behavior (max_results default/ceiling), empty-result handling, and the meaning of source_id, leaving real gaps for an agent configuring the call.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It clarifies that 'query' is natural-language frontend intent (with a concrete example), and 'configured public catalogue' loosely hints at source_id, but max_results and the length/range constraints on all three parameters are entirely undocumented.

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 uses a specific verb+resource pair ('discover verified component types') and scopes it to a 'configured public catalogue', which separates it from siblings like find_design_systems or get_component_examples. It does not name a sibling explicitly, but the resource is unambiguous.

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 gives clear directive conditions: 'Use this first' establishes ordering relative to the other discovery tools, and 'do not guess a component name' states a negative case. It stops short of naming which sibling to call next (e.g. get_component_examples), so alternatives are only implied.

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

find_design_systemsC

Search design-system names with query and, optionally, filter by a source-published technology tag. Existing query-only technology calls are supported as a documented fallback.

NameRequiredDescriptionDefault
queryNo
source_idNo
technologyNo
max_resultsNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden and does not say whether the tool is read-only, whether source_id is required to obtain technology tags, what the result list looks like, or how max_results interacts with filtering. The phrase "source-published technology tag" is the only behavioral hint, implying tag vocabularies originate from a catalog, but an agent still has to guess at the semantics of a fallback path.

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 compact sentences that lead with the core capability and place the caveat last. Nothing is redundant, though the second sentence's drafting ("Existing query-only technology calls are supported as a documented fallback") is dense and takes effort to parse for what is a simple backward-compatibility note.

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

Completeness2/5

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

For a tool with no annotations, no output schema, and zero parameter documentation, the description is too thin: it omits the role of source_id and max_results, the shape of returned matches, and any statement of read-only safety. The backward-compatibility note is documented but leaves the agent uncertain what the primary calling convention should be.

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

Parameters2/5

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

Schema description coverage is 0% across four parameters, so the description must compensate and largely fails: 'query' is described as name search and 'technology' is loosely explained, but 'source_id' (which clearly scopes the technology vocabulary) and 'max_results' (bounded 1-20, default 10) are not addressed at all. The fallback sentence hints at an interaction between query and technology but never clarifies how the parameters combine.

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 names a specific verb and resource ("Search design-system names") and distinguishes the primary query path from the optional technology filter, which differentiates it from component-level siblings like find_components. It stops short of a crisp statement about what a design system record is, and the trailing fallback sentence muddies rather than sharpens the purpose.

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

Usage Guidelines2/5

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

No guidance on when to pick this tool over siblings such as find_components or compare_implementations; the only usage context is the note that query-only calls with a technology value are a "documented fallback," which signals legacy support but doesn't tell an agent which path to prefer or why. There are no exclusions, prerequisites, or example queries.

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

get_accessibility_guidanceC

Return bounded, cited guidance published in an Accessibility section or relevant published markup/keyboard sections. Returns status not_published when none is available.

NameRequiredDescriptionDefault
componentYes
source_idNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does disclose two useful traits: output is 'bounded' and 'cited', and a 'not_published' status is returned when nothing is found. However, it never states read-only nature, permission or scope requirements, how 'bounded' limits results, or pagination/truncation behavior for a lookup that could return large sections.

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 tight sentences with the primary behavior front-loaded and the edge case second. No filler, though the phrase 'relevant published markup/keyboard sections' is compressed to the point of ambiguity.

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

Completeness2/5

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

With no annotations, no output schema, and 0% parameter documentation, the description should do more. It hints at return shape via 'cited' and 'not_published', but leaves parameter meaning, scope, and result size unexplained for a two-parameter lookup tool.

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

Parameters2/5

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

Schema description coverage is 0% across two parameters, so the description must compensate. It adds no meaning for either: 'component' is never explained (name? ID? path?) and 'source_id' is not mentioned at all, leaving the agent to guess constraints like the 120/60 character limits or whether source_id narrows the lookup.

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 and resource: returns published accessibility guidance, plus the fallback status 'not_published'. An agent can tell this is a documentation-lookup tool, though it never says what 'component' identifies or how it differs from siblings like get_component_examples.

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

Usage Guidelines3/5

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

Usage is implied by the mention of accessibility, markup and keyboard sections, and the 'not_published' fallback tells the agent what happens when nothing exists. There is no explicit when-to-use/when-not guidance and no routing to sibling tools such as find_components or get_component_examples.

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

get_component_demo_runA

Retrieve status or the completed result for an Agent inspection already queued by this ComponentPilot process. This never queues, retries, or bills a second Agent execution. The result-validation context is in memory and unavailable after a server restart.

NameRequiredDescriptionDefault
run_idYes

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does add real behavioral value: it declares the call is non-mutating in effect (no queueing, no retries, no second billing) and warns that result-validation context is in-memory and lost on server restart, which is a non-obvious and consequential constraint. It leaves unexplained whether the call blocks until completion or returns a pending status, and how a missing/expired run_id is reported.

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, each carrying distinct information: what is returned, what side effects do not occur, and a durability caveat. The identifying scope ("already queued") is front-loaded with no filler.

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?

For a single-parameter read tool with no output schema, the description covers the essentials: it names the two return states (status vs. completed result), rules out side effects, and flags the restart limitation. Minor gaps are the enumeration of status values and the not-found case, which matter little given the tool's simplicity.

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 0% for the single run_id parameter, so the description must compensate; it does imply the id is a handle issued by this process's earlier queueing call, but gives no format, expected pattern, or behavior for stale ids. That is partial compensation for a required, undocumented parameter.

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?

Uses a specific verb+resource pair ("Retrieve status or the completed result for an Agent inspection") and scopes it with "already queued by this ComponentPilot process," which implicitly separates it from the queueing sibling inspect_component_demo. It stops short of naming that sibling, so the distinction requires an inference from the word "already queued."

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

Usage Guidelines3/5

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

"already queued" plus "never queues, retries, or bills a second Agent execution" tells the agent this is a follow-up/polling call, not a way to start work. However, no alternative is named explicitly and there is no statement of what to do when run_id is unknown or expired, so usage is implied rather than prescribed.

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

get_component_examplesB

Return one offset-based page of implementations linked by the source component page. Pagination metadata describes the full normalized source-derived result set. Does not invent or crawl external implementation URLs.

NameRequiredDescriptionDefault
offsetNo
componentYes
source_idNo
max_resultsNo

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden and does disclose useful behavior: results are offset-paged, pagination metadata reflects the whole normalized source-derived set rather than just the page, and no external crawling occurs. It leaves unstated what happens with an unknown component, whether results are cached, or how the data is sourced/authored, so gaps remain for a read tool with zero 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?

Three short sentences, front-loaded with the core action, followed by the pagination contract and a scope exclusion. Every sentence carries information, though the final negative sentence reads slightly awkwardly.

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 read tool with no output schema and no annotations, the description establishes the pagination contract well but omits what an 'implementation' record contains, how component relates to source_id, and how page size is controlled. Adequate as a minimum viable definition, but not self-sufficient.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must clarify all four parameters and only partially does: 'offset-based page' explains offset, and 'source component page' loosely ties to component. It never mentions source_id or the max_results page size, and gives no hint about accepted component identifier format or the 1-30 cap.

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 and resource: returns one page of implementations linked by a source component page. An agent can distinguish it from find_components (discovery) and compare_implementations (comparison), though the name/description mismatch between 'examples' and 'implementations' forces a small inference.

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

Usage Guidelines2/5

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

No explicit when-to-use guidance and no named alternatives among siblings like find_components or inspect_component_demo. The only scoping statement, 'Does not invent or crawl external implementation URLs,' constrains the data source rather than telling the agent when this tool is the right choice.

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

health_checkB

Report MCP-server health, bounded source reachability, cached-data freshness, and the latest successful source refresh. A lightweight TinyFish Fetch probe runs only when due; it never queues a paid Agent run.

NameRequiredDescriptionDefault
source_idNo

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It usefully discloses that a lightweight TinyFish Fetch probe runs only when due and never queues a paid Agent run, but it does not state permissions, rate limits, or whether the operation is strictly read-only.

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?

Two sentences, front-loaded with the reporting scope and followed by the key probe-cost behavior. There is no redundant or filler wording.

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?

For a low-complexity health-check tool with one optional parameter and no output schema, the description adequately lists what is reported and clarifies the probe's cost behavior. The main gap is the unexplained source_id parameter.

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

Parameters2/5

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

The single optional source_id parameter has 0% schema description coverage, and the description does not explain what source_id means, how it scopes results, or what happens when it is omitted. The mention of "source reachability" only loosely hints at the parameter.

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 uses a specific verb, "Report," and names the concrete health dimensions: server health, source reachability, cached-data freshness, and latest successful refresh. It is clear what the tool does, though it does not explicitly differentiate itself from siblings, which are unrelated design/component tools.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives, nor any stated prerequisites or exclusions. Usage is only implied by the name and the reporting scope.

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

inspect_component_demoA

Queue a bounded Agent inspection and immediately return its TinyFish run_id; it does not wait for browser execution. Select a source-linked implementation using implementation_name, implementation_url, or both when they identify the same record. If neither selector is supplied, the response lists source-backed implementation names; set selection_mode to auto only when the user explicitly asks ComponentPilot to choose the first source-backed implementation. Arbitrary URLs, credentials, logins, paywall bypasses, and destructive actions are prohibited. Use get_component_demo_run with the returned run_id for status and the final validated result; it retrieves the existing run and never queues, retries, or bills another Agent execution.

NameRequiredDescriptionDefault
componentYes
source_idNo
selection_modeNoexplicit
requested_checksYes
implementation_urlNo
implementation_nameNo

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses asynchronous queueing, the fact that no execution wait occurs, the prohibition on arbitrary URLs, credentials, and destructive actions, and that retrieval never retries or bills another execution. It stops short of stating permission requirements, rate limits, or what happens when both selectors conflict beyond 'same record'.

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?

Front-loaded with the most decision-relevant fact (queues and returns immediately) and ends with the sibling routing sentence, so structure is sound. The middle selector/auto-mode sentence is dense and slightly run-on, but every clause carries operational meaning.

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?

For a 6-parameter tool with no annotations and no output schema, the description covers the essential workflow: what is produced (run_id), what is forbidden, and where to get results next. The main gap is the unaddressed required parameters component and requested_checks, leaving an agent to infer their meaning from the schema names.

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 0%, so the description must compensate, and it only partly does. It clarifies implementation_name/implementation_url pairing and selection_mode semantics, but says nothing about component, source_id, or the requested_checks enum values (tab_click, accordion_toggle, etc.), which remain unexplained from the schema alone.

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?

Names a specific verb and resource ('Queue a bounded Agent inspection') and states the immediate return value (TinyFish run_id) plus the key negative ('does not wait for browser execution'). This clearly separates it from get_component_demo_run, which is described as retrieving an existing run rather than queuing one.

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

Usage Guidelines5/5

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

Explicitly routes the agent: use this to queue, use get_component_demo_run with the returned run_id for status and results. It also gives conditional rules for selector usage and restricts selection_mode=auto to the case where the user explicitly asks ComponentPilot to choose.

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. 8 tool updatesv0.1.0
    • First observedcompare_implementations
    • First observedfind_components
    • First observedfind_design_systems
    • First observedget_accessibility_guidance
    • First observedget_component_demo_run
    • First observedget_component_examples
    • First observedhealth_check
    • First observedinspect_component_demo

TDQS

B3.2/5.0

Scored across 8 tools

Disambiguation4/5

Most tools have clearly distinct purposes: discovery (find_components, find_design_systems), content retrieval (get_component_examples, get_accessibility_guidance), comparison, demo inspection, and health. The closest overlap is between get_component_examples, compare_implementations, and inspect_component_demo, since all deal with source-linked implementations, but descriptions and the explicit queue/poll pairing of inspect_component_demo and get_component_demo_run keep boundaries reasonably clear.

Naming Consistency4/5

The set overwhelmingly follows a consistent verb_noun snake_case pattern (find_components, get_component_examples, compare_implementations, inspect_component_demo, get_component_demo_run). The only minor deviation is health_check, a conventional noun-first name, but it is immediately readable and does not disrupt the pattern.

Tool Count5/5

Eight tools is well-scoped for a component discovery and demo-inspection server. Each tool maps to a distinct workflow step: discovery, examples, design systems, accessibility, comparison, demo queueing, demo retrieval, and health.

Completeness4/5

The surface covers the main lifecycle from component discovery through examples, comparison, and bounded demo inspection, plus design-system search and accessibility guidance. Minor gaps remain: there is no direct tool for retrieving a single component's metadata/details, and design-system search lacks a corresponding detail/retrieval operation.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables coding agents to search and retrieve real production websites, their design systems, and reference components over MCP, so they can study design patterns before writing UI.
    982
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables coding agents to search, inspect, and retrieve real UI components from existing component libraries, with ranked results, score explanations, licence and provenance details, and safe installation plans. It also surfaces similar components and higher-level UI patterns so agents can reuse existing interface code instead of generating it from scratch.
    34 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables coding agents to ground UI work in real product screens by searching a catalogue for concrete screen references and design materials such as fonts, icons, and animated icons, then pulling the colors, typography, components, and provenance behind a chosen web screen. It also serves bundled skill documents, command playbooks, and connection diagnostics so an agent can settle a screen's states and acceptance criteria before building and verify the rendered result afterward.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables coding agents to find real UI screen references and design materials, retrieve recorded design-system details for selected screens, and diagnose catalog access while building product UI.
    MIT