Server definition
- Hash
- sha256:048286ecf7db1b05879819852640289666502176b1fff233c456202f2b47bb9a
- What it is
- What a remote MCP server returned when asked what it offers: 13 tools
The blob, as servednamed by its sha256
{
"instructions": "Screenrove is a catalog of real product UI captures for design reference, competitor analysis, and coding agents. It includes onboarding flows, pricing pages, marketing sites, dashboards, and in-app screens from Linear, Stripe, Vercel, Airbnb, Notion, Duolingo, Raycast, Cal.com, Framer, Cursor, and Supabase—each with notes, observed interactions, and a measured design guide.\n\nUse Screenrove when:\n- The user needs UI reference examples (pricing pages, empty states, onboarding flows, checkout forms)\n- The user wants to see how competitors structure their pages\n- The user asks for design pattern inspiration\n- You need a screenshot reference before building UI\n\nTypical workflows:\n1. User should choose: call pick_reference with search words, open the URL for them, then wait_for_pick to get their choice and build prompt.\n2. Direct lookup: search_screens to find references, get_screen_image to view them, build_handoff for a complete agent prompt.\n3. Comparison: compare_screens to contrast two screens side by side, or compare one screen against what the user is building.\n4. Validation: check_my_ui to compare the user's UI structure against real products.\n\nEverything is observed from live products on their capture date. Use original branding and content in what you build.",
"tools": [
{
"description": "Generate a complete build prompt for a coding agent: ordered screens with notes, observed\ntransitions, full-resolution image URLs, the measured design guide, and an implementation\nchecklist. This is the same prompt as the \"Use in agent\" button on the site.\n\nReference IDs: use `{product}-onboarding` for a product's signup flow, `{product}-collection`\nfor all their screens, or any single screen id (like `linear-marketing-pricing`).\n\nUse this when you want to build UI that follows a real product's patterns. The prompt includes\neverything an agent needs: screenshots to reference, design tokens to match, and implementation\nsteps to follow.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"goal": {
"description": "What you want to build. Goes at the top of the prompt.",
"type": "string"
},
"includeDesign": {
"default": true,
"description": "Include the observed design guide. Set false to use your project's own design system.",
"type": "boolean"
},
"referenceId": {
"description": "e.g. linear-onboarding, stripe-collection or vercel-marketing-pricing.",
"type": "string"
},
"screens": {
"description": "Comma-separated screen ids to keep. Omit to include every screen in the reference.",
"type": "string"
},
"stack": {
"description": "Preferred stack, e.g. Next.js and Tailwind.",
"type": "string"
}
},
"required": [
"referenceId"
],
"type": "object"
},
"name": "build_handoff",
"outputSchema": {
"properties": {
"manifest": {
"description": "Versioned reference manifest",
"type": "object"
},
"prompt": {
"description": "Markdown prompt to follow or paste into an agent.",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Compare the user's UI structure against Screenrove's catalog of real products. Describe what\nthe user has (screen type, sections, flow steps, plan count) and get a report showing the\nclosest real-world references with factual comparisons.\n\nUse only the fields the user provides; leave out personal names, pricing, or customer data.\nThe report includes step counts, section counts, observed actions, and factual comparisons—\nnot recommendations.\n\nUse this when the user wants to validate their UI against real products, understand if their\nflow has more or fewer steps than competitors, or see how similar screens are structured.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"description": {
"description": "One or two sentences on what the screen is for and how it is laid out, e.g. \"Pricing page with three plan cards, a monthly/yearly toggle and a feature table\".",
"type": "string"
},
"flowSteps": {
"description": "For a multi-screen flow, each step's title in order, e.g. [\"Sign up\", \"Verify email\", \"Create workspace\"].",
"items": {
"type": "string"
},
"type": "array"
},
"flowType": {
"description": "What the flow does, so step counts are only compared with flows of the same kind. Inferred from screenType when omitted.",
"enum": [
"signup-onboarding",
"search",
"checkout",
"booking",
"marketplace"
],
"type": "string"
},
"kind": {
"description": "Only compare with this kind of capture.",
"enum": [
"flow",
"marketing",
"product"
],
"type": "string"
},
"limit": {
"default": 4,
"description": "How many references to return, 1 to 5.",
"type": "number"
},
"planCount": {
"description": "For pricing screens, how many plans are shown.",
"type": "number"
},
"primaryAction": {
"description": "The main button or action, e.g. \"Start free trial\".",
"type": "string"
},
"product": {
"description": "Only compare with this product id.",
"type": "string"
},
"screenType": {
"description": "What kind of screen it is.",
"enum": [
"landing",
"pricing",
"feature-page",
"sign-up",
"sign-in",
"verification",
"onboarding-step",
"plan-picker",
"empty-state",
"dashboard",
"list",
"detail",
"create-form",
"search",
"picker",
"booking",
"checkout",
"marketplace",
"settings",
"docs",
"menu",
"lesson"
],
"type": "string"
},
"sections": {
"description": "Page sections top to bottom, e.g. [\"Hero\", \"Plan cards\", \"FAQ\"].",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"description"
],
"type": "object"
},
"name": "check_my_ui",
"outputSchema": {
"properties": {
"next": {
"type": "string"
},
"references": {
"items": {
"properties": {
"facts": {
"items": {
"type": "string"
},
"type": "array"
},
"id": {
"type": "string"
},
"imageUrl": {
"type": "string"
},
"kind": {
"description": "flow is an onboarding step, marketing a public web page, product an in-app screen.",
"enum": [
"flow",
"marketing",
"product"
],
"type": "string"
},
"notes": {
"type": "string"
},
"previewUrl": {
"type": "string"
},
"product": {
"type": "string"
},
"productName": {
"description": "Present on pick options.",
"type": "string"
},
"screenType": {
"type": "string"
},
"title": {
"type": "string"
},
"why": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"report": {
"description": "Markdown summary of the comparison.",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Compare two captured screens side by side: layout structure, page sections, observed actions,\ndimensions, screen types, and design guide differences. Returns a structured comparison with\nsimilarities, differences, and factual observations.\n\nUse this when the user wants to understand how two products approach the same problem\ndifferently—e.g. comparing Linear's pricing page with Stripe's pricing page, or Vercel's\nonboarding with Notion's onboarding.\n\nYou can also compare one screen against a target description to see how close a reference\nmatches what the user is trying to build.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"focus": {
"default": "all",
"description": "What aspects to emphasize in the comparison.",
"enum": [
"layout",
"sections",
"actions",
"dimensions",
"typography",
"all"
],
"type": "string"
},
"screenA": {
"description": "First screen id to compare, e.g. linear-marketing-pricing.",
"type": "string"
},
"screenB": {
"description": "Second screen id to compare. If omitted, provide targetDescription instead.",
"type": "string"
},
"targetDescription": {
"description": "Instead of screenB, describe what you're building to see how screenA matches, e.g. \"Pricing page with 3 tiers and a feature comparison table\".",
"type": "string"
}
},
"required": [
"screenA"
],
"type": "object"
},
"name": "compare_screens",
"outputSchema": {
"properties": {
"differences": {
"description": "How the two screens differ.",
"items": {
"type": "string"
},
"type": "array"
},
"observations": {
"description": "Design observations and takeaways from the comparison.",
"items": {
"type": "string"
},
"type": "array"
},
"report": {
"description": "Markdown summary of the comparison between the two screens.",
"type": "string"
},
"screenA": {
"description": "Details about the first screen.",
"properties": {
"actionCount": {
"type": "integer"
},
"height": {
"type": "integer"
},
"id": {
"type": "string"
},
"imageUrl": {
"type": "string"
},
"kind": {
"description": "flow is an onboarding step, marketing a public web page, product an in-app screen.",
"enum": [
"flow",
"marketing",
"product"
],
"type": "string"
},
"previewUrl": {
"type": "string"
},
"product": {
"type": "string"
},
"productName": {
"type": "string"
},
"screenType": {
"type": "string"
},
"sectionCount": {
"type": "integer"
},
"title": {
"type": "string"
},
"width": {
"type": "integer"
}
},
"type": "object"
},
"screenB": {
"description": "Details about the second screen (null if comparing against targetDescription).",
"nullable": true,
"properties": {
"actionCount": {
"type": "integer"
},
"height": {
"type": "integer"
},
"id": {
"type": "string"
},
"imageUrl": {
"type": "string"
},
"kind": {
"description": "flow is an onboarding step, marketing a public web page, product an in-app screen.",
"enum": [
"flow",
"marketing",
"product"
],
"type": "string"
},
"previewUrl": {
"type": "string"
},
"product": {
"type": "string"
},
"productName": {
"type": "string"
},
"screenType": {
"type": "string"
},
"sectionCount": {
"type": "integer"
},
"title": {
"type": "string"
},
"width": {
"type": "integer"
}
},
"type": "object"
},
"similarities": {
"description": "What the two screens have in common.",
"items": {
"type": "string"
},
"type": "array"
},
"targetDescription": {
"description": "The target description if comparing against text instead of screenB.",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Get the measured design guide for a product: observed font families, color palette, type scale,\nlayout patterns, spacing values, and component observations. Marketing site and product UI\nare measured separately.\n\nUse this when you want to match a competitor's design system, understand their visual language,\nor borrow their typography and color choices for your own project.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"context": {
"description": "Which surface to return. Omit for both.",
"enum": [
"marketing",
"product"
],
"type": "string"
},
"productId": {
"description": "Product id from listProducts, e.g. linear, stripe or airbnb.",
"type": "string"
}
},
"required": [
"productId"
],
"type": "object"
},
"name": "get_design",
"outputSchema": {
"properties": {
"contexts": {
"additionalProperties": {
"properties": {
"components": {
"items": {
"type": "string"
},
"type": "array"
},
"layout": {
"items": {
"type": "string"
},
"type": "array"
},
"palette": {
"items": {
"type": "object"
},
"type": "array"
},
"theme": {
"type": "string"
},
"type": {
"items": {
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"type": "object"
},
"font": {
"type": "string"
},
"product": {
"type": "string"
},
"summary": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Get the complete onboarding flow for a product: every step in order with titles, notes on\nwhat happens, observed transitions (button labels and where they lead), and which steps are\nalternate branches. Includes the handoff reference id to use with buildHandoff.\n\nUse this to study how a competitor structures their signup and onboarding, what information\nthey collect at each step, and how they guide users to activation.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"productId": {
"description": "Product id from listProducts, e.g. linear, stripe or airbnb.",
"type": "string"
}
},
"required": [
"productId"
],
"type": "object"
},
"name": "get_flow",
"outputSchema": {
"properties": {
"captured": {
"format": "date",
"type": "string"
},
"flowTitle": {
"type": "string"
},
"flowType": {
"enum": [
"signup-onboarding",
"search",
"checkout",
"booking",
"marketplace"
],
"type": "string"
},
"handoffId": {
"description": "Use with buildHandoff to get the full prompt.",
"type": "string"
},
"productId": {
"type": "string"
},
"productName": {
"type": "string"
},
"steps": {
"items": {
"properties": {
"branch": {
"description": "True if this step is an alternate path",
"type": "boolean"
},
"id": {
"type": "string"
},
"imageUrl": {
"type": "string"
},
"notes": {
"type": "string"
},
"previewUrl": {
"type": "string"
},
"title": {
"type": "string"
},
"transitions": {
"items": {
"properties": {
"action": {
"description": "The button or link text.",
"type": "string"
},
"to": {
"description": "Where this action leads.",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
}
},
{
"description": "Get a product's full collection: coverage notes, design summary, and every captured screen\ngrouped into onboarding flow, marketing pages, and in-product screens.\n\nUse this to explore a competitor's complete UI: their signup flow, pricing page, dashboard,\nsettings, and other screens. Each screen has notes and an image URL.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"productId": {
"description": "Product id from listProducts, e.g. linear, stripe or airbnb.",
"type": "string"
}
},
"required": [
"productId"
],
"type": "object"
},
"name": "get_product",
"outputSchema": {
"properties": {
"captureNote": {
"type": "string"
},
"captured": {
"format": "date",
"type": "string"
},
"counts": {
"properties": {
"flow": {
"type": "integer"
},
"marketing": {
"type": "integer"
},
"product": {
"type": "integer"
}
},
"type": "object"
},
"coverage": {
"type": "string"
},
"description": {
"type": "string"
},
"flowTitle": {
"type": "string"
},
"handoffs": {
"items": {
"type": "string"
},
"type": "array"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"screens": {
"properties": {
"flow": {
"items": {
"properties": {
"id": {
"type": "string"
},
"imageUrl": {
"type": "string"
},
"kind": {
"description": "flow is an onboarding step, marketing a public web page, product an in-app screen.",
"enum": [
"flow",
"marketing",
"product"
],
"type": "string"
},
"notes": {
"type": "string"
},
"previewUrl": {
"description": "Screen-sized preview (the top of long pages). Present on pick options.",
"type": "string"
},
"product": {
"type": "string"
},
"productName": {
"description": "Present on pick options.",
"type": "string"
},
"title": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"marketing": {
"items": {
"properties": {
"id": {
"type": "string"
},
"imageUrl": {
"type": "string"
},
"kind": {
"description": "flow is an onboarding step, marketing a public web page, product an in-app screen.",
"enum": [
"flow",
"marketing",
"product"
],
"type": "string"
},
"notes": {
"type": "string"
},
"previewUrl": {
"description": "Screen-sized preview (the top of long pages). Present on pick options.",
"type": "string"
},
"product": {
"type": "string"
},
"productName": {
"description": "Present on pick options.",
"type": "string"
},
"title": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"product": {
"items": {
"properties": {
"id": {
"type": "string"
},
"imageUrl": {
"type": "string"
},
"kind": {
"description": "flow is an onboarding step, marketing a public web page, product an in-app screen.",
"enum": [
"flow",
"marketing",
"product"
],
"type": "string"
},
"notes": {
"type": "string"
},
"previewUrl": {
"description": "Screen-sized preview (the top of long pages). Present on pick options.",
"type": "string"
},
"product": {
"type": "string"
},
"productName": {
"description": "Present on pick options.",
"type": "string"
},
"title": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"source": {
"type": "string"
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
},
"url": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Get everything recorded about one screen: notes on what it does and how it's laid out, source\nURL, image URLs and dimensions, observed actions and where they lead, and page sections for\nlong marketing pages.\n\nUse this to understand a specific UI pattern in detail before building something similar.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"screenId": {
"description": "Screen id from searchScreens or getProduct, e.g. linear-signup.",
"type": "string"
}
},
"required": [
"screenId"
],
"type": "object"
},
"name": "get_screen",
"outputSchema": {
"properties": {
"actions": {
"items": {
"properties": {
"label": {
"type": "string"
},
"region": {
"description": "Hotspot position as percentages of the image.",
"properties": {
"height": {
"type": "number"
},
"width": {
"type": "number"
},
"x": {
"type": "number"
},
"y": {
"type": "number"
}
},
"type": "object"
},
"to": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"branch": {
"type": "boolean"
},
"captured": {
"format": "date",
"type": "string"
},
"height": {
"type": "integer"
},
"id": {
"type": "string"
},
"imageUrl": {
"type": "string"
},
"kind": {
"description": "flow is an onboarding step, marketing a public web page, product an in-app screen.",
"enum": [
"flow",
"marketing",
"product"
],
"type": "string"
},
"notes": {
"type": "string"
},
"previewUrl": {
"type": "string"
},
"product": {
"type": "string"
},
"productName": {
"description": "Present on pick options.",
"type": "string"
},
"sections": {
"items": {
"properties": {
"title": {
"type": "string"
},
"y": {
"type": "integer"
}
},
"type": "object"
},
"type": "array"
},
"source": {
"type": "string"
},
"title": {
"type": "string"
},
"width": {
"type": "integer"
}
},
"type": "object"
}
},
{
"description": "Get the actual screenshot so you can see the UI. For marketing pages taller than 4000px,\npreview returns only the first screen (above the fold); use size=full for the whole page,\nwhich can exceed what vision models accept. getScreen lists the page's sections with their\ny offsets so you know what's below the fold.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"screenId": {
"description": "Screen id from searchScreens or getProduct, e.g. linear-signup.",
"type": "string"
},
"size": {
"default": "preview",
"description": "preview (default) keeps images small enough to view; full returns the original capture.",
"enum": [
"preview",
"full"
],
"type": "string"
}
},
"required": [
"screenId"
],
"type": "object"
},
"name": "get_screen_image",
"outputSchema": null
},
{
"description": "List every captured user journey: onboarding flows, signup sequences, checkout processes,\nbooking flows, and marketplace explorations. Shows step counts, flow type, and observed\ntransitions between steps.\n\nUse this to find complete user journey references—not just individual screens—so you can\nsee how products guide users through multi-step processes like signup, onboarding, or checkout.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"flowType": {
"description": "Only return flows of this type.",
"enum": [
"signup-onboarding",
"search",
"checkout",
"booking",
"marketplace"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "list_flows",
"outputSchema": {
"properties": {
"flows": {
"items": {
"properties": {
"branchCount": {
"description": "Steps that are alternate branches (not the main path).",
"type": "integer"
},
"flowTitle": {
"description": "Human-readable title for the flow",
"type": "string"
},
"flowType": {
"description": "What the flow accomplishes.",
"enum": [
"signup-onboarding",
"search",
"checkout",
"booking",
"marketplace"
],
"type": "string"
},
"handoffId": {
"description": "Use with buildHandoff",
"type": "string"
},
"productId": {
"type": "string"
},
"productName": {
"type": "string"
},
"stepCount": {
"description": "Total steps including branches.",
"type": "integer"
}
},
"type": "object"
},
"type": "array"
},
"total": {
"type": "integer"
}
},
"type": "object"
}
},
{
"description": "List every product in the UI reference catalog with its capture date, tags, coverage notes\nand screen counts. Start here to see what competitor products, design systems, and UI\npatterns are available.\n\nProducts include: Linear, Cursor, Vercel, Airbnb, Stripe, Duolingo, Notion, Raycast, Cal.com,\nFramer, and Supabase. Each has captured onboarding flows, marketing pages, and/or in-app screens.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
},
"name": "list_products",
"outputSchema": {
"properties": {
"products": {
"items": {
"properties": {
"captured": {
"format": "date",
"type": "string"
},
"counts": {
"properties": {
"flow": {
"type": "integer"
},
"marketing": {
"type": "integer"
},
"product": {
"type": "integer"
}
},
"type": "object"
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"source": {
"type": "string"
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
},
"url": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
}
},
{
"description": "Show the user several matching UI references side by side in their browser and let them click\nthe one to build from. Returns a URL to open for them.\n\nPrefer this over sending full-page images whenever the user should decide which reference to\nuse. The picker shows real screenshots at scroll depth so they can evaluate long pages.\n\nAfter calling this, tell them to choose in the picker, then call waitForPick with the pickId\nto get their choice and a complete build prompt.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"count": {
"default": 3,
"description": "How many options to show when searching, 2 to 6.",
"type": "number"
},
"goal": {
"description": "What the user is building, shown on the page and used in the build prompt, e.g. \"NSDR premium upgrade page\".",
"type": "string"
},
"kind": {
"description": "Only search this kind of screen.",
"enum": [
"flow",
"marketing",
"product"
],
"type": "string"
},
"product": {
"description": "Only search this product id.",
"type": "string"
},
"q": {
"description": "Search words, e.g. \"pricing page\", \"onboarding\", \"empty state\". The best matches become the options.",
"type": "string"
},
"screens": {
"description": "Comma-separated screen ids to show instead of searching, e.g. from an earlier searchScreens.",
"type": "string"
},
"stack": {
"description": "Preferred stack for the build prompt.",
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "pick_reference",
"outputSchema": {
"properties": {
"canvasUrl": {
"description": "Experimental pan-and-zoom canvas view of the same pick.",
"type": "string"
},
"next": {
"description": "What to do next.",
"type": "string"
},
"options": {
"items": {
"properties": {
"id": {
"type": "string"
},
"imageUrl": {
"type": "string"
},
"kind": {
"description": "flow is an onboarding step, marketing a public web page, product an in-app screen.",
"enum": [
"flow",
"marketing",
"product"
],
"type": "string"
},
"notes": {
"type": "string"
},
"previewUrl": {
"description": "Screen-sized preview (the top of long pages). Present on pick options.",
"type": "string"
},
"product": {
"type": "string"
},
"productName": {
"description": "Present on pick options.",
"type": "string"
},
"title": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"pickId": {
"type": "string"
},
"status": {
"enum": [
"pending"
],
"type": "string"
},
"url": {
"description": "Open this for the user.",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Search the UI reference catalog by keyword across titles, notes, page sections, and observed\nactions. Filter by product or kind (flow/marketing/product).\n\nUse this to find design pattern examples like \"pricing page\", \"empty state\", \"date picker\",\n\"onboarding step\", \"checkout form\", \"dashboard\", \"sign-up\", \"settings\", etc. Returns the\nbest matches with screen IDs you can pass to getScreen or getScreenImage.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"kind": {
"description": "Only return this kind of screen.",
"enum": [
"flow",
"marketing",
"product"
],
"type": "string"
},
"limit": {
"default": 20,
"description": "Maximum results, 1 to 50.",
"type": "number"
},
"product": {
"description": "Only return screens from this product id, e.g. linear, stripe, airbnb.",
"type": "string"
},
"q": {
"description": "Keywords to match, e.g. \"pricing page\", \"empty state\", \"onboarding\". Omit to list everything that matches the filters.",
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_screens",
"outputSchema": {
"properties": {
"screens": {
"items": {
"properties": {
"id": {
"type": "string"
},
"imageUrl": {
"type": "string"
},
"kind": {
"description": "flow is an onboarding step, marketing a public web page, product an in-app screen.",
"enum": [
"flow",
"marketing",
"product"
],
"type": "string"
},
"notes": {
"type": "string"
},
"previewUrl": {
"description": "Screen-sized preview (the top of long pages). Present on pick options.",
"type": "string"
},
"product": {
"type": "string"
},
"productName": {
"description": "Present on pick options.",
"type": "string"
},
"title": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"total": {
"type": "integer"
}
},
"type": "object"
}
},
{
"description": "Wait for the user to choose on the pick page. Long-polls up to 50 seconds—returns as soon as\nthey click, or status \"pending\" after the wait (call again if so).\n\nOnce chosen, returns their reference with its screenshot and a full build prompt, so you can\nstart building from it immediately. If they clicked \"None of these fit\", status is \"dismissed\"\nand you should ask what they want instead.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"pickId": {
"description": "The pickId returned by pickReference.",
"type": "string"
},
"wait": {
"default": 45,
"description": "Seconds to wait for a choice, 0 to 50.",
"type": "number"
}
},
"required": [
"pickId"
],
"type": "object"
},
"name": "wait_for_pick",
"outputSchema": {
"properties": {
"choice": {
"properties": {
"actions": {
"items": {
"properties": {
"label": {
"type": "string"
},
"region": {
"description": "Hotspot position as percentages of the image.",
"properties": {
"height": {
"type": "number"
},
"width": {
"type": "number"
},
"x": {
"type": "number"
},
"y": {
"type": "number"
}
},
"type": "object"
},
"to": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"branch": {
"type": "boolean"
},
"captured": {
"format": "date",
"type": "string"
},
"height": {
"type": "integer"
},
"id": {
"type": "string"
},
"imageUrl": {
"type": "string"
},
"kind": {
"description": "flow is an onboarding step, marketing a public web page, product an in-app screen.",
"enum": [
"flow",
"marketing",
"product"
],
"type": "string"
},
"notes": {
"type": "string"
},
"previewUrl": {
"type": "string"
},
"product": {
"type": "string"
},
"productName": {
"description": "Present on pick options.",
"type": "string"
},
"sections": {
"items": {
"properties": {
"title": {
"type": "string"
},
"y": {
"type": "integer"
}
},
"type": "object"
},
"type": "array"
},
"source": {
"type": "string"
},
"title": {
"type": "string"
},
"width": {
"type": "integer"
}
},
"type": "object"
},
"message": {
"type": "string"
},
"pickId": {
"type": "string"
},
"prompt": {
"description": "Build prompt for the chosen reference.",
"type": "string"
},
"status": {
"enum": [
"pending",
"chosen",
"dismissed"
],
"type": "string"
}
},
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:048286ecf7db1b05879819852640289666502176b1fff233c456202f2b47bb9a | sha256sum