CatchUI

What is this UI element called? 50 curated UI patterns, names per platform, build prompts. EN/中文.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
98%
Naming quality
97%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,233Tokens (tool definitions)
~963 BTypical response size
Moderate attention impact (0.96% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "ui-patterns": {
      "url": "https://catchui.com/api/mcp"
    }
  }
}

Remote endpoints

https://catchui.com/api/mcpstreamable-http

What it can do

Tool inventory

Tools (6)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_ui_patterns(query, limit)

Finds the conventional name of a UI element or design pattern from a plain-language description, question or term — e.g. "the bar at the bottom of an app", "three horizontal lines icon", "the black bar at the top of iPhone", "汉堡菜单". Searches CatchUI's curated catalog of 50 patterns and returns names in English and Chinese, definitions, the best-matching Q&A and each entry's catalog URL. Use when someone asks what a UI element is called or what a UI/UX term means.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Description, question, or name of a UI element, in English or Chinese."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "default": 5,
      "description": "Maximum number of matches to return."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}
🟢get_ui_pattern(id)

Returns the full CatchUI entry for one UI pattern by id (e.g. "tabbar", "bottomsheet"): definition in English and Chinese, pronunciation, aliases, how people describe it, component names per platform, an implementation prompt, real search questions with answers, related patterns and the catalog URL. Takes an id; search_ui_patterns finds ids from descriptions.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "CatchUI pattern id, e.g. \"tabbar\". list_ui_patterns lists every id."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}
🟢list_ui_patterns(family)

Lists the 50 UI patterns in CatchUI's curated catalog — ids, English and Chinese names and one-line definitions — grouped by family, optionally filtered to one family (NAV, INPUT, ACTION, OVERLAY, FEEDBACK, CONTENT, DATA, SYSTEM).

Input Schema

{
  "type": "object",
  "properties": {
    "family": {
      "type": "string",
      "enum": [
        "NAV",
        "INPUT",
        "ACTION",
        "OVERLAY",
        "FEEDBACK",
        "CONTENT",
        "DATA",
        "SYSTEM"
      ],
      "description": "Only list patterns in this family."
    }
  },
  "additionalProperties": false
}
🟢compare_ui_patterns(patterns)

Explains how 2 to 4 easily confused UI patterns differ — e.g. toast vs snackbar, modal vs popover vs bottom sheet, tabs vs segmented control, Dynamic Island vs notch. Returns each definition side by side plus the catalog's written comparison when one exists. Accepts ids, names or short descriptions.

Input Schema

{
  "type": "object",
  "properties": {
    "patterns": {
      "type": "array",
      "minItems": 2,
      "maxItems": 4,
      "items": {
        "type": "string",
        "minLength": 1
      },
      "description": "2 to 4 CatchUI pattern ids, names or short descriptions, e.g. [\"modal\", \"popover\"] or [\"tabs\", \"segmented control\"]."
    }
  },
  "required": [
    "patterns"
  ],
  "additionalProperties": false
}
🟢get_ui_component_names(query, platform)

Returns what a UI pattern is called in code on each platform — SwiftUI, UIKit, Jetpack Compose, Android Views, Flutter, HTML/ARIA and, for system UI, AppKit, Win32 and Electron — or works backwards from a framework component (e.g. "UISegmentedControl", "ModalBottomSheet", "role=tablist") to the pattern and its equivalents elsewhere. Optionally filtered to one platform. Platforms without a native component say so instead of naming one.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "A pattern id, name or description (\"segmented control\"), or a framework component name (\"UISegmentedControl\")."
    },
    "platform": {
      "type": "string",
      "description": "Optional platform filter, matched against the platform label: e.g. \"SwiftUI\", \"UIKit\", \"Compose\", \"Android\", \"Flutter\", \"Web\"."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}
🟢get_implementation_prompt(patterns, language)

Returns CatchUI's ready-to-use implementation instructions for 1 to 6 UI patterns — what to build, where it sits, its states and the accessibility it needs — in English or Chinese, for pasting into an AI coding tool such as Claude Code or Cursor. Accepts ids, names or short descriptions.

Input Schema

{
  "type": "object",
  "properties": {
    "patterns": {
      "type": "array",
      "minItems": 1,
      "maxItems": 6,
      "items": {
        "type": "string",
        "minLength": 1
      },
      "description": "1 to 6 CatchUI pattern ids, names or short descriptions, e.g. [\"tabs\"] or [\"search field\", \"filter chips\", \"pagination\"]."
    },
    "language": {
      "type": "string",
      "enum": [
        "en",
        "zh"
      ],
      "default": "en",
      "description": "Language of the prompts: \"en\" (English) or \"zh\" (简体中文)."
    }
  },
  "required": [
    "patterns"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded6 tools