PCFHub
Server Details
Find Power Apps PCF controls, read their docs, and validate pcfhub.json manifests.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 8 tools
Each tool has a fairly distinct role: list_components browses/filters the catalog, search does full-text discovery, and get_component fetches full detail for one control. The main soft overlap is list_components vs search (browse vs query) and get_component's optional release history vs list_releases, but the descriptions make the boundaries reasonably clear.
Names follow a consistent verb_noun snake_case pattern (get_component, list_components, list_doc_sections, get_doc_page, list_releases, list_taxonomy, validate_manifest). The lone bare verb 'search' without a noun is a minor deviation but still readable and unambiguous.
Eight tools is well within the ideal 3-15 range and every tool earns its place, covering discovery, detail, docs, releases, taxonomy and validation without redundancy. The set is tightly scoped to a catalog/documentation server.
The read-only surface covers discovery (list_components, search), detail (get_component), documentation (list_doc_sections, get_doc_page), releases, taxonomy and a pre-release validate_manifest. Minor gaps remain, such as querying all releases or doc pages for a single control, but agents can work around these via get_component.
Available Tools
8 toolsget_componentGet a PCF controlARead-onlyIdempotentInspect
Everything about one control by its slug: what it does, its control type, license and repository, the current release's properties (name, type, usage, required, description) and download links for its solutions. Optionally includes the release history and related controls.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The control's slug, e.g. "pcf-tag-list". | |
| version | No | A specific release. Defaults to the latest stable one. | |
| include_related | No | Also return similar controls. Costs an extra query; leave off unless needed. | |
| include_versions | No | Also return every release. Costs an extra query; leave off unless needed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, covering the safety profile. The description adds that include_related and include_versions 'cost an extra query,' which is useful performance context, but it doesn't disclose pagination, rate limits, or response structure beyond listing fields.
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?
A single dense sentence front-loads the primary resource and scope, then lists returned fields. No waste, no repetition.
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 read-only lookup tool with annotations covering safety and a fully documented schema, the description is nearly complete. It omits default behavior for version and pagination details, but these are minor for this tool type.
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 coverage is 100%, so all four parameters are already documented in the schema. The description adds only that include_related and include_versions are optional extras with cost, which is marginal added value over the schema's own descriptions.
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 states a specific verb (get) and resource (one control by slug), and enumerates exactly what comes back: what it does, control type, license, repository, release properties, and download links. This clearly distinguishes it from list_components and search.
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?
The word 'one control by its slug' implies single-item lookup versus the list_components sibling, and the description clarifies what optional inclusions do. However, it doesn't explicitly say when to use this versus list_components or get_doc_page.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_doc_pageRead a documentation pageARead-onlyIdempotentInspect
Read one documentation section of a control as Markdown — installation steps, canvas or model-driven configuration, examples, limitations. Use list_doc_sections first to see which sections exist.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The control's slug, e.g. "pcf-tag-list". | |
| section | Yes | Which section to read. | |
| version | No | Documentation pinned to a specific release. Defaults to the current documentation. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint, idempotentHint), so the bar is lower. The description still adds useful behavior beyond the schema: the response is Markdown and covers exactly one section, which matters because there is no output schema. It does not discuss pagination or size limits, so not 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?
Two sentences, both earning their place: the first defines scope and output format, the second routes to the discovery tool. The most decision-relevant information is front-loaded.
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?
With no output schema, the description usefully declares the return format (Markdown) and single-section scope, and the schema fully covers parameters. The version-pinning behavior is only in the schema, and no return-size or error behavior is mentioned, so it is strong but not exhaustive.
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%, so slug, section, and version are already documented in the schema, including the enum and the version default. The description's mention of installation/canvas/model-driven/examples/limitations loosely mirrors enum members but adds no syntax or format detail. 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 (Read) and resource (one documentation section of a control) plus the return format (Markdown) and enumerates the kinds of content returned. It is clearly distinguishable from list_doc_sections, which it names explicitly.
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 an explicit prerequisite routing rule: 'Use list_doc_sections first to see which sections exist.' This tells the agent how to discover valid section values before calling. It stops short of stating when not to use the tool or naming a sibling for a conflicting case, so it is not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_componentsList PCF controlsARead-onlyIdempotentInspect
Browse the PCFHub catalog with optional filters: a text query, category slug, tag slugs, author slug and control type. Paged; returns each control's slug, name, tagline, control type, latest version and URL. Use list_taxonomy to discover valid category, tag and author slugs.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Defaults to 1. | |
| sort | No | Defaults to relevance when there is a query, newest otherwise. | |
| tags | No | Tag slugs, from list_taxonomy. A control must carry every tag given. | |
| query | No | Words to match against names, taglines and descriptions. | |
| author | No | An author slug, from list_taxonomy. | |
| category | No | A category slug, from list_taxonomy. | |
| per_page | No | Defaults to 24; at most 48. | |
| control_type | No | field binds one column on a form; dataset renders a view; virtual is a React control; grid_customizer changes how an editable grid renders cells. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so safety is covered. The description adds genuine behavioral context beyond that: it notes results are paged and enumerates the returned fields (slug, name, tagline, control type, latest version, URL), which matters because there is no output schema.
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 sentences, front-loaded with the action and filters, then pagination/return shape, then the related-tool pointer. No filler, though the filter enumeration is somewhat redundant with the schema.
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 an 8-parameter, no-required-args list tool with no output schema, the description covers filters, pagination and return fields adequately. Remaining gaps (total count / pagination continuation, sort interplay) are minor and partly handled by schema defaults.
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%, so the schema already documents every parameter, including enums, defaults and the AND-semantics for tags. The description restates the filter list rather than adding syntax or format detail, 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 ('Browse the PCFHub catalog') and enumerates the filter dimensions, so the agent knows exactly what it retrieves. It does not, however, distinguish itself from the sibling 'search' tool, which could plausibly serve a similar querying need.
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 a concrete prerequisite path: 'Use list_taxonomy to discover valid category, tag and author slugs.' That routes the agent correctly for slug-based filters. It offers no guidance on when to prefer this over the sibling 'search' tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_doc_sectionsList a control's documentationARead-onlyIdempotentInspect
The documentation sections a control has — overview, installation, canvas, model_driven, examples, limitations and so on. Call get_doc_page with one of the returned sections to read it.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The control's slug, e.g. "pcf-tag-list". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safe-read profile is covered. The description adds that the sections are variable per control ('and so on'), which is useful, but says nothing about ordering, return shape, or the failure mode when a slug has no docs. Adequate but not rich given the low bar set by annotations.
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?
Two short sentences, front-loaded with the resource and followed by the routing instruction — nothing superfluous. The first sentence is a fragment without a verb, which slightly weakens the lead.
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 one-parameter read-only enumerator with no output schema, the description supplies the resource, the example section values the agent will receive, and the follow-up call. Nothing needed to invoke it correctly is missing.
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 coverage is 100% and the single slug parameter is fully documented with an example in the schema itself. The description only alludes to 'a control' and adds no format, casing, or resolution detail beyond the schema. Baseline 3 is correct here.
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 names the resource precisely (documentation sections belonging to a control) and enumerates concrete examples — overview, installation, canvas, model_driven, examples, limitations. It is distinguishable from the sibling get_doc_page because it explicitly frames itself as the discovery step. It lacks a strong leading verb ('lists'), which keeps it from a 5.
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 gives an explicit next-step rule: 'Call get_doc_page with one of the returned sections to read it,' which tells the agent how this tool pairs with the alternative. It does not state when *not* to use this tool or any prerequisites, so it falls short of the 5 standard.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_releasesList recent releasesARead-onlyIdempotentInspect
The most recent releases across every control on PCFHub, newest first: which control, which version, whether it is a prerelease, and when it shipped.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many releases. Defaults to 20. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so safety is covered. The description adds meaningful behavior beyond that: the result is sorted newest-first, spans all controls, and enumerates the returned fields (control, version, prerelease flag, ship date) — valuable given there is no output schema.
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?
A single dense sentence that front-loads the scope and ordering before listing return fields; every clause carries information. No wasted verbiage, though it is somewhat list-heavy.
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 read-only list tool with one fully documented param and no output schema, the description covers scope, ordering, and returned fields adequately. Only the pagination/limit behavior link to the result set is unstated.
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 single limit parameter is fully documented in the schema (default 20, max 50). The description adds nothing about the parameter, so the baseline of 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 concrete resource (releases across every control on PCFHub), the scope (across every control), and the ordering (newest first). None of the siblings (list_components, list_doc_sections, list_taxonomy) cover releases, so it is unambiguously distinct.
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 implies the use case (getting recent releases) but gives no explicit when-to-use guidance, no exclusions, and never names an alternative such as search or get_component for a specific control's history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_taxonomyList categories, tags or authorsARead-onlyIdempotentInspect
The category tree, every tag in use, or every author with a published control — each with its slug and how many controls it has. Use the slugs as filters in list_components.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | Which list to return. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. With no output schema, the description helpfully discloses the return shape ('each with its slug and how many controls it has'), though it omits pagination or ordering behavior.
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?
Two tight sentences; the resource enumeration and return-shape detail come first, with the downstream usage hint last. No wasted words.
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 single-enum read-only tool with no output schema, the description covers purpose, return contents, and the follow-up use of slugs. Slight gap in ordering/pagination details but nothing essential is missing.
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 enum values are self-explanatory, so the schema does the heavy lifting. The description restates that each option selects a different list but adds no new meaning beyond the enum.
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 (list) and three concrete resources (category tree, tags in use, authors with published controls) and specifies what each returned item contains (slug and control count). An agent can distinguish this from list_components immediately.
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?
Explicitly tells the agent why to call it – to obtain slugs used as filters in list_components – which implies the downstream workflow. It does not state when to prefer this over siblings like list_components or search, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearch PCFHubARead-onlyIdempotentInspect
Full-text search across every published PCF control and its documentation. Use it first when you know what a control should do but not what it is called. Returns components and doc pages, each with a snippet and a URL.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many results to return. Defaults to 10. | |
| query | Yes | What to look for, in plain words: "barcode scanner", "kanban", "date range". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint), so the bar is lower. The description still adds real behavioral value by disclosing the heterogeneous return shape ('components and doc pages, each with a snippet and a URL'), which annotations cannot convey. Pagination/result-volume behavior is left to the schema.
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 tight sentences: what it searches, when to reach for it, what comes back. The capability statement is front-loaded and no sentence is redundant.
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?
With no output schema, the description carries the burden of describing return values and does so ('components and doc pages, each with a snippet and a URL'). For a two-parameter, annotated read-only search tool, nothing an agent needs to invoke it correctly is missing.
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%, with both 'query' (plain-words examples) and 'limit' (defaults to 10, max 20) fully documented in the schema. The description adds nothing about parameter semantics beyond that, so the 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 ('full-text search across every published PCF control and its documentation') and pins the scope ('every published'). Combined with the 'use it first when you don't know the name' framing, an agent can distinguish this discovery tool from retrieval siblings like get_component and get_doc_page without opening any 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?
Gives an explicit trigger condition: use it first when you know the behavior but not the control's name. That clearly implies the alternative (look up by name via get_component), but it never names that sibling or states any when-not-to-use case, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_manifestValidate a pcfhub.jsonARead-onlyIdempotentInspect
Check the contents of a pcfhub.json against PCFHub's rules before a release. Returns whether it is valid, plus errors that block publishing and warnings that do not, each with the JSON pointer it applies to.
| Name | Required | Description | Default |
|---|---|---|---|
| manifest | Yes | The full contents of pcfhub.json, as JSON text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description goes further by disclosing the return semantics: a validity verdict, blocking errors vs non-blocking warnings, and JSON pointers. It does not say whether validation hits the network or how strict the rules are, but the value-add beyond annotations is real.
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?
Two sentences, zero filler, with the core action front-loaded and the return shape following immediately. Every clause 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?
There is no output schema, so the description must carry the return contract, and it does: validity flag, errors that block publishing, warnings that do not, plus JSON pointer locations. For a single-parameter read-only validator, nothing essential is missing.
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?
Only one parameter, and its schema description already states that it is the full contents of pcfhub.json as JSON text (100% coverage). The description adds no format or size guidance beyond that, so the 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 (validate a pcfhub.json against PCFHub's rules) and adds the temporal context (before a release). No sibling tool validates anything, so it is trivially distinguishable from the read-only listing/getter siblings.
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?
Explicitly scopes usage to the pre-release moment, which tells the agent when this tool belongs in a workflow. It does not name an alternative or state when-not-to-use, but no sibling overlaps in function, so the gap is minor.
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.
8 tool updates
- First observed
get_component - First observed
get_doc_page - First observed
list_components - First observed
list_doc_sections - First observed
list_releases - First observed
list_taxonomy - First observed
search - First observed
validate_manifest
Related MCP Connectors
Generate wiki docs from source code. Supports PowerShell, Python, Go, C#, Java, COBOL.
Validate oh-my-posh configurations and segment snippets against the official schema.
Search Tailwind CSS and React themes, read their tokens and source files, and get download URLs.
Software component catalog: search your org's services, docs, APIs, dependencies, and ownership.
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides access to PatternFly React development rules and documentation via MCP tools, allowing retrieval of documentation from URLs or local paths.26 npm1MIT
- FlicenseAqualityNot gradedmaintenanceExtracts and stores documentation content from Microsoft Learn and GitHub URLs into PocketBase with full-text search, metadata preservation, and automatic collection management for easy retrieval and organization.9-
- AlicenseBqualityCmaintenanceEnables deterministic querying of RVTDocs documentation with tools for fetching, scanning, and debugging documentation content.91MIT
- AlicenseAqualityDmaintenanceEnables AI-assisted FlutterFlow development by reading, exploring, and understanding FlutterFlow projects through Claude and other MCP-compatible clients.2572 npm9MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.