[{"data":1,"prerenderedAt":1235},["ShallowReactive",2],{"navigation_docs":3,"-resources-static-and-structure":287,"-resources-static-and-structure-surround":1230},[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":80,"body":289,"description":1221,"extension":1222,"links":1223,"meta":1224,"navigation":1225,"path":81,"seo":1226,"stem":82,"__hash__":1229},"docs\u002F3.resources\u002F1.static-and-structure.md",{"type":290,"value":291,"toc":1213},"minimark",[292,297,301,306,314,451,454,484,488,499,857,861,871,944,951,969,978,982,985,1209],[293,294,296],"h2",{"id":295},"static-resources","Static Resources",[298,299,300],"p",{},"Static resources have a fixed URI that doesn't change.",[302,303,305],"h3",{"id":304},"simple-file-resources","Simple File Resources",[298,307,308,309,313],{},"The easiest way to expose a local file is using the ",[310,311,312],"code",{},"file"," property. This automatically handles the URI generation, MIME type detection, and file reading.",[315,316,322],"pre",{"className":317,"code":318,"filename":319,"language":320,"meta":321,"style":321},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defineMcpResource } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpResource({\n  name: 'readme',\n  description: 'Project README file',\n  file: 'README.md', \u002F\u002F Relative to project root\n})\n","server\u002Fmcp\u002Fresources\u002Freadme.ts","typescript","",[310,323,324,357,364,382,403,420,442],{"__ignoreMap":321},[325,326,329,333,337,341,344,347,350,354],"span",{"class":327,"line":328},"line",1,[325,330,332],{"class":331},"s7zQu","import",[325,334,336],{"class":335},"sMK4o"," {",[325,338,340],{"class":339},"sTEyZ"," defineMcpResource",[325,342,343],{"class":335}," }",[325,345,346],{"class":331}," from",[325,348,349],{"class":335}," '",[325,351,353],{"class":352},"sfazB","@nuxtjs\u002Fmcp-toolkit\u002Fserver",[325,355,356],{"class":335},"'\n",[325,358,360],{"class":327,"line":359},2,[325,361,363],{"emptyLinePlaceholder":362},true,"\n",[325,365,367,370,373,376,379],{"class":327,"line":366},3,[325,368,369],{"class":331},"export",[325,371,372],{"class":331}," default",[325,374,340],{"class":375},"s2Zo4",[325,377,378],{"class":339},"(",[325,380,381],{"class":335},"{\n",[325,383,385,389,392,394,397,400],{"class":327,"line":384},4,[325,386,388],{"class":387},"swJcz","  name",[325,390,391],{"class":335},":",[325,393,349],{"class":335},[325,395,396],{"class":352},"readme",[325,398,399],{"class":335},"'",[325,401,402],{"class":335},",\n",[325,404,406,409,411,413,416,418],{"class":327,"line":405},5,[325,407,408],{"class":387},"  description",[325,410,391],{"class":335},[325,412,349],{"class":335},[325,414,415],{"class":352},"Project README file",[325,417,399],{"class":335},[325,419,402],{"class":335},[325,421,423,426,428,430,433,435,438],{"class":327,"line":422},6,[325,424,425],{"class":387},"  file",[325,427,391],{"class":335},[325,429,349],{"class":335},[325,431,432],{"class":352},"README.md",[325,434,399],{"class":335},[325,436,437],{"class":335},",",[325,439,441],{"class":440},"sHwdD"," \u002F\u002F Relative to project root\n",[325,443,445,448],{"class":327,"line":444},7,[325,446,447],{"class":335},"}",[325,449,450],{"class":339},")\n",[298,452,453],{},"This generates:",[455,456,457,468,474],"ul",{},[458,459,460,464,465],"li",{},[461,462,463],"strong",{},"URI",": ",[310,466,467],{},"file:\u002F\u002F\u002Fpath\u002Fto\u002Fproject\u002FREADME.md",[458,469,470,473],{},[461,471,472],{},"Handler",": Automatically reads the file content",[458,475,476,479,480,483],{},[461,477,478],{},"MIME Type",": Automatically detected (e.g., ",[310,481,482],{},"text\u002Fmarkdown",")",[302,485,487],{"id":486},"custom-static-resources","Custom Static Resources",[298,489,490,491,494,495,498],{},"For more control, you can define the ",[310,492,493],{},"uri"," and ",[310,496,497],{},"handler"," manually:",[315,500,503],{"className":317,"code":501,"filename":502,"language":320,"meta":321,"style":321},"import { readFile } from 'node:fs\u002Fpromises'\nimport { fileURLToPath } from 'node:url'\nimport { defineMcpResource } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpResource({\n  name: 'custom-readme',\n  title: 'README',\n  description: 'Project README file',\n  uri: 'file:\u002F\u002F\u002FREADME.md',\n  metadata: {\n    mimeType: 'text\u002Fmarkdown',\n  },\n  handler: async (uri: URL) => {\n    const filePath = fileURLToPath(uri)\n    const content = await readFile(filePath, 'utf-8')\n    return {\n      contents: [{\n        uri: uri.toString(),\n        mimeType: 'text\u002Fmarkdown',\n        text: content,\n      }],\n    }\n  },\n})\n","server\u002Fmcp\u002Fresources\u002Fcustom-readme.ts",[310,504,505,525,545,563,567,579,594,610,625,642,653,669,675,706,726,757,765,778,800,816,828,839,845,850],{"__ignoreMap":321},[325,506,507,509,511,514,516,518,520,523],{"class":327,"line":328},[325,508,332],{"class":331},[325,510,336],{"class":335},[325,512,513],{"class":339}," readFile",[325,515,343],{"class":335},[325,517,346],{"class":331},[325,519,349],{"class":335},[325,521,522],{"class":352},"node:fs\u002Fpromises",[325,524,356],{"class":335},[325,526,527,529,531,534,536,538,540,543],{"class":327,"line":359},[325,528,332],{"class":331},[325,530,336],{"class":335},[325,532,533],{"class":339}," fileURLToPath",[325,535,343],{"class":335},[325,537,346],{"class":331},[325,539,349],{"class":335},[325,541,542],{"class":352},"node:url",[325,544,356],{"class":335},[325,546,547,549,551,553,555,557,559,561],{"class":327,"line":366},[325,548,332],{"class":331},[325,550,336],{"class":335},[325,552,340],{"class":339},[325,554,343],{"class":335},[325,556,346],{"class":331},[325,558,349],{"class":335},[325,560,353],{"class":352},[325,562,356],{"class":335},[325,564,565],{"class":327,"line":384},[325,566,363],{"emptyLinePlaceholder":362},[325,568,569,571,573,575,577],{"class":327,"line":405},[325,570,369],{"class":331},[325,572,372],{"class":331},[325,574,340],{"class":375},[325,576,378],{"class":339},[325,578,381],{"class":335},[325,580,581,583,585,587,590,592],{"class":327,"line":422},[325,582,388],{"class":387},[325,584,391],{"class":335},[325,586,349],{"class":335},[325,588,589],{"class":352},"custom-readme",[325,591,399],{"class":335},[325,593,402],{"class":335},[325,595,596,599,601,603,606,608],{"class":327,"line":444},[325,597,598],{"class":387},"  title",[325,600,391],{"class":335},[325,602,349],{"class":335},[325,604,605],{"class":352},"README",[325,607,399],{"class":335},[325,609,402],{"class":335},[325,611,613,615,617,619,621,623],{"class":327,"line":612},8,[325,614,408],{"class":387},[325,616,391],{"class":335},[325,618,349],{"class":335},[325,620,415],{"class":352},[325,622,399],{"class":335},[325,624,402],{"class":335},[325,626,628,631,633,635,638,640],{"class":327,"line":627},9,[325,629,630],{"class":387},"  uri",[325,632,391],{"class":335},[325,634,349],{"class":335},[325,636,637],{"class":352},"file:\u002F\u002F\u002FREADME.md",[325,639,399],{"class":335},[325,641,402],{"class":335},[325,643,645,648,650],{"class":327,"line":644},10,[325,646,647],{"class":387},"  metadata",[325,649,391],{"class":335},[325,651,652],{"class":335}," {\n",[325,654,656,659,661,663,665,667],{"class":327,"line":655},11,[325,657,658],{"class":387},"    mimeType",[325,660,391],{"class":335},[325,662,349],{"class":335},[325,664,482],{"class":352},[325,666,399],{"class":335},[325,668,402],{"class":335},[325,670,672],{"class":327,"line":671},12,[325,673,674],{"class":335},"  },\n",[325,676,678,681,683,687,690,693,695,699,701,704],{"class":327,"line":677},13,[325,679,680],{"class":375},"  handler",[325,682,391],{"class":335},[325,684,686],{"class":685},"spNyl"," async",[325,688,689],{"class":335}," (",[325,691,493],{"class":692},"sHdIc",[325,694,391],{"class":335},[325,696,698],{"class":697},"sBMFI"," URL",[325,700,483],{"class":335},[325,702,703],{"class":685}," =>",[325,705,652],{"class":335},[325,707,709,712,715,718,720,722,724],{"class":327,"line":708},14,[325,710,711],{"class":685},"    const",[325,713,714],{"class":339}," filePath",[325,716,717],{"class":335}," =",[325,719,533],{"class":375},[325,721,378],{"class":387},[325,723,493],{"class":339},[325,725,450],{"class":387},[325,727,729,731,734,736,739,741,743,746,748,750,753,755],{"class":327,"line":728},15,[325,730,711],{"class":685},[325,732,733],{"class":339}," content",[325,735,717],{"class":335},[325,737,738],{"class":331}," await",[325,740,513],{"class":375},[325,742,378],{"class":387},[325,744,745],{"class":339},"filePath",[325,747,437],{"class":335},[325,749,349],{"class":335},[325,751,752],{"class":352},"utf-8",[325,754,399],{"class":335},[325,756,450],{"class":387},[325,758,760,763],{"class":327,"line":759},16,[325,761,762],{"class":331},"    return",[325,764,652],{"class":335},[325,766,768,771,773,776],{"class":327,"line":767},17,[325,769,770],{"class":387},"      contents",[325,772,391],{"class":335},[325,774,775],{"class":387}," [",[325,777,381],{"class":335},[325,779,781,784,786,789,792,795,798],{"class":327,"line":780},18,[325,782,783],{"class":387},"        uri",[325,785,391],{"class":335},[325,787,788],{"class":339}," uri",[325,790,791],{"class":335},".",[325,793,794],{"class":375},"toString",[325,796,797],{"class":387},"()",[325,799,402],{"class":335},[325,801,803,806,808,810,812,814],{"class":327,"line":802},19,[325,804,805],{"class":387},"        mimeType",[325,807,391],{"class":335},[325,809,349],{"class":335},[325,811,482],{"class":352},[325,813,399],{"class":335},[325,815,402],{"class":335},[325,817,819,822,824,826],{"class":327,"line":818},20,[325,820,821],{"class":387},"        text",[325,823,391],{"class":335},[325,825,733],{"class":339},[325,827,402],{"class":335},[325,829,831,834,837],{"class":327,"line":830},21,[325,832,833],{"class":335},"      }",[325,835,836],{"class":387},"]",[325,838,402],{"class":335},[325,840,842],{"class":327,"line":841},22,[325,843,844],{"class":335},"    }\n",[325,846,848],{"class":327,"line":847},23,[325,849,674],{"class":335},[325,851,853,855],{"class":327,"line":852},24,[325,854,447],{"class":335},[325,856,450],{"class":339},[293,858,860],{"id":859},"auto-generated-name-and-title","Auto-Generated Name and Title",[298,862,863,864,494,867,870],{},"You can omit ",[310,865,866],{},"name",[310,868,869],{},"title"," - they will be automatically generated from the filename:",[315,872,875],{"className":317,"code":873,"filename":874,"language":320,"meta":321,"style":321},"import { defineMcpResource } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpResource({\n  \u002F\u002F name and title are auto-generated from filename:\n  \u002F\u002F name: 'project-readme'\n  \u002F\u002F title: 'Project Readme'\n  file: 'README.md'\n})\n","server\u002Fmcp\u002Fresources\u002Fproject-readme.ts",[310,876,877,895,899,911,916,921,926,938],{"__ignoreMap":321},[325,878,879,881,883,885,887,889,891,893],{"class":327,"line":328},[325,880,332],{"class":331},[325,882,336],{"class":335},[325,884,340],{"class":339},[325,886,343],{"class":335},[325,888,346],{"class":331},[325,890,349],{"class":335},[325,892,353],{"class":352},[325,894,356],{"class":335},[325,896,897],{"class":327,"line":359},[325,898,363],{"emptyLinePlaceholder":362},[325,900,901,903,905,907,909],{"class":327,"line":366},[325,902,369],{"class":331},[325,904,372],{"class":331},[325,906,340],{"class":375},[325,908,378],{"class":339},[325,910,381],{"class":335},[325,912,913],{"class":327,"line":384},[325,914,915],{"class":440},"  \u002F\u002F name and title are auto-generated from filename:\n",[325,917,918],{"class":327,"line":405},[325,919,920],{"class":440},"  \u002F\u002F name: 'project-readme'\n",[325,922,923],{"class":327,"line":422},[325,924,925],{"class":440},"  \u002F\u002F title: 'Project Readme'\n",[325,927,928,930,932,934,936],{"class":327,"line":444},[325,929,425],{"class":387},[325,931,391],{"class":335},[325,933,349],{"class":335},[325,935,432],{"class":352},[325,937,356],{"class":335},[325,939,940,942],{"class":327,"line":612},[325,941,447],{"class":335},[325,943,450],{"class":339},[298,945,946,947,950],{},"The filename ",[310,948,949],{},"project-readme.ts"," automatically becomes:",[455,952,953,961],{},[458,954,955,464,957,960],{},[310,956,866],{},[310,958,959],{},"project-readme"," (kebab-case)",[458,962,963,464,965,968],{},[310,964,869],{},[310,966,967],{},"Project Readme"," (title case)",[298,970,971,972,974,975,977],{},"You can still provide ",[310,973,866],{}," or ",[310,976,869],{}," explicitly to override the auto-generated values.",[293,979,981],{"id":980},"resource-structure","Resource Structure",[298,983,984],{},"A resource definition consists of:",[986,987,988,1081],"code-group",{},[315,989,992],{"className":317,"code":990,"filename":991,"language":320,"meta":321,"style":321},"import { defineMcpResource } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpResource({\n  name: 'resource-name',\n  file: 'path\u002Fto\u002Ffile.txt', \u002F\u002F Local file path\n  metadata: { ... }\n})\n","File Resource",[310,993,994,1012,1016,1028,1043,1061,1075],{"__ignoreMap":321},[325,995,996,998,1000,1002,1004,1006,1008,1010],{"class":327,"line":328},[325,997,332],{"class":331},[325,999,336],{"class":335},[325,1001,340],{"class":339},[325,1003,343],{"class":335},[325,1005,346],{"class":331},[325,1007,349],{"class":335},[325,1009,353],{"class":352},[325,1011,356],{"class":335},[325,1013,1014],{"class":327,"line":359},[325,1015,363],{"emptyLinePlaceholder":362},[325,1017,1018,1020,1022,1024,1026],{"class":327,"line":366},[325,1019,369],{"class":331},[325,1021,372],{"class":331},[325,1023,340],{"class":375},[325,1025,378],{"class":339},[325,1027,381],{"class":335},[325,1029,1030,1032,1034,1036,1039,1041],{"class":327,"line":384},[325,1031,388],{"class":387},[325,1033,391],{"class":335},[325,1035,349],{"class":335},[325,1037,1038],{"class":352},"resource-name",[325,1040,399],{"class":335},[325,1042,402],{"class":335},[325,1044,1045,1047,1049,1051,1054,1056,1058],{"class":327,"line":405},[325,1046,425],{"class":387},[325,1048,391],{"class":335},[325,1050,349],{"class":335},[325,1052,1053],{"class":352},"path\u002Fto\u002Ffile.txt",[325,1055,399],{"class":335},[325,1057,437],{"class":335},[325,1059,1060],{"class":440}," \u002F\u002F Local file path\n",[325,1062,1063,1065,1067,1069,1072],{"class":327,"line":422},[325,1064,647],{"class":387},[325,1066,391],{"class":335},[325,1068,336],{"class":335},[325,1070,1071],{"class":335}," ...",[325,1073,1074],{"class":335}," }\n",[325,1076,1077,1079],{"class":327,"line":444},[325,1078,447],{"class":335},[325,1080,450],{"class":339},[315,1082,1085],{"className":317,"code":1083,"filename":1084,"language":320,"meta":321,"style":321},"import { defineMcpResource } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpResource({\n  name: 'resource-name',  \u002F\u002F Unique identifier\n  uri: 'uri:\u002F\u002F...',      \u002F\u002F Static URI or ResourceTemplate\n  handler: async (uri) => { \u002F\u002F Handler function\n    return { contents: [...] }\n  },\n})\n","Custom Resource",[310,1086,1087,1105,1109,1121,1138,1156,1177,1199,1203],{"__ignoreMap":321},[325,1088,1089,1091,1093,1095,1097,1099,1101,1103],{"class":327,"line":328},[325,1090,332],{"class":331},[325,1092,336],{"class":335},[325,1094,340],{"class":339},[325,1096,343],{"class":335},[325,1098,346],{"class":331},[325,1100,349],{"class":335},[325,1102,353],{"class":352},[325,1104,356],{"class":335},[325,1106,1107],{"class":327,"line":359},[325,1108,363],{"emptyLinePlaceholder":362},[325,1110,1111,1113,1115,1117,1119],{"class":327,"line":366},[325,1112,369],{"class":331},[325,1114,372],{"class":331},[325,1116,340],{"class":375},[325,1118,378],{"class":339},[325,1120,381],{"class":335},[325,1122,1123,1125,1127,1129,1131,1133,1135],{"class":327,"line":384},[325,1124,388],{"class":387},[325,1126,391],{"class":335},[325,1128,349],{"class":335},[325,1130,1038],{"class":352},[325,1132,399],{"class":335},[325,1134,437],{"class":335},[325,1136,1137],{"class":440},"  \u002F\u002F Unique identifier\n",[325,1139,1140,1142,1144,1146,1149,1151,1153],{"class":327,"line":405},[325,1141,630],{"class":387},[325,1143,391],{"class":335},[325,1145,349],{"class":335},[325,1147,1148],{"class":352},"uri:\u002F\u002F...",[325,1150,399],{"class":335},[325,1152,437],{"class":335},[325,1154,1155],{"class":440},"      \u002F\u002F Static URI or ResourceTemplate\n",[325,1157,1158,1160,1162,1164,1166,1168,1170,1172,1174],{"class":327,"line":422},[325,1159,680],{"class":375},[325,1161,391],{"class":335},[325,1163,686],{"class":685},[325,1165,689],{"class":335},[325,1167,493],{"class":692},[325,1169,483],{"class":335},[325,1171,703],{"class":685},[325,1173,336],{"class":335},[325,1175,1176],{"class":440}," \u002F\u002F Handler function\n",[325,1178,1179,1181,1183,1186,1188,1190,1193,1196],{"class":327,"line":444},[325,1180,762],{"class":331},[325,1182,336],{"class":335},[325,1184,1185],{"class":387}," contents",[325,1187,391],{"class":335},[325,1189,775],{"class":387},[325,1191,1192],{"class":335},"...",[325,1194,1195],{"class":387},"] ",[325,1197,1198],{"class":335},"}\n",[325,1200,1201],{"class":327,"line":612},[325,1202,674],{"class":335},[325,1204,1205,1207],{"class":327,"line":627},[325,1206,447],{"class":335},[325,1208,450],{"class":339},[1210,1211,1212],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}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);}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":321,"searchDepth":359,"depth":359,"links":1214},[1215,1219,1220],{"id":295,"depth":359,"text":296,"children":1216},[1217,1218],{"id":304,"depth":366,"text":305},{"id":486,"depth":366,"text":487},{"id":859,"depth":359,"text":860},{"id":980,"depth":359,"text":981},"File-backed resources, naming, and the shape of defineMcpResource.","md",null,{},{"icon":83},{"title":1227,"description":1228},"Resources — Static & structure","Simple file resources, custom static handlers, auto-generated names, and resource structure.","Ahrg6seyhuvUQPOircDqNhqvt3nYb72T6ZH1ZpANKJk",[1231,1233],{"title":46,"path":76,"stem":77,"description":1232,"icon":78,"children":-1},"Expose read-only data sources as MCP resources to provide context to AI models.",{"title":85,"path":86,"stem":87,"description":1234,"icon":88,"children":-1},"ResourceTemplate URIs, variables, and resource handler functions.",1787670845644]