Skip to main content
Glama

Get a PCF control

get_component
Read-onlyIdempotent

Everything about one control by its slug: what it does, its control type, license and repository, the current release's properties, and download links for its solutions. Use it once search or list_components has given you a slug; use get_doc_page for installation and configuration instructions, which this does not return. An unknown slug, or a version the control never released, returns an error naming the tool to call instead. include_versions and include_related each cost an extra query, so leave them off unless you need the release history or similar controls.

Input Schema

NameRequiredDescriptionDefault
slugYesThe control's slug, e.g. "pcf-tag-list".
versionNoA specific release. Defaults to the latest stable one.
include_relatedNoAlso return similar controls. Costs an extra query; leave off unless needed.
include_versionsNoAlso return every release. Costs an extra query; leave off unless needed.

Output Schema

NameRequiredDescriptionDefault
urlYesAbsolute URL of the control's page, for citing.
nameYes
slugYes
tagsNo
tierNofree, or a paid tier.
hostsYesWhere this control runs: canvas apps, model-driven apps, or both.
authorNo
relatedNoEmpty unless include_related was set.
taglineNo
categoryNo
versionsNoEmpty unless include_versions was set.
builtWithNoai where an AI assistant wrote the code, ai-assisted where a person wrote it with one. Null where the author has not said.
downloadsYesEmpty where the control has no published release.
summaryMdNoThe author's longer description, as Markdown.
isArchivedYesTrue when the control is no longer maintained.
supportUrlNoWhere to report a problem with the control.
controlTypeYes
homepageUrlNo
licenseSpdxNoSPDX identifier, e.g. "MIT".
publishedAtNoISO 8601.
supportLevelNomaintained, or reference: a worked example not maintained for production. Null where the author has not said.
downloadCountNo
repositoryUrlNo
currentVersionNoThe release described, or null where nothing has been published yet.
controlTypeDescriptionNoWhat that control type means, in a sentence.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / builtWith
      Added value: +{
      +  "description": "ai where an AI assistant wrote the code, ai-assisted where a person wrote it with one. Null where the author has not said.",
      +  "enum": [
      +    "ai",
      +    "ai-assisted",
      +    null
      +  ],
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / supportLevel
      Added value: +{
      +  "description": "maintained, or reference: a worked example not maintained for production. Null where the author has not said.",
      +  "enum": [
      +    "maintained",
      +    "reference",
      +    null
      +  ],
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  2. Changed2 schema fields changed
    • addedOutput schema / properties / hosts
      Added value: +{
      +  "description": "Where this control runs: canvas apps, model-driven apps, or both.",
      +  "items": {
      +    "enum": [
      +      "canvas",
      +      "model-driven"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "slug",
      -  "name",
      -  "controlType",
      -  "isArchived",
      -  "downloads",
      -  "url"
      -]New value: +[
      +  "slug",
      +  "name",
      +  "controlType",
      +  "hosts",
      +  "isArchived",
      +  "downloads",
      +  "url"
      +]
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "author": {
      +      "properties": {
      +        "githubLogin": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "isVerified": {
      +          "type": "boolean"
      +        },
      +        "name": {
      +          "type": "string"
      +        },
      +        "slug": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "slug",
      +        "name"
      +      ],
      +      "type": "object"
      +    },
      +    "category": {
      +      "properties": {
      +        "name": {
      +          "type": "string"
      +        },
      +        "slug": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "slug",
      +        "name"
      +      ],
      +      "type": "object"
      +    },
      +    "controlType": {
      +      "type": "string"
      +    },
      +    "controlTypeDescription": {
      +      "description": "What that control type means, in a sentence.",
      +      "type": "string"
      +    },
      +    "currentVersion": {
      +      "description": "The release described, or null where nothing has been published yet.",
      +      "properties": {
      +        "framework": {
      +          "description": "How the control is built, e.g. \"react_virtual\".",
      +          "type": "string"
      +        },
      +        "isLatest": {
      +          "type": "boolean"
      +        },
      +        "isPrerelease": {
      +          "type": "boolean"
      +        },
      +        "minPlatformVersion": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "properties": {
      +          "description": "Every property the control exposes, including the columns a dataset control binds.",
      +          "items": {
      +            "properties": {
      +              "defaultValue": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "description": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "displayName": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "isRequired": {
      +                "type": "boolean"
      +              },
      +              "kind": {
      +                "description": "input, output, dataset, dataset_column or feature.",
      +                "type": "string"
      +              },
      +              "name": {
      +                "description": "The property's logical name, as bound in the maker.",
      +                "type": "string"
      +              },
      +              "type": {
      +                "description": "The Power Platform type, e.g. \"SingleLine.Text\", \"TwoOptions\", \"DataSet\".",
      +                "type": "string"
      +              },
      +              "usage": {
      +                "description": "input, output or bound. Null on a feature.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "required": [
      +              "name",
      +              "type",
      +              "isRequired"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "releaseNotesMd": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "releasedAt": {
      +          "description": "ISO 8601.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "version": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "version",
      +        "isPrerelease"
      +      ],
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "downloadCount": {
      +      "type": "integer"
      +    },
      +    "downloads": {
      +      "description": "Empty where the control has no published release.",
      +      "items": {
      +        "properties": {
      +          "fileName": {
      +            "type": "string"
      +          },
      +          "kind": {
      +            "description": "managed_solution or unmanaged_solution.",
      +            "type": "string"
      +          },
      +          "label": {
      +            "type": "string"
      +          },
      +          "requiresEntitlement": {
      +            "description": "True where the file is paid for and the download needs an entitlement.",
      +            "type": "boolean"
      +          },
      +          "size": {
      +            "description": "Human-readable, e.g. \"14.8 KB\".",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "url": {
      +            "description": "Absolute URL of the counted download route. Use this rather than any storage URL.",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "kind",
      +          "label",
      +          "fileName",
      +          "requiresEntitlement",
      +          "url"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "homepageUrl": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "isArchived": {
      +      "description": "True when the control is no longer maintained.",
      +      "type": "boolean"
      +    },
      +    "licenseSpdx": {
      +      "description": "SPDX identifier, e.g. \"MIT\".",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "name": {
      +      "type": "string"
      +    },
      +    "publishedAt": {
      +      "description": "ISO 8601.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "related": {
      +      "description": "Empty unless include_related was set.",
      +      "type": "array"
      +    },
      +    "repositoryUrl": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "slug": {
      +      "type": "string"
      +    },
      +    "summaryMd": {
      +      "description": "The author's longer description, as Markdown.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "supportUrl": {
      +      "description": "Where to report a problem with the control.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "tagline": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "tags": {
      +      "items": {
      +        "properties": {
      +          "name": {
      +            "type": "string"
      +          },
      +          "slug": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "slug",
      +          "name"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "tier": {
      +      "description": "free, or a paid tier.",
      +      "type": "string"
      +    },
      +    "url": {
      +      "description": "Absolute URL of the control's page, for citing.",
      +      "type": "string"
      +    },
      +    "versions": {
      +      "description": "Empty unless include_versions was set.",
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "slug",
      +    "name",
      +    "controlType",
      +    "isArchived",
      +    "downloads",
      +    "url"
      +  ],
      +  "type": "object"
      +}
  4. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only cover read-only/idempotent safety; the description goes well beyond by disclosing that unknown slugs or never-released versions produce a redirect-style error, and that include_versions/include_related each incur an extra query cost. This is exactly the cost/error behavior 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.

Conciseness5/5

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

Four sentences, front-loaded with the payload, then routing, then failure behavior, then cost guidance. Every sentence carries distinct decision-relevant information with no padding.

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

Completeness5/5

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

With an output schema present, the description needn't explain return values, yet it still previews the returned fields for selection purposes. Combined with the routing, error, and cost guidance, nothing needed to call this correctly is missing.

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 the schema already documents slug, version defaults, and the extra-query cost of the two boolean flags. The description's 'leave them off unless you need the release history or similar controls' largely restates the schema's own wording, adding little beyond it. Baseline 3 applies.

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 ('Everything about one control by its slug') and enumerates the actual payload (control type, license, repository, release properties, solution download links). It is immediately distinguishable from get_doc_page, search, and list_components by both content and the slug-based lookup mode.

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 states the sequencing ('once search or list_components has given you a slug') and names the alternative for the adjacent need it does NOT serve ('use get_doc_page for installation and configuration instructions, which this does not return'). It even pre-empts error cases by saying an unknown slug returns an error naming the tool to call instead.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources