afv-library/skills/platform-flexipage-generate/references/mcp_action_examples.md

3.6 KiB

MCP Action Integration — Examples & Reference

Two MCP actions provide component discovery and schema retrieval. Call them via execute_metadata_action.

discoverUiComponents

Discovers components available for a page type in the user's org.

When to call: Tier 2 discovery — after local scan finds no match.

Input:

execute_metadata_action({
  "actionName": "DISCOVER_UI_COMPONENTS",
  "metadataType": "FLEXI_PAGE",
  "parameters": {
    "pageType": "RECORD_PAGE",
    "pageContext": { "entityName": "Account" },
    "searchQuery": "related list"
  }
})

Parameters:

Param Type Required Description
pageType String Yes RECORD_PAGE, APP_PAGE, or HOME_PAGE
pageContext JSON Conditional Required for RECORD_PAGE: {"entityName": "ObjectApiName"}
searchQuery String No Natural language search from user intent

Output:

{
  "componentDefinitions": [
    {
      "definition": "lst/dynamicRelatedList",
      "label": "Dynamic Related List",
      "description": "Shows related records...",
      "attributes": [{"name": "parentFieldApiName", "description": "..."}]
    }
  ]
}

Notes:

  • Output uses forward-slash delimiter (namespace/blockName), but XML uses colon (namespace:blockName)
  • Only returns components compatible with the page type and accessible in the org
  • May return empty list if no match — proceed to Tier 3

When multiple components are returned:

  1. Best-match selection: If one component clearly matches user intent (label/description aligns with the request), auto-select it
  2. Ambiguous results: If multiple components could satisfy the request, present the top candidates to the user with their labels and descriptions, and ask which one to use
  3. Refinement: If results are too broad, refine the searchQuery parameter with more specific keywords from user intent and retry once before prompting the user

getUiComponentSchemas

Retrieves the full property schema for one or more components.

When to call: Tier 2 (org-discovered) components only — skip for Tier 1 (local) and Tier 3 (generated) components; read @api properties from source instead.

Input:

execute_metadata_action({
  "actionName": "GET_UI_COMPONENT_SCHEMAS",
  "metadataType": "FLEXI_PAGE",
  "parameters": {
    "pageType": "RECORD_PAGE",
    "pageContext": { "entityName": "Account" },
    "componentDefinitions": ["lst/dynamicRelatedList", "flexipage/richText"],
    "includeKnowledge": true
  }
})

Parameters:

Param Type Required Description
pageType String Yes RECORD_PAGE, APP_PAGE, or HOME_PAGE
pageContext JSON Conditional Required for RECORD_PAGE
componentDefinitions List Yes Component FQNs (forward-slash format)
includeKnowledge Boolean No Include component guidance text (default: true)

Output:

{
  "componentSchemas": [
    {
      "definition": "lst/dynamicRelatedList",
      "success": true,
      "schema": "{...JSON Schema string...}",
      "knowledge": "Optional guidance text for this component"
    }
  ]
}

Notes:

  • Supports partial failures — each component has its own success boolean
  • On failure: {"definition": "...", "success": false, "error": "reason"}
  • When a component schema fails, fall through to Step 3 (smart defaults + LLM inference)
  • knowledge provides platform-curated guidance — use it alongside instructions files
  • Component definition format: always namespace/blockName (forward-slash)