Skip to main content
List components using standard filters or semantic search.

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID (optional, uses session default if not provided)"
    },
    "query": {
      "type": "string",
      "description": "Natural language search query for semantic search. Uses AI-powered vector search to find relevant components based on meaning, not just keywords.",
      "minLength": 1,
      "maxLength": 500,
      "example": "layout for product listings"
    },
    "type": {
      "type": "string",
      "enum": ["view", "layout", "assetCatalog"],
      "description": "Filter by component type (optional)"
    },
    "status": {
      "type": "string",
      "enum": ["draft", "published", "deleted"],
      "default": "published",
      "description": "Filter by component status (optional)"
    },
    "collectionId": {
      "type": "string",
      "description": "Filter by collection ID (optional)"
    },
    "page": {
      "type": "number",
      "default": 1,
      "description": "Page number for paginated results (1-based indexing)"
    },
    "limit": {
      "type": "number",
      "default": 20,
      "maximum": 100,
      "description": "Maximum items to return per page"
    }
  }
}

Parameters

ParameterTypeDefaultDescription
projectIdstringsession defaultProject to search in
querystring-Natural language semantic search query
typestring-Filter by component type
statusstringpublishedFilter by status
collectionIdstring-Filter by collection
pagenumber1Page number
limitnumber20Items per page (max 100)

Component Types

TypeDescription
viewUI display components (cards, headers, etc.)
layoutStructural layout components (grids, stacks, etc.)
assetCatalogAsset catalog components for media management

Response

FieldTypeDescription
componentsarrayArray of component objects
components[].idstringUnique component identifier
components[].namestringDisplay name of the component
components[].descriptionstringComponent description
components[].typestringComponent type (view, layout, assetCatalog)
components[].statusstringPublication status
components[].versionnumberVersion number
components[].excerptstringRelevant text excerpt (when query is used)
components[].similaritynumberSimilarity score 0-1 (when query is used)
totalnumberTotal number of matching items

Examples

Search for components using natural language:
{
  "query": "layout for product listings"
}
Response:
{
  "components": [
    {
      "id": "comp_product_layout_001",
      "name": "Product Listing Layout",
      "description": "Layout component for displaying product listings with grid or list view options",
      "type": "layout",
      "status": "published",
      "version": 2,
      "excerpt": "...Layout component for displaying product listings with grid or list view options...",
      "similarity": 0.94
    },
    {
      "id": "comp_product_grid_001",
      "name": "Product Grid",
      "description": "Grid layout for showcasing multiple products",
      "type": "layout",
      "status": "published",
      "version": 1,
      "excerpt": "...Grid layout for showcasing multiple products in a responsive grid...",
      "similarity": 0.87
    }
  ],
  "total": 2
}

Filter by Type

List all published layout components:
{
  "type": "layout",
  "status": "published"
}
Response:
{
  "components": [
    {
      "id": "comp_product_layout_001",
      "name": "Product Listing Layout",
      "description": "Layout component for displaying product listings",
      "type": "layout",
      "status": "published",
      "version": 2
    },
    {
      "id": "comp_article_layout_001",
      "name": "Article Layout",
      "description": "Layout for long-form article content",
      "type": "layout",
      "status": "published",
      "version": 3
    }
  ],
  "total": 2
}

Filter by Collection

List components in a specific collection:
{
  "collectionId": "coll_marketing_001"
}

Usage

Browse Components by Type

// List all view components
const views = await mcp.call("list_components", {
  type: "view"
});

// List all layout components
const layouts = await mcp.call("list_components", {
  type: "layout"
});

Search with Combined Filters

// Search for hero components within views
const result = await mcp.call("list_components", {
  query: "hero banner",
  type: "view"
});
Combine semantic search with filters for precise results. For example, search for “hero banner” within the view type to find relevant display components.