Skip to main content
Glama

Search Screens

search_screens
Read-only

Search Mobbin for UI screens using natural language. Returns matching screens with inline images and metadata. Examine the returned images to understand each screen's actual content — do not describe or summarize screens based solely on metadata. Each screen has a mobbin_url — the canonical Mobbin link for that screen. When you present results to the user, ALWAYS cite each screen you mention as a markdown link to its mobbin_url so the user can open it on Mobbin. Inline images are low-res previews for you to read, not for the user. Each result's image_url is the high-resolution image. Whenever the user wants to save, export, embed, or paste a result (files, Figma, Notion, docs, slides), download it from image_url instead of reusing the inline preview. Image URLs expire after 30 days, so download the file rather than linking to it; link to mobbin_url when citing. If the result contains ai_usage_notice, show its text markdown to the user word for word, as its own block after the results, keeping its formatting and line breaks. Do not paraphrase, shorten, or merge it with other text. On hosts that support MCP Apps, also renders an interactive gallery of the results.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "platform": "<platform>",
      "query": "<query>"
    },
    "name": "search_screens"
  }
}

Input Schema

NameRequiredDescriptionDefault
modeNoSearch mode. "standard" returns results with low latency. "deep" uses an AI-powered pipeline that interprets intent and scores each candidate for relevance, keeping the strong matches — ideal for nuanced queries. "fast" is a deprecated alias for "standard" and will be removed in a future version — use "standard" instead.deep
limitNoMaximum number of screens to return. Higher number of screens returned causes increased context usage.
queryYesDescribe one screen in plain language: what kind of screen it is ("paywall", "settings screen"), with the kind of app when the user names one ("social app", "banking app"). The kind of app is part of the request, so include it in the query. Add a state or UI element only when the user asked for it or their problem depends on it: each one narrows the results. Good: "social app profile screen", "checkout page with promo code field and Apple Pay button". Avoid: combining multiple screens/intents (search separately), parts the user didn't ask for ("social app profile screen with avatar and follower counts"), vague style words ("modern", "clean"), disconnected keyword lists. Name a specific app to filter results to it (e.g. "Spotify now-playing screen"). Do not include platform (ios/web) — use the dedicated parameter.
platformYesPlatform to search
output_toolNoThe product the results go into next, not a later step, if known, e.g. Figma, Paper, Notion. Product name only. When the results go into more than one product, name the one the user asked for first. Not the search source: Mobbin only when the results go back to Mobbin. Omit when unknown. MUST be the same across all calls for the same task.
task_intentNoOne short sentence summarizing the user's overall task. Helps return more relevant results. Write it in English even when the conversation is in another language. MUST be the same across all calls for the same task. Do NOT include verbatim user messages, conversation history, file contents, or personal data.
image_formatNoImage format. Use jpg if your client does not support webp.webp
exclude_screen_idsNoScreen IDs to exclude from results
output_destinationNoWhat you will do with the results after this call. Choose by what gets made with the results, not by the search itself. When the request does not say, go by where you are running: a coding agent in a repository means `code`, a design tool means `design_tool`, a plain chat host means `chat`. Helps return results in the form the workflow needs. `code`: implement or change UI in a codebase or coded prototype, also when looking up examples to base it on first, e.g. React, Swift, HTML/CSS, v0, Lovable. `design_tool`: recreate or put results on a design canvas, e.g. Figma, Paper, Pen.dev, MagicPath. `doc`: write a report, PRD, spec, audit or slides, e.g. in Notion, Google Docs or Slides. `reference_library`: only when saving is the ask: the user wants the results kept for later in a folder, notes or a Mobbin collection. Looking things up to build, design or write from is NOT this. `chat`: only answer in the conversation; the user has not asked you to build, design, write or save anything. `other`: an unlisted destination, none of the above, e.g. posting the results to Slack or email. MUST be the same across all calls for the same task.

Output Schema

NameRequiredDescriptionDefault
queryYesThe natural language query used for this search.
screensYes
ai_usage_noticeNoPresent only when the user's AI usage is high.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / query / description
      Previous value: -"Describe one screen in plain language, starting with what kind of screen it is (\"paywall\", \"settings screen\"). Add a state or UI element only when the user asked for it or their problem depends on it: each one narrows the results. Good: \"user profile screen\", \"checkout page with promo code field and Apple Pay button\". Avoid: combining multiple screens/intents (search separately), parts the user didn't ask for (\"profile screen with avatar and follower counts\"), vague style words (\"modern\", \"clean\"), disconnected keyword lists. Name a specific app to filter results to it (e.g. \"Spotify now-playing screen\"). Do not include platform (ios/web) — use the dedicated parameter."New value: +"Describe one screen in plain language: what kind of screen it is (\"paywall\", \"settings screen\"), with the kind of app when the user names one (\"social app\", \"banking app\"). The kind of app is part of the request, so include it in the query. Add a state or UI element only when the user asked for it or their problem depends on it: each one narrows the results. Good: \"social app profile screen\", \"checkout page with promo code field and Apple Pay button\". Avoid: combining multiple screens/intents (search separately), parts the user didn't ask for (\"social app profile screen with avatar and follower counts\"), vague style words (\"modern\", \"clean\"), disconnected keyword lists. Name a specific app to filter results to it (e.g. \"Spotify now-playing screen\"). Do not include platform (ios/web) — use the dedicated parameter."
  2. Changed2 schema fields changed
    • changedInput schema / properties / query / description
      Previous value: -"Describe one screen in plain language — the UI elements you'd see and how they relate. Be specific; detail helps. Good: \"login screen with biometric authentication\", \"checkout page with promo code field and Apple Pay button\". Avoid: combining multiple screens/intents (search separately), negations (\"without ads\"), vague style words (\"modern\", \"clean\"), disconnected keyword lists. Name a specific app to filter results to it (e.g. \"Spotify now-playing screen\"). Do not include platform (ios/web) — use the dedicated parameter."New value: +"Describe one screen in plain language, starting with what kind of screen it is (\"paywall\", \"settings screen\"). Add a state or UI element only when the user asked for it or their problem depends on it: each one narrows the results. Good: \"user profile screen\", \"checkout page with promo code field and Apple Pay button\". Avoid: combining multiple screens/intents (search separately), parts the user didn't ask for (\"profile screen with avatar and follower counts\"), vague style words (\"modern\", \"clean\"), disconnected keyword lists. Name a specific app to filter results to it (e.g. \"Spotify now-playing screen\"). Do not include platform (ios/web) — use the dedicated parameter."
    • changedInput schema / required
      Previous value: -[
      -  "query",
      -  "platform"
      -]New value: +[
      +  "platform",
      +  "query"
      +]
  3. Changed2 schema fields changed
    • changedInput schema / properties / output_destination / description
      Previous value: -"What you will do with the results after this call. Choose by what gets made with the results, not by the search itself. When the request does not say, go by where you are running: a coding agent in a repository means `code`, a design tool means `design_tool`, a plain chat host means `chat`. Helps return results in the form the workflow needs. `code`: implement or change UI in a codebase or coded prototype, e.g. React, Swift, HTML/CSS, v0, Lovable. `design_tool`: recreate or put results on a design canvas, e.g. Figma, Paper, Pen.dev, MagicPath. `doc`: write a report, PRD, spec, audit or slides, e.g. in Notion, Google Docs or Slides. `reference_library`: only when saving is the ask: the user wants the results kept for later in a folder, notes or a Mobbin collection. Looking things up to build, design or write from is NOT this. `chat`: only answer in the conversation; the user has not asked you to build, design, write or save anything. `other`: an unlisted destination, none of the above, e.g. posting the results to Slack or email. MUST be the same across all calls for the same task."New value: +"What you will do with the results after this call. Choose by what gets made with the results, not by the search itself. When the request does not say, go by where you are running: a coding agent in a repository means `code`, a design tool means `design_tool`, a plain chat host means `chat`. Helps return results in the form the workflow needs. `code`: implement or change UI in a codebase or coded prototype, also when looking up examples to base it on first, e.g. React, Swift, HTML/CSS, v0, Lovable. `design_tool`: recreate or put results on a design canvas, e.g. Figma, Paper, Pen.dev, MagicPath. `doc`: write a report, PRD, spec, audit or slides, e.g. in Notion, Google Docs or Slides. `reference_library`: only when saving is the ask: the user wants the results kept for later in a folder, notes or a Mobbin collection. Looking things up to build, design or write from is NOT this. `chat`: only answer in the conversation; the user has not asked you to build, design, write or save anything. `other`: an unlisted destination, none of the above, e.g. posting the results to Slack or email. MUST be the same across all calls for the same task."
    • changedInput schema / properties / output_tool / description
      Previous value: -"The product the results go into next, if known, e.g. Figma, Paper, Notion. Product name only. When the results go into more than one product, name the one the user asked for first. Not the search source: Mobbin only when the results go back to Mobbin. Omit when unknown. MUST be the same across all calls for the same task."New value: +"The product the results go into next, not a later step, if known, e.g. Figma, Paper, Notion. Product name only. When the results go into more than one product, name the one the user asked for first. Not the search source: Mobbin only when the results go back to Mobbin. Omit when unknown. MUST be the same across all calls for the same task."
  4. Changed5 schema fields changed
    • addedOutput schema / properties / ai_usage_notice / additionalProperties
      Added value: +false
    • changedOutput schema / properties / ai_usage_notice / description
      Previous value: -"Present only when the user's AI usage is high. Show this markdown to the user word for word after presenting the results, keeping its formatting and line breaks."New value: +"Present only when the user's AI usage is high."
    • addedOutput schema / properties / ai_usage_notice / properties
      Added value: +{
      +  "credits_used": {
      +    "description": "Credits used in the current period.",
      +    "type": "number"
      +  },
      +  "text": {
      +    "description": "Show this markdown to the user word for word after presenting the results, keeping its formatting and line breaks.",
      +    "type": "string"
      +  }
      +}
    • addedOutput schema / properties / ai_usage_notice / required
      Added value: +[
      +  "text",
      +  "credits_used"
      +]
    • changedOutput schema / properties / ai_usage_notice / type
      Previous value: -"string"New value: +"object"
  5. Changed1 schema field changed
    • addedOutput schema / properties / ai_usage_notice
      Added value: +{
      +  "description": "Present only when the user's AI usage is high. Show this markdown to the user word for word after presenting the results, keeping its formatting and line breaks.",
      +  "type": "string"
      +}
  6. Changed2 schema fields changed
    • addedInput schema / properties / output_destination
      Added value: +{
      +  "description": "What you will do with the results after this call. Choose by what gets made with the results, not by the search itself. When the request does not say, go by where you are running: a coding agent in a repository means `code`, a design tool means `design_tool`, a plain chat host means `chat`. Helps return results in the form the workflow needs. `code`: implement or change UI in a codebase or coded prototype, e.g. React, Swift, HTML/CSS, v0, Lovable. `design_tool`: recreate or put results on a design canvas, e.g. Figma, Paper, Pen.dev, MagicPath. `doc`: write a report, PRD, spec, audit or slides, e.g. in Notion, Google Docs or Slides. `reference_library`: only when saving is the ask: the user wants the results kept for later in a folder, notes or a Mobbin collection. Looking things up to build, design or write from is NOT this. `chat`: only answer in the conversation; the user has not asked you to build, design, write or save anything. `other`: an unlisted destination, none of the above, e.g. posting the results to Slack or email. MUST be the same across all calls for the same task.",
      +  "enum": [
      +    "code",
      +    "design_tool",
      +    "doc",
      +    "reference_library",
      +    "chat",
      +    "other"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / output_tool
      Added value: +{
      +  "description": "The product the results go into next, if known, e.g. Figma, Paper, Notion. Product name only. When the results go into more than one product, name the one the user asked for first. Not the search source: Mobbin only when the results go back to Mobbin. Omit when unknown. MUST be the same across all calls for the same task.",
      +  "type": "string"
      +}
  7. Changed1 schema field changed
    • changedOutput schema / properties / screens / items / properties / image_url / description
      Previous value: -"Image URL for the screen. Expires after 30 days."New value: +"High-resolution image URL (up to 1920px wide). Download from it whenever the user wants to save, export, embed, or paste the image. Expires after 30 days."
  8. Changed1 schema field changed
    • changedInput schema / properties / task_intent / description
      Previous value: -"One short sentence summarizing the user's overall task. Helps return more relevant results. MUST be the same across all calls for the same task. Do NOT include verbatim user messages, conversation history, file contents, or personal data."New value: +"One short sentence summarizing the user's overall task. Helps return more relevant results. Write it in English even when the conversation is in another language. MUST be the same across all calls for the same task. Do NOT include verbatim user messages, conversation history, file contents, or personal data."
  9. Changed1 schema field changed
    • addedInput schema / properties / task_intent
      Added value: +{
      +  "description": "One short sentence summarizing the user's overall task. Helps return more relevant results. MUST be the same across all calls for the same task. Do NOT include verbatim user messages, conversation history, file contents, or personal data.",
      +  "type": "string"
      +}
  10. First observed

TDQS

A4.2/5.0
Behavior5/5

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

Far beyond the read-only/safe annotations: it discloses that inline images are low-res previews versus a separate high-res `image_url`, that image URLs expire in 30 days, that an interactive gallery renders on MCP Apps hosts, and how to handle `ai_usage_notice`. This is exactly the operational context an agent cannot get from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

Front-loaded with purpose, then a dense but consistently actionable block of output-handling rules. It is long, but nearly every sentence carries a concrete instruction (cite mobbin_url, download from image_url, preserve ai_usage_notice verbatim), so little reads as 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?

Given an output schema and rich annotations, the description focuses precisely on the gaps those fields cannot cover: image resolution tiers, URL expiry, citation format, notice handling, and gallery rendering. Nothing essential to calling or correctly presenting results 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 coverage is 100%, so all nine parameters (mode, limit, query, platform, task_intent, output_destination, etc.) are already fully documented in the schema. The description adds no parameter-level guidance beyond the schema, which lands at the baseline of 3 for high-coverage schemas.

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?

States a specific verb and resource — searching Mobbin for UI screens via natural language — and the resource (screens) is cleanly distinguishable from sibling resources like flows and sections. An agent can tell what this returns without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage ('search for UI screens with natural language') and gives extensive guidance on what to do with results, but never states when to choose this over search_flows or search_sections, nor any exclusions. Routing between the sibling search tools is left to inference from the tool names alone.

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.