{"name":"MyLegend public profiles","description":"Find and read owner-published personal profiles and ask bounded questions using approved public facts. Publication is not independent identity verification.","url":"https://mylegend.id/connect","http":{"authentication":"none","openApiUrl":"https://mylegend.id/openapi.json","search":{"urlTemplate":"https://mylegend.id/api/people?query={query}","method":"GET","maxResults":10},"profileUrlTemplate":"https://mylegend.id/api/people/{slug}","ask":{"urlTemplate":"https://mylegend.id/api/people/{slug}/ask","method":"POST","contentType":"application/json","browseUrlTemplate":"https://mylegend.id/api/people/{slug}/ask?question={question}","browseMethod":"GET","scope":"approved-public-answers","mutatesOwnerData":false},"browserSearchUrl":"https://mylegend.id/people"},"mcp":{"url":"https://mylegend.id/mcp","transport":"streamable-http","authentication":"none for public tools","tools":["find_person","get_profile","ask_person"]},"rendering":{"web":{"cardUrlTemplate":"https://mylegend.id/people/{slug}/card","embedUrlTemplate":"https://mylegend.id/people/{slug}/card/embed","dataUrlTemplate":"https://mylegend.id/api/people/{slug}/card","askUrlTemplate":"https://mylegend.id/api/people/{slug}/ask","authentication":"none","interactive":true},"mcpApp":{"tool":"get_profile","resourceUri":"ui://mylegend/person-card-v27-ai-data-handoff.html","mimeType":"text/html;profile=mcp-app","requiresConnectedHost":true,"authentication":"none for public cards"},"hostGenerated":{"dataUrlTemplate":"https://mylegend.id/api/people/{slug}/card","dataVersion":"1.0","includes":["approved-public-card","portrait","labelled-links","platform-icon-urls","presentation-guidance","suggested-questions","public-answer-action"],"requiresMcpConnection":false,"renderingControlledByHost":true},"presentation":{"brand":{"name":"MyLegend.id","logoUrl":"https://mylegend.id/mylegend-emblem.png","logoAlt":"MyLegend"},"colors":{"text":"#102a4a","accent":"#5665ff","background":"#ffffff","border":"#d8e5ee"},"theme":{"mode":"host-preference","fallback":"prefers-color-scheme","light":{"text":"#102a4a","muted":"#52677f","accent":"#4654cf","background":"#ffffff","surface":"#f1f5fa","border":"#d8e5ee","hover":"#e8edf6","focus":"#4654cf"},"dark":{"text":"#e8eef8","muted":"#b0bed0","accent":"#a1aaff","background":"#111827","surface":"#1b2639","border":"#42516a","hover":"#25344a","focus":"#b7beff"}},"typography":{"name":"Georgia, serif","body":"system-ui, sans-serif"},"shape":{"borderRadius":"27px","maxWidth":"590px"},"layout":{"identity":"Name, headline and location on the left; approved portrait on the right.","portrait":{"width":"126px","height":"138px","borderRadius":"22px","objectFit":"cover"},"introduction":{"maxCharacters":220,"overflow":"Read more"},"details":{"controls":["Work","Interests"],"initiallyExpanded":false,"maxItemsPerPanel":3},"gallery":{"label":"Photos & stories","initiallyExpanded":false,"maxPhotos":8,"objectFit":"contain","showCaptions":true},"links":"One wrapping row of clickable icon-and-label links; retain every supplied destination.","attribution":"Host-generated · owner-published","originalCardLabel":"Open MyLegend card"},"guidance":["Build one card, not separate portrait, logo or link galleries. Follow the layout with compact spacing, a serif name and a rounded container.","Use the host's active light/dark theme when available, otherwise prefers-color-scheme, and respond to theme changes. Apply one complete theme palette to the outer card, header, body, panels, initials, link buttons, footer and focus/hover states. In dark mode use the dark background throughout with light text; never combine a white body with a black header. Set explicit matching foreground and background colours in each embedded fragment so inherited host styles cannot invert only part of the card.","Use theme.text for monochrome currentColor icons and theme.accent for controls. Preserve multicolour brand marks and portraits without blanket inversion filters. If a fixed-colour logo lacks contrast, give only that logo a small light backing, not the entire link button. Keep visible labels readable, keyboard focus clear and normal text at least 4.5:1 against its surface.","Load portrait.url directly as an image with its alt text and the portrait dimensions. If it fails, hide or remove the failed image and show centred initials; never leave a broken-image icon or visible alt text over the initials. Do not find a replacement photo or describe a fallback as the owner's portrait. If brand.logoUrl cannot load, hide the failed image and use the MyLegend.id name without a made-up symbol.","Draw linkItems.icon as inline SVG from its viewBox, paths, fill, stroke and strokeWidth when remote icon images cannot load. Put each icon and its visible linkItems.label inside the same clickable link to linkItems.url; never render unlabelled logos or a duplicate gallery.","Keep the introduction to 220 characters with Read more for additional approved text. Work and Interests start collapsed; opening one shows up to three short points, with more available on request. Do not invent or silently drop facts to shorten them.","If gallery is supplied, place its approved photos and captions in one collapsed Photos & stories section using galleryTitle and galleryDescription. Let the viewer choose a thumbnail or previous/next photo. Show each full image with contain, keeping caption and optional sourceUrl with that image. Preserve the owner's order and portrait; do not promote photo stories into the introduction or invent additional images.","Use one small footer attribution: Host-generated · owner-published, plus Open MyLegend card linking to cardUrl. No repeated provenance headings, revision badges, implementation explanations or paragraphs before and after the card unless the user asks. A missing photo can be mentioned once in one short sentence.","The AI sharing URL and this card data URL return JSON. Read the data to generate an inline interface; do not put a JSON URL into an iframe. For a browser fallback link cardUrl; only embed embedUrl when the host permits external websites. Use normal links for browser fallbacks or GET answers, not window.open popups that browsers may block. A viewer shell without retrieved profile data or a live agent call is not a working interactive agent.","Prioritise the surrounding AI conversation for richer follow-up questions. If the host can send a conversation message, offer Continue in AI chat; otherwise offer a copyable prompt using the public card data URL. Keep any in-card Ask field a secondary quick-answer option. Never describe a copied link as a connected agent.","For public agent questions, use actions.ask.browseUrlTemplate with a URL-encoded question when the host only browses URLs, or actions.ask POST when it can make HTTP calls. No sign-in is needed. Keep this separate from private messaging. Only show a live Ask control if the host can actually call it; use the returned answer and distinguish any host AI synthesis. Never imply a generated answer came from the owner's agent.","Private messaging uses the original card's verified, reviewed flow. Do not replace it with an unverified send button."]},"note":"These routes coexist. Prefer MyLegend's live component when the host can mount it; otherwise generate a view from approved public data or link to the browser card. None requires disabling another route."}}