[{"data":1,"prerenderedAt":883},["ShallowReactive",2],{"navigation_docs":3,"-apps-patterns-reference":287,"-apps-patterns-reference-surround":878},[4,40,70,99,122,156,189,258],{"title":5,"path":6,"stem":7,"children":8,"page":39},"Getting Started","\u002Fgetting-started","1.getting-started",[9,14,19,24,29,34],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-book-open",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F3.configuration","i-lucide-settings",{"title":25,"path":26,"stem":27,"icon":28},"Inspector","\u002Fgetting-started\u002Finspector","1.getting-started\u002F4.inspector","i-lucide-circuit-board",{"title":30,"path":31,"stem":32,"icon":33},"Connection","\u002Fgetting-started\u002Fconnection","1.getting-started\u002F5.connection","i-lucide-plug",{"title":35,"path":36,"stem":37,"icon":38},"Agent Skills","\u002Fgetting-started\u002Fagent-skills","1.getting-started\u002F6.agent-skills","i-lucide-sparkles",false,{"title":41,"path":42,"stem":43,"children":44,"page":39},"Tools","\u002Ftools","2.tools",[45,50,55,60,65],{"title":46,"path":47,"stem":48,"icon":49},"Overview","\u002Ftools\u002Foverview","2.tools\u002F0.overview","i-lucide-wrench",{"title":51,"path":52,"stem":53,"icon":54},"Schema, handler & returns","\u002Ftools\u002Fschema-handler","2.tools\u002F1.schema-handler","i-lucide-braces",{"title":56,"path":57,"stem":58,"icon":59},"Annotations & input examples","\u002Ftools\u002Fannotations","2.tools\u002F2.annotations","i-lucide-badge-info",{"title":61,"path":62,"stem":63,"icon":64},"Errors & caching","\u002Ftools\u002Ferrors-caching","2.tools\u002F3.errors-caching","i-lucide-shield",{"title":66,"path":67,"stem":68,"icon":69},"Groups, files & dynamic registration","\u002Ftools\u002Fgroups-organization","2.tools\u002F4.groups-organization","i-lucide-tags",{"title":71,"path":72,"stem":73,"children":74,"page":39},"Resources","\u002Fresources","3.resources",[75,79,84,89,94],{"title":46,"path":76,"stem":77,"icon":78},"\u002Fresources\u002Foverview","3.resources\u002F0.overview","i-lucide-package",{"title":80,"path":81,"stem":82,"icon":83},"Static resources & structure","\u002Fresources\u002Fstatic-and-structure","3.resources\u002F1.static-and-structure","i-lucide-file-stack",{"title":85,"path":86,"stem":87,"icon":88},"Templates & handlers","\u002Fresources\u002Ftemplates-and-handlers","3.resources\u002F2.templates-and-handlers","i-lucide-git-branch",{"title":90,"path":91,"stem":92,"icon":93},"Metadata, content & errors","\u002Fresources\u002Fcontent-metadata-errors","3.resources\u002F3.content-metadata-errors","i-lucide-layers",{"title":95,"path":96,"stem":97,"icon":98},"Groups & organization","\u002Fresources\u002Forganization","3.resources\u002F4.organization","i-lucide-folder-tree",{"title":100,"path":101,"stem":102,"children":103,"page":39},"Prompts","\u002Fprompts","4.prompts",[104,108,113,117],{"title":46,"path":105,"stem":106,"icon":107},"\u002Fprompts\u002Foverview","4.prompts\u002F0.overview","i-lucide-message-square",{"title":109,"path":110,"stem":111,"icon":112},"Authoring & structure","\u002Fprompts\u002Fauthoring","4.prompts\u002F1.authoring","i-lucide-pen-line",{"title":114,"path":115,"stem":116,"icon":93},"Input, handler & messages","\u002Fprompts\u002Finput-handler-messages","4.prompts\u002F2.input-handler-messages",{"title":118,"path":119,"stem":120,"icon":121},"Patterns & advanced","\u002Fprompts\u002Fpatterns-advanced","4.prompts\u002F3.patterns-advanced","i-lucide-line-chart",{"title":123,"path":124,"stem":125,"children":126,"page":39},"Handlers","\u002Fhandlers","5.handlers",[127,131,136,141,146,151],{"title":46,"path":128,"stem":129,"icon":130},"\u002Fhandlers\u002Foverview","5.handlers\u002F0.overview","i-lucide-server",{"title":132,"path":133,"stem":134,"icon":135},"Default & custom handlers","\u002Fhandlers\u002Fdefault-and-custom","5.handlers\u002F1.default-and-custom","i-lucide-toggle-left",{"title":137,"path":138,"stem":139,"icon":140},"Structure & options","\u002Fhandlers\u002Fstructure-and-options","5.handlers\u002F2.structure-and-options","i-lucide-sliders-horizontal",{"title":142,"path":143,"stem":144,"icon":145},"Examples & routing","\u002Fhandlers\u002Fexamples-routing","5.handlers\u002F3.examples-routing","i-lucide-route",{"title":147,"path":148,"stem":149,"icon":150},"Sharing & practices","\u002Fhandlers\u002Fsharing-practices","5.handlers\u002F4.sharing-practices","i-lucide-share-2",{"title":152,"path":153,"stem":154,"icon":155},"Multi-handler organization","\u002Fhandlers\u002Forganization","5.handlers\u002F5.organization","i-lucide-network",{"title":157,"path":158,"stem":159,"children":160,"page":39},"Apps","\u002Fapps","6.apps",[161,165,170,175,179,184],{"title":46,"path":162,"stem":163,"icon":164},"\u002Fapps\u002Foverview","6.apps\u002F0.overview","i-lucide-app-window",{"title":166,"path":167,"stem":168,"icon":169},"Authoring & defineMcpApp","\u002Fapps\u002Fauthoring","6.apps\u002F1.authoring","i-lucide-code-2",{"title":171,"path":172,"stem":173,"icon":174},"useMcpApp() bridge","\u002Fapps\u002Fuse-mcp-app","6.apps\u002F2.use-mcp-app","i-lucide-message-circle",{"title":176,"path":177,"stem":178,"icon":64},"CSP & build pipeline","\u002Fapps\u002Fcsp-and-wiring","6.apps\u002F3.csp-and-wiring",{"title":180,"path":181,"stem":182,"icon":183},"Testing & publishing","\u002Fapps\u002Ftesting-publishing","6.apps\u002F4.testing-publishing","i-lucide-rocket",{"title":185,"path":186,"stem":187,"icon":188},"Patterns & limits","\u002Fapps\u002Fpatterns-reference","6.apps\u002F5.patterns-reference","i-lucide-book-marked",{"title":190,"path":191,"stem":192,"children":193,"page":39},"Advanced Topics","\u002Fadvanced","7.advanced",[194,199,204,209,214,219,223,228,233,238,243,248,253],{"title":195,"path":196,"stem":197,"icon":198},"Custom Paths","\u002Fadvanced\u002Fcustom-paths","7.advanced\u002F1.custom-paths","i-lucide-folder",{"title":200,"path":201,"stem":202,"icon":203},"Logging","\u002Fadvanced\u002Flogging","7.advanced\u002F10.logging","i-lucide-scroll-text",{"title":205,"path":206,"stem":207,"icon":208},"MCP Apps Internals","\u002Fadvanced\u002Fmcp-apps-internals","7.advanced\u002F11.mcp-apps-internals","i-lucide-cog",{"title":210,"path":211,"stem":212,"icon":213},"Listing Definitions","\u002Fadvanced\u002Flisting-definitions","7.advanced\u002F12.listing-definitions","i-lucide-list",{"title":215,"path":216,"stem":217,"icon":218},"llms.txt discovery","\u002Fadvanced\u002Fllms-txt","7.advanced\u002F13.llms-txt","i-lucide-file-text",{"title":220,"path":221,"stem":222,"icon":64},"Middleware","\u002Fadvanced\u002Fmiddleware","7.advanced\u002F2.middleware",{"title":224,"path":225,"stem":226,"icon":227},"TypeScript","\u002Fadvanced\u002Ftypescript","7.advanced\u002F3.typescript","i-lucide-type",{"title":229,"path":230,"stem":231,"icon":232},"Hooks","\u002Fadvanced\u002Fhooks","7.advanced\u002F4.hooks","i-lucide-webhook",{"title":234,"path":235,"stem":236,"icon":237},"MCP Evals","\u002Fadvanced\u002Fevals","7.advanced\u002F5.evals","i-lucide-flask-conical",{"title":239,"path":240,"stem":241,"icon":242},"Sessions","\u002Fadvanced\u002Fsessions","7.advanced\u002F6.sessions","i-lucide-database",{"title":244,"path":245,"stem":246,"icon":247},"Dynamic Definitions","\u002Fadvanced\u002Fdynamic-definitions","7.advanced\u002F7.dynamic-definitions","i-lucide-toggle-right",{"title":249,"path":250,"stem":251,"icon":252},"Code Mode","\u002Fadvanced\u002Fcode-mode","7.advanced\u002F8.code-mode","i-lucide-code",{"title":254,"path":255,"stem":256,"icon":257},"Elicitation","\u002Fadvanced\u002Felicitation","7.advanced\u002F9.elicitation","i-lucide-message-square-quote",{"title":259,"path":260,"stem":261,"children":262,"page":39},"Examples","\u002Fexamples","8.examples",[263,268,273,278,283],{"title":264,"path":265,"stem":266,"icon":267},"Authentication","\u002Fexamples\u002Fauthentication","8.examples\u002F1.authentication","i-lucide-shield-check",{"title":269,"path":270,"stem":271,"icon":272},"API Integration","\u002Fexamples\u002Fapi-integration","8.examples\u002F2.api-integration","i-lucide-globe",{"title":274,"path":275,"stem":276,"icon":277},"Common Patterns","\u002Fexamples\u002Fcommon-patterns","8.examples\u002F3.common-patterns","i-lucide-lightbulb",{"title":279,"path":280,"stem":281,"icon":282},"File Operations","\u002Fexamples\u002Ffile-operations","8.examples\u002F4.file-operations","i-lucide-file",{"title":284,"path":285,"stem":286,"icon":107},"Prompt Examples","\u002Fexamples\u002Fprompt-examples","8.examples\u002F5.prompt-examples",{"id":288,"title":185,"body":289,"description":869,"extension":870,"links":871,"meta":872,"navigation":873,"path":186,"seo":874,"stem":187,"__hash__":877},"docs\u002F6.apps\u002F5.patterns-reference.md",{"type":290,"value":291,"toc":858},"minimark",[292,297,306,320,427,431,434,501,505,512,578,581,585,592,596,603,646,649,697,707,711,846,854],[293,294,296],"h2",{"id":295},"patterns","Patterns",[298,299,301,302],"h3",{"id":300},"skeletons-during-calltool","Skeletons during ",[303,304,305],"code",{},"callTool",[307,308,309,312,313,316,317,319],"p",{},[303,310,311],{},"pending"," flips to ",[303,314,315],{},"true"," only during in-flight ",[303,318,305],{}," calls — perfect for partial UI updates without losing the previous data:",[321,322,327],"pre",{"className":323,"code":324,"language":325,"meta":326,"style":326},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cbutton :disabled=\"pending\" @click=\"callTool('color-picker', { base: nextBase })\">\n  {{ pending ? 'Mixing…' : 'Try this colour' }}\n\u003C\u002Fbutton>\n","vue","",[303,328,329,411,417],{"__ignoreMap":326},[330,331,334,338,342,345,349,352,355,358,360,363,366,368,370,373,376,379,383,385,388,391,394,397,400,403,406,408],"span",{"class":332,"line":333},"line",1,[330,335,337],{"class":336},"sMK4o","\u003C",[330,339,341],{"class":340},"swJcz","button",[330,343,344],{"class":336}," :",[330,346,348],{"class":347},"spNyl","disabled",[330,350,351],{"class":336},"=",[330,353,354],{"class":336},"\"",[330,356,311],{"class":357},"sTEyZ",[330,359,354],{"class":336},[330,361,362],{"class":336}," @",[330,364,365],{"class":347},"click",[330,367,351],{"class":336},[330,369,354],{"class":336},[330,371,305],{"class":372},"s2Zo4",[330,374,375],{"class":357},"(",[330,377,378],{"class":336},"'",[330,380,382],{"class":381},"sfazB","color-picker",[330,384,378],{"class":336},[330,386,387],{"class":336},",",[330,389,390],{"class":336}," {",[330,392,393],{"class":340}," base",[330,395,396],{"class":336},":",[330,398,399],{"class":357}," nextBase ",[330,401,402],{"class":336},"}",[330,404,405],{"class":357},")",[330,407,354],{"class":336},[330,409,410],{"class":336},">\n",[330,412,414],{"class":332,"line":413},2,[330,415,416],{"class":357},"  {{ pending ? 'Mixing…' : 'Try this colour' }}\n",[330,418,420,423,425],{"class":332,"line":419},3,[330,421,422],{"class":336},"\u003C\u002F",[330,424,341],{"class":340},[330,426,410],{"class":336},[298,428,430],{"id":429},"adapting-to-fullscreen-vs-inline","Adapting to fullscreen vs inline",[307,432,433],{},"Hosts can mount your app inline (small) or expand it fullscreen. Switch layout primitives:",[321,435,437],{"className":323,"code":436,"language":325,"meta":326,"style":326},"\u003Csection :class=\"['rail', isFullscreen && 'rail-grid']\">\n  \u003C!-- horizontal scroll inline, CSS grid in fullscreen -->\n\u003C\u002Fsection>\n",[303,438,439,488,493],{"__ignoreMap":326},[330,440,441,443,446,448,451,453,455,458,460,463,465,467,470,473,476,479,481,484,486],{"class":332,"line":333},[330,442,337],{"class":336},[330,444,445],{"class":340},"section",[330,447,344],{"class":336},[330,449,450],{"class":347},"class",[330,452,351],{"class":336},[330,454,354],{"class":336},[330,456,457],{"class":357},"[",[330,459,378],{"class":336},[330,461,462],{"class":381},"rail",[330,464,378],{"class":336},[330,466,387],{"class":336},[330,468,469],{"class":357}," isFullscreen ",[330,471,472],{"class":336},"&&",[330,474,475],{"class":336}," '",[330,477,478],{"class":381},"rail-grid",[330,480,378],{"class":336},[330,482,483],{"class":357},"]",[330,485,354],{"class":336},[330,487,410],{"class":336},[330,489,490],{"class":332,"line":413},[330,491,492],{"class":357},"  \u003C!-- horizontal scroll inline, CSS grid in fullscreen -->\n",[330,494,495,497,499],{"class":332,"line":419},[330,496,422],{"class":336},[330,498,445],{"class":340},[330,500,410],{"class":336},[298,502,504],{"id":503},"app-to-app-workflows","App-to-app workflows",[307,506,507,508,511],{},"Use ",[303,509,510],{},"sendPrompt"," from app A and let the LLM dispatch to app B. The user perceives a smooth transition; the LLM stays in the loop and can carry parameters through:",[321,513,515],{"className":323,"code":514,"language":325,"meta":326,"style":326},"\u003Cbutton @click=\"sendPrompt(`Generate a typography scale for ${swatch.hex}.`)\">\n  Pair with type\n\u003C\u002Fbutton>\n",[303,516,517,565,570],{"__ignoreMap":326},[330,518,519,521,523,525,527,529,531,533,535,538,541,544,547,550,553,555,557,559,561,563],{"class":332,"line":333},[330,520,337],{"class":336},[330,522,341],{"class":340},[330,524,362],{"class":336},[330,526,365],{"class":347},[330,528,351],{"class":336},[330,530,354],{"class":336},[330,532,510],{"class":372},[330,534,375],{"class":357},[330,536,537],{"class":336},"`",[330,539,540],{"class":381},"Generate a typography scale for ",[330,542,543],{"class":336},"${",[330,545,546],{"class":357},"swatch",[330,548,549],{"class":336},".",[330,551,552],{"class":357},"hex",[330,554,402],{"class":336},[330,556,549],{"class":381},[330,558,537],{"class":336},[330,560,405],{"class":357},[330,562,354],{"class":336},[330,564,410],{"class":336},[330,566,567],{"class":332,"line":413},[330,568,569],{"class":357},"  Pair with type\n",[330,571,572,574,576],{"class":332,"line":419},[330,573,422],{"class":336},[330,575,341],{"class":340},[330,577,410],{"class":336},[307,579,580],{},"The LLM picks the right tool from the prompt — keep names predictable.",[298,582,584],{"id":583},"co-locating-css","Co-locating CSS",[307,586,587,588,549],{},"Use scoped styles or any CSS-in-JS solution that emits inline styles. The bundler inlines all styles into the HTML; ",[589,590,591],"strong",{},"no external CSS request fires from the iframe",[293,593,595],{"id":594},"what-you-cannot-do-yet","What You Cannot Do (Yet)",[307,597,598,599,602],{},"MCP Apps run inside an isolated ",[303,600,601],{},"iframe"," with no access to your Nuxt runtime context. That means:",[604,605,606,614,634,640],"ul",{},[607,608,609,610,613],"li",{},"❌ ",[589,611,612],{},"Nuxt UI \u002F Nuxt Image \u002F NuxtLink"," — they need the parent Nuxt app's runtime.",[607,615,609,616,619,620,623,624,623,627,623,630,633],{},[589,617,618],{},"Auto-imported Nuxt composables"," (",[303,621,622],{},"useFetch",", ",[303,625,626],{},"useState",[303,628,629],{},"useRoute",[303,631,632],{},"useNuxtApp",", …).",[607,635,609,636,639],{},[589,637,638],{},"Pinia stores or app-level plugins"," — different module graph.",[607,641,609,642,645],{},[589,643,644],{},"Cookies, headers, session from the parent page"," — sandboxed origin.",[307,647,648],{},"What you can use:",[604,650,651,666,673,683,694],{},[607,652,653,654,623,657,623,660,623,663,633],{},"✅ Vue 3 + Composition API (auto-imported: ",[303,655,656],{},"ref",[303,658,659],{},"computed",[303,661,662],{},"watch",[303,664,665],{},"onMounted",[607,667,668,669,672],{},"✅ ",[303,670,671],{},"useMcpApp()"," — the only toolkit composable in the iframe.",[607,674,668,675,678,679,682],{},[303,676,677],{},"$fetch"," inside ",[303,680,681],{},"handler"," (server side) — call any Nuxt API.",[607,684,685,686,689,690,693],{},"✅ Co-located ",[303,687,688],{},".ts","\u002F",[303,691,692],{},".css"," helpers next to the SFC (the bundler inlines them).",[607,695,696],{},"✅ Headless UI libraries (Reka UI, Headless UI Vue, Floating UI) — they're framework-agnostic.",[698,699,702,703,706],"callout",{"color":700,"icon":701},"info","i-lucide-info","Need rich components? Build a small co-located design system in your apps directory, such as ",[303,704,705],{},"app\u002Fmcp\u002F_components\u002F"," — it gets bundled into every app that imports it. Or pull in a headless library that doesn't depend on the host runtime.",[293,708,710],{"id":709},"reference","Reference",[712,713,714,730],"table",{},[715,716,717],"thead",{},[718,719,720,724,727],"tr",{},[721,722,723],"th",{},"API",[721,725,726],{},"Where",[721,728,729],{},"Purpose",[731,732,733,749,783,798,822],"tbody",{},[718,734,735,741,746],{},[736,737,738],"td",{},[303,739,740],{},"defineMcpApp()",[736,742,743],{},[303,744,745],{},"\u003Cscript setup>",[736,747,748],{},"Declare the tool, schema, handler, CSP. Stripped from the browser bundle.",[718,750,751,756,759],{},[736,752,753],{},[303,754,755],{},"useMcpApp\u003CT>()",[736,757,758],{},"SFC body",[736,760,761,762,765,766,765,769,765,772,775,776,623,778,623,780,549],{},"Reactive ",[303,763,764],{},"initialData"," \u002F ",[303,767,768],{},"data",[303,770,771],{},"loading",[303,773,774],{},"hostContext"," + ",[303,777,305],{},[303,779,510],{},[303,781,782],{},"openLink",[718,784,785,790,795],{},[736,786,787],{},[303,788,789],{},"csp.resourceDomains",[736,791,792],{},[303,793,794],{},"defineMcpApp",[736,796,797],{},"Allow-list image \u002F font \u002F style origins.",[718,799,800,805,809],{},[736,801,802],{},[303,803,804],{},"csp.connectDomains",[736,806,807],{},[303,808,794],{},[736,810,811,812,765,815,765,818,821],{},"Allow-list ",[303,813,814],{},"fetch",[303,816,817],{},"XHR",[303,819,820],{},"WebSocket"," origins.",[718,823,824,829,833],{},[736,825,826],{},[303,827,828],{},"_meta",[736,830,831],{},[303,832,794],{},[736,834,835,836,838,839,842,843,549],{},"Extra ",[303,837,828],{}," fields surfaced to the host alongside ",[303,840,841],{},"ui.resourceUri"," and ",[303,844,845],{},"ui.csp",[307,847,848,849,842,852,549],{},"Looking for the underlying tool \u002F resource APIs? See ",[850,851,41],"a",{"href":47},[850,853,71],{"href":76},[855,856,857],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":326,"searchDepth":413,"depth":413,"links":859},[860,867,868],{"id":295,"depth":413,"text":296,"children":861},[862,864,865,866],{"id":300,"depth":419,"text":863},"Skeletons during callTool",{"id":429,"depth":419,"text":430},{"id":503,"depth":419,"text":504},{"id":583,"depth":419,"text":584},{"id":594,"depth":413,"text":595},{"id":709,"depth":413,"text":710},"UI patterns, unsupported Nuxt features in the iframe, and API reference.","md",null,{},{"icon":188},{"title":875,"description":876},"MCP Apps — Patterns & reference","Layout patterns, iframe limitations, and defineMcpApp \u002F useMcpApp reference.","79zVnX3goyYyygIRII7I5-WpNHIxPqm2wftTTYVm3DM",[879,881],{"title":180,"path":181,"stem":182,"description":880,"icon":183,"children":-1},"Test MCP Apps locally, pick a compatible host, and ship HTTPS endpoints for ChatGPT, Claude, and IDE clients.",{"title":195,"path":196,"stem":197,"description":882,"icon":198,"children":-1},"Customize where the module looks for MCP definitions.",1787670842350]