regards-sections
Registry code: c03465c5b73486ee
regards.design is a library of real, well-made website sections to design from (heroes, navigation, pricing, footers…), each screenshotted and read for its layout, type, colour, imagery, motion and how new it is, and searchable in plain words.
The loop: search_sections with the brief; view_section the most promising (judge the pixels, not the summary); similar_sections widens from the ones that work; in every later search, similar_sections too, pass every key you've been shown as exclude_keys.
- endpoint
- https://mcp.regards.design/mcp
- protocol
- streamable-http ·2025-06-18
- authentication
- bearer
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is regards-sections live?
- Yes — it answered the hub's last check (checked 2h ago). It answered 100% of checks over the last 30 days.
- Is regards-sections free to use?
- Not anonymously — it asks for a key or a login before it will serve. Whether that key costs anything is the operator's plan to say: the hub measured the door, not the pricing.
- What tools does regards-sections have?
- 10 tools: list_boards, search_sections, upload_image, similar_sections, save_to_board, search_interactions, read_board, get_section, ….
- Is regards-sections safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 100%· all time 100%
last good check
of 10 tools
- unknown → live
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
list_boards auth-required 2h ago
The user's boards on regards.design, where they keep sections they liked: each board's id, name, how many sections it holds, whether it is shared by link, and its page (url). last is the board save_to_board uses when none is named; most and sectionsEach are how many boards the plan keeps (null: as many as the user likes) and how many sections each holds. Use it to find a board the user names ("my Pricing board") or to see what they have kept; read_board gives a board's sections.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": {} }arguments 5 linessearch_sections auth-required 2h ago
Find sections of real websites to design from, by how they look, what they show and say, and how unusual they are. Then view_section the most promising hits (a summary is one line), widen from the ones that work with similar_sections, and in every later search, similar_sections too, pass every key you've been shown as exclude_keys. Use it before you design, build or rethink a website, a landing page, a section, a brand's look on the web or a design system, or commit to an aesthetic direction; and whenever you or the user want inspiration (an aesthetic or mood, a UI element or pattern, a kind of section, something experimental, sites like a named one). Skip it only when the user has fixed the look. It searches regards.design's captures, not the live web, so it can't answer what a site looks like today or anything beyond its design. q is read like a designer's brief, for kinds of section, named sites, colours, the kind of page, things to avoid, motion and novelty; understood and applied show how it was read, and ignore drops a part of that reading. For sections that literally show some text, use contains; for kinds of site (only SaaS, no agencies…), categories and exclude_categories. An empty q browses the most distinctive sections. Results come in groups: exact (a site you named), match, related (past a filter that left few results, or a contains phrase's words apart), similar (like the named or liked sections) and browse. Each hit has its key, kind of section (role), a one-line summary, novelty from 1 (template) to 5 (experimental), whether it moves, what found it (match.via), a thumbnail and links (app: on regards.design; live: the live page). include adds each hit's bigger fields, left out by default to keep results small: "tiles" (images.tiles), "geometry" and "page" (the page in full). Positions are from our capture of the page (page.shotAt, page.viewport, usually 1440×900), not today's live page: y is CSS px from the top of the captured page.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "q": { "type": "string", "default": "", "maxLength": 2000, "description": "What to find, in plain words: a few words or a whole brief (at most 2,000 characters). Empty: browse." }, "like": { "type": "array", "items": { "type": "string", "maxLength": 120 }, "maxItems": 20, "description": "Section keys (\"page/section\"): also find sections that look and read like these (similar_sections does only that)." }, "mode": { "enum": [ "instant", "deep" ], "type": "string", "description": "deep (the default for a search with words) or instant. deep is the more careful search, for a design brief: a section being designed, with what it must show and be, \"not X\", or sites like a named one; it reads all of the brief and takes about half a minute. instant takes seconds: short looks and a named site's own sections. An empty q, contains alone and like are always instant. A deep search uses one Deep credit from the account: one that fails or cannot finish is not charged, the same search again today is not charged again, and with no credits left it is answered as instant (notices say which, and how many credits are left). One that needs longer answers with its first results, and the same search again returns the rest." }, "page": { "enum": [ "home", "subpage" ], "type": "string", "description": "'home': only sites' main pages; 'subpage': only other pages." }, "image": { "type": "string", "pattern": "^u[0-9a-f]{32}$", "description": "A picture to search with: the id upload_image's link answered with (\"u\" and 32 hex). q says what you want from it: lookalikes (empty, or \"like this\"), replacements (\"contenders for this hero\", \"a better version for this product\"), opposites (\"the opposite\") or lookalikes with a change (\"like this but dark\"). Deep reads the picture and the words together, the more careful search with it. Only this account's own uploads; one older than 30 days is gone (upload it again)." }, "limit": { "type": "integer", "default": 12, "maximum": 60, "minimum": 1, "description": "How many results (default 12, at most 60)." }, "roles": { "type": "array", "items": { "enum": [ "hero", "navigation", "logos", "features", "feature-detail", "product-demo", "how-it-works", "use-cases", "integrations", "comparison", "testimonials", "case-study", "stats", "pricing", "security", "cta", "faq", "team", "careers", "investors", "about", "work-gallery", "blog", "changelog", "contact", "community", "footer", "other" ], "type": "string" }, "maxItems": 6, "description": "Only these kinds of section. Usually leave it out: the query is read for them (\"pricing section\" → pricing; \"header\" → hero). Set it to force a filter." }, "sites": { "type": "array", "items": { "type": "string", "maxLength": 200 }, "maxItems": 5, "description": "Only these sites (host like \"linear.app\", a name like \"linear\", or a page id), as if named in the query." }, "colors": { "type": "array", "items": { "type": "string", "pattern": "^#?([0-9a-fA-F]{3}){1,2}$" }, "maxItems": 5, "description": "Colours the sections should show, as hex (\"#ff5500\", a brand's colours): the sections in every one of them rank first, the closest first. Colours named in q (\"dark\", \"white with orange accents\") are read from it without this." }, "ignore": { "type": "array", "items": { "enum": [ "roles", "page", "sites", "avoid", "motion", "novel", "colors" ], "type": "string" }, "description": "Parts of the query's reading to drop, e.g. ['roles'] when it filtered to the wrong kind of section, or ['colors'] when it ranked colours first you didn't mean." }, "include": { "type": "array", "items": { "enum": [ "tiles", "geometry", "page" ], "type": "string" }, "maxItems": 3, "description": "Which bigger fields each hit carries: \"tiles\" (images.tiles, its screenshot tiles' URLs; view_section shows the section itself), \"geometry\" (where it sits on its page, page px) and \"page\" (the page in full: host, height, shotAt, viewport, dsf, innerScroller). Left out by default; get_section has all of them for one section." }, "contains": { "type": "string", "maxLength": 200, "description": "Only sections that visibly show this text, as whole words (case, accents and punctuation ignored), e.g. \"Get started\" or \"pricing\": the exact phrase in a heading or large type ranks first, then smaller mentions, then sections with all its words apart. Alone it lists them; with q it filters that search. A q that starts with \"CONTAINS:\" does the same with the text after it; quotes in any other q are just part of the query. Each hit's match.text marks where it is." }, "diversity": { "enum": [ "site" ], "type": "string", "description": "'site': at most one section per site, for the widest spread (default: at most two). A site you name keeps its own." }, "categories": { "type": "array", "items": { "type": "string", "maxLength": 60 }, "maxItems": 24, "description": "Only sections from sites of these kinds, as regards.design files every site: ai, agency, portfolio, personal, saas, startup, product, technology, finance, fashion, ecommerce, editorial, books, art, photography, architecture, music, food-drink, health, education, entertainment, web3, crypto, resource. E.g. [\"saas\", \"ai\", \"product\"] for software and AI products only. Use it when the user wants references from a kind of site (a sector, \"only SaaS and AI sites\"), not to describe what they are designing. A site you name keeps its own group whatever its kind; applied.categories says what was kept to." }, "exclude_keys": { "type": "array", "items": { "type": "string", "maxLength": 120 }, "maxItems": 300, "description": "Leave out these sections (\"page/section\", hit.key): the ones earlier searches showed, so a search again brings new ones, and the ones turned down, with their other parts and repeats. They are left out before ranking, so the results still fill limit with others." }, "exclude_sites": { "type": "array", "items": { "type": "string", "maxLength": 200 }, "maxItems": 50, "description": "Leave out these sites (host like \"linear.app\", a name like \"linear\", or a page id), e.g. ones that keep coming back. They are left out before ranking, so the results still fill limit from other sites; applied.exclude says which were." }, "exclude_categories": { "type": "array", "items": { "type": "string", "maxLength": 60 }, "maxItems": 24, "description": "Leave out sections from sites of these kinds (the same names as categories), e.g. [\"agency\", \"portfolio\", \"fashion\"] for no design studios, agencies, portfolios or fashion brands. They are left out before ranking, so the results still fill limit; applied.excludeCategories says which were." } } }arguments 182 linesupload_image auth-required never probed
Get a link to send a picture to (a screenshot, a mockup, a photo of a sketch), to search sections with it: for agents that can run a shell command. Send the file with the curl command in the answer; it answers with the picture's id, which goes in search_sections' image, with q saying what you want from it ("replacements for this hero", "the opposite", "like this but dark"; empty: lookalikes). The link works for 15 minutes, for as many pictures as you need. PNG, JPEG or WebP, at most 4 MB: shrink a larger screenshot first (sips -Z 1600 on a Mac, magick -resize 1600x elsewhere). Only this account's searches can use the picture; it is kept 30 days.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": {} }arguments 5 linessimilar_sections auth-required never probed
Sections from any site that look and read like the given ones, by their screenshots and what they show. Use it to widen from hits you liked, or to find alternatives to a section you have. What is like the ones you liked includes ones you've seen: pass every key you've been shown as exclude_keys. q steers it ("like these but light"); roles, sites, page, contains and categories filter it, exclude_categories leaves out kinds of site, and exclude_sites and exclude_keys leave out what you have already seen. It answers like search_sections (same fields, and include adds the same bigger ones), in one group of kind "similar". Not for a description alone: search_sections takes that, and its like does the same with a query.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "keys" ], "properties": { "q": { "type": "string", "default": "", "maxLength": 2000, "description": "Optional: what else the results should be, in any words." }, "keys": { "type": "array", "items": { "type": "string", "maxLength": 120, "minLength": 3, "description": "A section key, \"page/section\" (hit.key)." }, "maxItems": 20, "minItems": 1, "description": "Section keys (\"page/section\") to find more like." }, "page": { "enum": [ "home", "subpage" ], "type": "string", "description": "'home': only sites' main pages; 'subpage': only other pages." }, "limit": { "type": "integer", "default": 12, "maximum": 60, "minimum": 1, "description": "How many results (default 12, at most 60)." }, "roles": { "type": "array", "items": { "enum": [ "hero", "navigation", "logos", "features", "feature-detail", "product-demo", "how-it-works", "use-cases", "integrations", "comparison", "testimonials", "case-study", "stats", "pricing", "security", "cta", "faq", "team", "careers", "investors", "about", "work-gallery", "blog", "changelog", "contact", "community", "footer", "other" ], "type": "string" }, "maxItems": 6, "description": "Only these kinds of section. Usually leave it out: the query is read for them (\"pricing section\" → pricing; \"header\" → hero). Set it to force a filter." }, "sites": { "type": "array", "items": { "type": "string", "maxLength": 200 }, "maxItems": 5, "description": "Only these sites (host like \"linear.app\", a name like \"linear\", or a page id), as if named in the query." }, "include": { "type": "array", "items": { "enum": [ "tiles", "geometry", "page" ], "type": "string" }, "maxItems": 3, "description": "Which bigger fields each hit carries: \"tiles\" (images.tiles, its screenshot tiles' URLs; view_section shows the section itself), \"geometry\" (where it sits on its page, page px) and \"page\" (the page in full: host, height, shotAt, viewport, dsf, innerScroller). Left out by default; get_section has all of them for one section." }, "contains": { "type": "string", "maxLength": 200, "description": "Only sections that visibly show this text, as whole words (case, accents and punctuation ignored), e.g. \"Get started\" or \"pricing\": the exact phrase in a heading or large type ranks first, then smaller mentions, then sections with all its words apart. Alone it lists them; with q it filters that search. A q that starts with \"CONTAINS:\" does the same with the text after it; quotes in any other q are just part of the query. Each hit's match.text marks where it is." }, "diversity": { "enum": [ "site" ], "type": "string", "description": "'site': at most one section per site, for the widest spread (default: at most two). A site you name keeps its own." }, "search_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "description": "Optional: the searchId of the search you got this from, so we learn which results were useful." }, "categories": { "type": "array", "items": { "type": "string", "maxLength": 60 }, "maxItems": 24, "description": "Only sections from sites of these kinds, as regards.design files every site: ai, agency, portfolio, personal, saas, startup, product, technology, finance, fashion, ecommerce, editorial, books, art, photography, architecture, music, food-drink, health, education, entertainment, web3, crypto, resource. E.g. [\"saas\", \"ai\", \"product\"] for software and AI products only. Use it when the user wants references from a kind of site (a sector, \"only SaaS and AI sites\"), not to describe what they are designing. A site you name keeps its own group whatever its kind; applied.categories says what was kept to." }, "exclude_keys": { "type": "array", "items": { "type": "string", "maxLength": 120 }, "maxItems": 300, "description": "Leave out these sections (\"page/section\", hit.key): the ones earlier searches showed, so a search again brings new ones, and the ones turned down, with their other parts and repeats. They are left out before ranking, so the results still fill limit with others." }, "exclude_sites": { "type": "array", "items": { "type": "string", "maxLength": 200 }, "maxItems": 50, "description": "Leave out these sites (host like \"linear.app\", a name like \"linear\", or a page id), e.g. ones that keep coming back. They are left out before ranking, so the results still fill limit from other sites; applied.exclude says which were." }, "exclude_categories": { "type": "array", "items": { "type": "string", "maxLength": 60 }, "maxItems": 24, "description": "Leave out sections from sites of these kinds (the same names as categories), e.g. [\"agency\", \"portfolio\", \"fashion\"] for no design studios, agencies, portfolios or fashion brands. They are left out before ranking, so the results still fill limit; applied.excludeCategories says which were." } } }arguments 156 linessave_to_board auth-required never probed
Save sections to one of the user's boards on regards.design, so they keep what they liked and find it there later. keys are section keys ("page/section", hit.key), up to 24. board is a board's id or name; a name that matches none of their boards makes a new board with it. Left out, the board saved to last (a first save makes one called "My board"). New sections go first on the board; one already on it stays where it is. The answer says what was added, what was there already and any key that isn't a published section. The plan sets how many boards the user keeps and how many sections each holds: a save that doesn't fit saves nothing and says why.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "keys" ], "properties": { "keys": { "type": "array", "items": { "type": "string", "maxLength": 120, "minLength": 3, "description": "A section key, \"page/section\" (hit.key)." }, "maxItems": 24, "minItems": 1, "description": "Section keys (\"page/section\"), as search results give them (hit.key)." }, "board": { "type": "string", "maxLength": 60, "minLength": 1, "description": "A board's id, or its name as the user calls it (\"Pricing\")." } } }arguments 27 linessearch_interactions auth-required 2h ago
Search a library of interactions recorded on live websites (hovers, clicks, focus states, scroll reveals, scroll-linked motion, loops, menu glides), each measured in the browser. Use it when the work is motion: a hover state, a menu, a reveal, an easing curve or a duration to choose, "make this feel like Stripe's", or motion that feels off ("my hover feels janky"). Describe the interaction in q: "a card hover that feels premium", "clip-path reveal", "a 60 ms stagger", "like Stripe's bento hover but softer". Filters narrow it, each strictly: trigger, element, moves, feel, min_ms and max_ms (the main move's length), look, site_kind, and curve (the main move rides close to it). Several values in one filter mean any of them; filters together mean all. With filters, q may be left out: then the results are all the filters keep (up to limit), the closest to curve first when it is given, and kept says how many there are. Each result is one real interaction: its beats as measured (when each starts, how long it runs, its curve), its moving parts, its feel and why it works, its main move's length and curve (measured), its clip (MP4) and a still (JPEG), and links to its page on regards.design and the live page: enough to recreate it. Show the user the ones you use, linked. If your client reads MCP resources, skill://regards-design/interactions/SKILL.md says how to turn one into code. A search with q is one Instant search on the account's plan, shared with search_sections; one with filters alone counts nothing. Both are rate-limited per minute. For static design (layout, type, colour), search_sections.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "q": { "type": "string", "default": "", "maxLength": 2000, "description": "The interaction you want, in any words. May be left out when a filter is given." }, "feel": { "type": "array", "items": { "enum": [ "ease-out", "ease-in-out", "ease-in", "linear", "spring", "out-and-back", "steps" ], "type": "string" }, "maxItems": 7, "description": "Only these curve families: ease-out, ease-in-out, ease-in, linear, spring (passes its end and settles back), out-and-back, steps." }, "look": { "type": "array", "items": { "enum": [ "grain", "film stock", "shallow focus", "motion blur", "dashed lines", "hairlines", "glass", "vellum", "risograph", "torn paper", "line work", "3D render", "one accent colour", "monochrome", "pixel grid" ], "type": "string" }, "maxItems": 15, "description": "Only these looks of the whole: one accent colour, hairlines, monochrome, line work, pixel grid, glass, 3D render, dashed lines, grain, shallow focus, …" }, "curve": { "type": "string", "maxLength": 300, "description": "Only interactions whose main move rides close to this curve (within 15% of the way at every moment): a CSS easing (\"cubic-bezier(0.16, 1, 0.3, 1)\", \"ease-out\", \"linear\", \"steps(4)\", a result's beats give theirs), a preset (expo-out, ease-out, ease-in-out, spring, linear) or a spring (\"spring(170, 18)\": stiffness, then damping). With q left out, the closest come first." }, "limit": { "type": "integer", "default": 10, "maximum": 24, "minimum": 1, "description": "How many results, at most." }, "moves": { "type": "array", "items": { "enum": [ "move", "scale", "rotate", "fade", "blur", "filter", "clip", "color", "gradient", "background", "shadow", "radius", "size", "outline", "text", "morph", "draw", "drawn" ], "type": "string" }, "maxItems": 18, "description": "Only interactions where one of these moves: move (position), scale, rotate, fade, blur, filter, clip (clip-path or mask), color, gradient, background, shadow, radius, size, outline, text (counts, typing, letters), morph (an SVG path), draw (a line drawing itself), drawn (a canvas or WebGL)." }, "max_ms": { "type": "integer", "maximum": 60000, "minimum": 1, "description": "Only interactions whose main move runs under this long, ms." }, "min_ms": { "type": "integer", "maximum": 60000, "minimum": 0, "description": "Only interactions whose main move runs at least this long, ms." }, "element": { "type": "array", "items": { "enum": [ "card", "button", "link", "nav", "menu", "tabs", "accordion", "input", "toggle", "list", "grid", "hero", "heading", "text", "image", "video", "icon", "logos", "marquee", "counter", "chart", "cursor", "modal", "carousel", "product-ui", "canvas", "section", "other" ], "type": "string" }, "maxItems": 28, "description": "Only these moving things: card, button, link, nav, menu, tabs, hero, heading, text, image, logos, marquee, product-ui, canvas, section, …" }, "trigger": { "type": "array", "items": { "enum": [ "hover", "click", "focus", "scroll-in", "scroll-linked", "loop", "glide" ], "type": "string" }, "maxItems": 7, "description": "Only these triggers: hover, click, focus, scroll-in (plays once as it scrolls into view), scroll-linked (tied to the scroll position), loop (plays by itself), glide (a highlight gliding along a menu)." }, "site_kind": { "type": "array", "items": { "enum": [ "ai", "agency", "portfolio", "personal", "saas", "startup", "product", "technology", "finance", "fashion", "ecommerce", "editorial", "books", "art", "photography", "architecture", "music", "food-drink", "health", "education", "entertainment", "web3", "crypto", "resource" ], "type": "string" }, "maxItems": 24, "description": "Only interactions from these kinds of site, as the gallery files sites: 'saas', 'ai', 'agency', 'portfolio', 'finance', …" } } }arguments 195 linesread_board auth-required never probed
One of the user's boards on regards.design: its sections in the order the user keeps them, each as search_sections gives a hit (key, kind of section, summary, novelty, whether it moves, links) without match. Use it to start from what the user saved, e.g. "use my Pricing board": view_section shows any of them, get_section gives one in full, similar_sections widens from their keys. include adds each hit's bigger fields, left out by default to keep results small: "tiles" (images.tiles), "geometry" and "page" (the page in full). Positions are from our capture of the page (page.shotAt, page.viewport, usually 1440×900), not today's live page: y is CSS px from the top of the captured page.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "board" ], "properties": { "board": { "type": "string", "maxLength": 60, "minLength": 1, "description": "A board's id, or its name as the user calls it (\"Pricing\")." }, "include": { "type": "array", "items": { "enum": [ "tiles", "geometry", "page" ], "type": "string" }, "maxItems": 3, "description": "Which bigger fields each hit carries: \"tiles\" (images.tiles, its screenshot tiles' URLs; view_section shows the section itself), \"geometry\" (where it sits on its page, page px) and \"page\" (the page in full: host, height, shotAt, viewport, dsf, innerScroller). Left out by default; get_section has all of them for one section." } } }arguments 28 linesget_section auth-required never probed
One section in full: its kind, summary, novelty and whether it moves (how certain, what kind of motion), its annotation (hit.annotation: how it is laid out and presented, its style tags, the details a designer would point out, each with its kind, a short name for its technique and where it is, and what moves on the live page with the evidence), its screenshot tiles in every size (images.tiles[].sizes: the same tile at smaller widths, px), the text it visibly shows (headings, labels and paragraphs top to bottom, each with its rect and font size), its page as captured (page, and pageSections: every section on it in brief) and sections of the same site's other captured pages (moreFromSite). Use it when you need a section's design details and words, where it sits on its page, or more from its site. It returns no image: view_section shows the section. Positions are from our capture of the page (page.shotAt, page.viewport, usually 1440×900), not today's live page: y is CSS px from the top of the captured page. geometry.top/height place the section and geometry.left/right are its horizontal crop. images.tiles are its screenshots top to bottom at page.dsf× pixels, each with top/height in section px (0 = the section's top).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "key" ], "properties": { "key": { "type": "string", "maxLength": 120, "minLength": 3, "description": "A section key, \"page/section\" (hit.key)." }, "search_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "description": "Optional: the searchId of the search you got this from, so we learn which results were useful." } } }arguments 21 linespage_sections auth-required never probed
A captured page's sections in order, top to bottom, each with its kind, summary, novelty and geometry: the page's structure and rhythm. Use it to see the whole page around a section you found, or to compare how sites build a page. page is a page id (hit.page.id); a section key works too. include adds each section's screenshot tiles ("tiles") and its page in full ("page"); page, at the top, is in full anyway. It returns no image: view_section shows a section. Positions are from our capture of the page (page.shotAt, page.viewport, usually 1440×900), not today's live page: y is CSS px from the top of the captured page. geometry.top/height place the section and geometry.left/right are its horizontal crop. images.tiles are its screenshots top to bottom at page.dsf× pixels, each with top/height in section px (0 = the section's top).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "page" ], "properties": { "page": { "type": "string", "maxLength": 120, "minLength": 1, "description": "A page id (hit.page.id), or any section key on that page." }, "include": { "type": "array", "items": { "enum": [ "tiles", "geometry", "page" ], "type": "string" }, "maxItems": 3, "description": "Which bigger fields each section carries: \"tiles\" (images.tiles, its screenshot tiles' URLs) and \"page\" (the page in full; the answer's page has it once). Left out by default. Geometry comes with every section." }, "search_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "description": "Optional: the searchId of the search you got this from, so we learn which results were useful." } } }arguments 34 linesview_section auth-required never probed
See a section: one image of its screenshot tiles stitched top to bottom (every part of a long section), its long edge at most max_px. Use it to judge a section by its pixels before you choose, describe or build from it: the summary is one line. context_px adds that many page px of the sections above and below, from the same capture, with thin magenta lines where the section starts and ends. from_px/to_px show only part of it (section px, 0 = its top), such as a text block's rect from get_section, larger; the image is never scaled past the tiles' own resolution (page.dsf×). The text result maps image px back to page px. Positions are from our capture of the page (page.shotAt, page.viewport, usually 1440×900), not today's live page: y is CSS px from the top of the captured page.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "key" ], "properties": { "key": { "type": "string", "maxLength": 120, "minLength": 3, "description": "A section key, \"page/section\" (hit.key)." }, "to_px": { "type": "integer", "maximum": 50000, "minimum": 1, "description": "Show the section down to here, section px (default: its bottom)." }, "format": { "enum": [ "jpeg", "png", "webp" ], "type": "string", "default": "jpeg", "description": "Image format (default jpeg)." }, "max_px": { "type": "integer", "default": 1568, "maximum": 4096, "minimum": 256, "description": "Long edge of the image, px (default 1568)." }, "from_px": { "type": "integer", "maximum": 50000, "minimum": 0, "description": "Show the section from here, section px (default: its top)." }, "search_id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "description": "Optional: the searchId of the search you got this from, so we learn which results were useful." }, "context_px": { "type": "integer", "default": 0, "maximum": 2400, "minimum": 0, "description": "Page px of the neighbouring sections to show above and below (default 0)." } } }arguments 57 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's idc03465c5b73486ee.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/c03465c5b73486ee/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/c03465c5b73486ee?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.