[{"data":1,"prerenderedAt":816},["ShallowReactive",2],{"navigation_docs":3,"-resources-organization":272,"-resources-organization-surround":811},[4,40,70,99,122,151,184,243],{"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},"MCP 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],{"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,"children":155,"page":39},"Apps","\u002Fapps","6.apps",[156,160,165,170,174,179],{"title":46,"path":157,"stem":158,"icon":159},"\u002Fapps\u002Foverview","6.apps\u002F0.overview","i-lucide-app-window",{"title":161,"path":162,"stem":163,"icon":164},"Authoring & defineMcpApp","\u002Fapps\u002Fauthoring","6.apps\u002F1.authoring","i-lucide-code-2",{"title":166,"path":167,"stem":168,"icon":169},"useMcpApp() bridge","\u002Fapps\u002Fuse-mcp-app","6.apps\u002F2.use-mcp-app","i-lucide-message-circle",{"title":171,"path":172,"stem":173,"icon":64},"CSP & build pipeline","\u002Fapps\u002Fcsp-and-wiring","6.apps\u002F3.csp-and-wiring",{"title":175,"path":176,"stem":177,"icon":178},"Testing & publishing","\u002Fapps\u002Ftesting-publishing","6.apps\u002F4.testing-publishing","i-lucide-rocket",{"title":180,"path":181,"stem":182,"icon":183},"Patterns & limits","\u002Fapps\u002Fpatterns-reference","6.apps\u002F5.patterns-reference","i-lucide-book-marked",{"title":185,"path":186,"stem":187,"children":188,"page":39},"Advanced Topics","\u002Fadvanced","7.advanced",[189,194,199,204,208,213,218,223,228,233,238],{"title":190,"path":191,"stem":192,"icon":193},"Custom Paths","\u002Fadvanced\u002Fcustom-paths","7.advanced\u002F1.custom-paths","i-lucide-folder",{"title":195,"path":196,"stem":197,"icon":198},"Logging","\u002Fadvanced\u002Flogging","7.advanced\u002F10.logging","i-lucide-scroll-text",{"title":200,"path":201,"stem":202,"icon":203},"MCP Apps Internals","\u002Fadvanced\u002Fmcp-apps-internals","7.advanced\u002F11.mcp-apps-internals","i-lucide-cog",{"title":205,"path":206,"stem":207,"icon":64},"Middleware","\u002Fadvanced\u002Fmiddleware","7.advanced\u002F2.middleware",{"title":209,"path":210,"stem":211,"icon":212},"TypeScript","\u002Fadvanced\u002Ftypescript","7.advanced\u002F3.typescript","i-lucide-type",{"title":214,"path":215,"stem":216,"icon":217},"Hooks","\u002Fadvanced\u002Fhooks","7.advanced\u002F4.hooks","i-lucide-webhook",{"title":219,"path":220,"stem":221,"icon":222},"MCP Evals","\u002Fadvanced\u002Fevals","7.advanced\u002F5.evals","i-lucide-flask-conical",{"title":224,"path":225,"stem":226,"icon":227},"Sessions","\u002Fadvanced\u002Fsessions","7.advanced\u002F6.sessions","i-lucide-database",{"title":229,"path":230,"stem":231,"icon":232},"Dynamic Definitions","\u002Fadvanced\u002Fdynamic-definitions","7.advanced\u002F7.dynamic-definitions","i-lucide-toggle-right",{"title":234,"path":235,"stem":236,"icon":237},"Code Mode","\u002Fadvanced\u002Fcode-mode","7.advanced\u002F8.code-mode","i-lucide-code",{"title":239,"path":240,"stem":241,"icon":242},"Elicitation","\u002Fadvanced\u002Felicitation","7.advanced\u002F9.elicitation","i-lucide-message-square-quote",{"title":244,"path":245,"stem":246,"children":247,"page":39},"Examples","\u002Fexamples","8.examples",[248,253,258,263,268],{"title":249,"path":250,"stem":251,"icon":252},"Authentication","\u002Fexamples\u002Fauthentication","8.examples\u002F1.authentication","i-lucide-shield-check",{"title":254,"path":255,"stem":256,"icon":257},"API Integration","\u002Fexamples\u002Fapi-integration","8.examples\u002F2.api-integration","i-lucide-globe",{"title":259,"path":260,"stem":261,"icon":262},"Common Patterns","\u002Fexamples\u002Fcommon-patterns","8.examples\u002F3.common-patterns","i-lucide-lightbulb",{"title":264,"path":265,"stem":266,"icon":267},"File Operations","\u002Fexamples\u002Ffile-operations","8.examples\u002F4.file-operations","i-lucide-file",{"title":269,"path":270,"stem":271,"icon":107},"Prompt Examples","\u002Fexamples\u002Fprompt-examples","8.examples\u002F5.prompt-examples",{"id":273,"title":95,"body":274,"description":802,"extension":803,"links":804,"meta":805,"navigation":806,"path":96,"seo":807,"stem":97,"__hash__":810},"docs\u002F3.resources\u002F4.organization.md",{"type":275,"value":276,"toc":795},"minimark",[277,282,301,466,469,477,499,503,510,516,521,525,528,560,564,571,753,760,764,791],[278,279,281],"h2",{"id":280},"groups-and-tags","Groups and Tags",[283,284,285,286,290,291,294,295,300],"p",{},"Organize your resources with ",[287,288,289],"code",{},"group"," and ",[287,292,293],{},"tags"," for categorization. These fields work the same way as for ",[296,297,299],"a",{"href":298},"\u002Ftools\u002Fgroups-organization#groups-and-tags","tools",".",[302,303,309],"pre",{"className":304,"code":305,"filename":306,"language":307,"meta":308,"style":308},"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  group: 'config',\n  tags: ['readonly', 'settings'],\n  description: 'Application settings',\n  file: 'config\u002Fapp.json',\n})\n","server\u002Fmcp\u002Fresources\u002Fconfig\u002Fapp-settings.ts","typescript","",[287,310,311,344,351,369,390,423,440,457],{"__ignoreMap":308},[312,313,316,320,324,328,331,334,337,341],"span",{"class":314,"line":315},"line",1,[312,317,319],{"class":318},"s7zQu","import",[312,321,323],{"class":322},"sMK4o"," {",[312,325,327],{"class":326},"sTEyZ"," defineMcpResource",[312,329,330],{"class":322}," }",[312,332,333],{"class":318}," from",[312,335,336],{"class":322}," '",[312,338,340],{"class":339},"sfazB","@nuxtjs\u002Fmcp-toolkit\u002Fserver",[312,342,343],{"class":322},"'\n",[312,345,347],{"class":314,"line":346},2,[312,348,350],{"emptyLinePlaceholder":349},true,"\n",[312,352,354,357,360,363,366],{"class":314,"line":353},3,[312,355,356],{"class":318},"export",[312,358,359],{"class":318}," default",[312,361,327],{"class":362},"s2Zo4",[312,364,365],{"class":326},"(",[312,367,368],{"class":322},"{\n",[312,370,372,376,379,381,384,387],{"class":314,"line":371},4,[312,373,375],{"class":374},"swJcz","  group",[312,377,378],{"class":322},":",[312,380,336],{"class":322},[312,382,383],{"class":339},"config",[312,385,386],{"class":322},"'",[312,388,389],{"class":322},",\n",[312,391,393,396,398,401,403,406,408,411,413,416,418,421],{"class":314,"line":392},5,[312,394,395],{"class":374},"  tags",[312,397,378],{"class":322},[312,399,400],{"class":326}," [",[312,402,386],{"class":322},[312,404,405],{"class":339},"readonly",[312,407,386],{"class":322},[312,409,410],{"class":322},",",[312,412,336],{"class":322},[312,414,415],{"class":339},"settings",[312,417,386],{"class":322},[312,419,420],{"class":326},"]",[312,422,389],{"class":322},[312,424,426,429,431,433,436,438],{"class":314,"line":425},6,[312,427,428],{"class":374},"  description",[312,430,378],{"class":322},[312,432,336],{"class":322},[312,434,435],{"class":339},"Application settings",[312,437,386],{"class":322},[312,439,389],{"class":322},[312,441,443,446,448,450,453,455],{"class":314,"line":442},7,[312,444,445],{"class":374},"  file",[312,447,378],{"class":322},[312,449,336],{"class":322},[312,451,452],{"class":339},"config\u002Fapp.json",[312,454,386],{"class":322},[312,456,389],{"class":322},[312,458,460,463],{"class":314,"line":459},8,[312,461,462],{"class":322},"}",[312,464,465],{"class":326},")\n",[283,467,468],{},"You can also place resource files in subdirectories to auto-infer the group:",[302,470,475],{"className":471,"code":473,"language":474},[472],"language-text","server\u002Fmcp\u002Fresources\u002F\n├── config\u002F\n│   └── app-settings.ts   → group: 'config'\n├── docs\u002F\n│   └── readme.ts         → group: 'docs'\n└── schema.ts             → no group\n","text",[287,476,473],{"__ignoreMap":308},[478,479,482,483,290,485,487,488,491,492,498],"callout",{"color":480,"icon":481},"info","i-lucide-info","Resource ",[287,484,289],{},[287,486,293],{}," are stored on the definition objects but are not yet included in ",[287,489,490],{},"resources\u002Flist"," protocol responses. This will be supported when ",[296,493,497],{"href":494,"rel":495},"https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fmodelcontextprotocol\u002Fissues\u002F1300",[496],"nofollow","SEP-1300"," is adopted by the MCP SDK.",[278,500,502],{"id":501},"file-organization","File Organization",[283,504,505,506,509],{},"Organize your resources in the ",[287,507,508],{},"server\u002Fmcp\u002Fresources\u002F"," directory. Both flat and nested layouts are supported:",[302,511,514],{"className":512,"code":513,"language":474},[472],"server\u002F\n└── mcp\u002F\n    └── resources\u002F\n        ├── readme.ts\n        ├── file.ts\n        └── config\u002F\n            └── app-settings.ts\n",[287,515,513],{"__ignoreMap":308},[283,517,518,519,300],{},"Each file should export a default resource definition. Subdirectories automatically set the ",[287,520,289],{},[278,522,524],{"id":523},"uri-schemes","URI Schemes",[283,526,527],{},"You can use any URI scheme that makes sense for your use case:",[529,530,531,538,544,554],"ul",{},[532,533,534,537],"li",{},[287,535,536],{},"file:\u002F\u002F"," - File system resources",[532,539,540,543],{},[287,541,542],{},"api:\u002F\u002F"," - API endpoints",[532,545,546,549,550,553],{},[287,547,548],{},"http:\u002F\u002F"," \u002F ",[287,551,552],{},"https:\u002F\u002F"," - Web resources",[532,555,556,559],{},[287,557,558],{},"custom:\u002F\u002F"," - Custom schemes",[278,561,563],{"id":562},"conditional-registration","Conditional Registration",[283,565,566,567,570],{},"You can control whether a resource is visible to clients using the ",[287,568,569],{},"enabled"," guard:",[302,572,575],{"className":304,"code":573,"filename":574,"language":307,"meta":308,"style":308},"export default defineMcpResource({\n  name: 'internal-data',\n  uri: 'app:\u002F\u002Finternal',\n  enabled: event => event.context.user?.role === 'admin',\n  handler: async (uri) => ({\n    contents: [{ uri: uri.toString(), text: 'Internal data...' }],\n  }),\n})\n","server\u002Fmcp\u002Fresources\u002Finternal-data.ts",[287,576,577,589,605,621,666,691,738,747],{"__ignoreMap":308},[312,578,579,581,583,585,587],{"class":314,"line":315},[312,580,356],{"class":318},[312,582,359],{"class":318},[312,584,327],{"class":362},[312,586,365],{"class":326},[312,588,368],{"class":322},[312,590,591,594,596,598,601,603],{"class":314,"line":346},[312,592,593],{"class":374},"  name",[312,595,378],{"class":322},[312,597,336],{"class":322},[312,599,600],{"class":339},"internal-data",[312,602,386],{"class":322},[312,604,389],{"class":322},[312,606,607,610,612,614,617,619],{"class":314,"line":353},[312,608,609],{"class":374},"  uri",[312,611,378],{"class":322},[312,613,336],{"class":322},[312,615,616],{"class":339},"app:\u002F\u002Finternal",[312,618,386],{"class":322},[312,620,389],{"class":322},[312,622,623,626,628,632,636,638,640,643,645,648,651,654,657,659,662,664],{"class":314,"line":371},[312,624,625],{"class":362},"  enabled",[312,627,378],{"class":322},[312,629,631],{"class":630},"sHdIc"," event",[312,633,635],{"class":634},"spNyl"," =>",[312,637,631],{"class":326},[312,639,300],{"class":322},[312,641,642],{"class":326},"context",[312,644,300],{"class":322},[312,646,647],{"class":326},"user",[312,649,650],{"class":322},"?.",[312,652,653],{"class":326},"role ",[312,655,656],{"class":322},"===",[312,658,336],{"class":322},[312,660,661],{"class":339},"admin",[312,663,386],{"class":322},[312,665,389],{"class":322},[312,667,668,671,673,676,679,682,685,687,689],{"class":314,"line":392},[312,669,670],{"class":362},"  handler",[312,672,378],{"class":322},[312,674,675],{"class":634}," async",[312,677,678],{"class":322}," (",[312,680,681],{"class":630},"uri",[312,683,684],{"class":322},")",[312,686,635],{"class":634},[312,688,678],{"class":326},[312,690,368],{"class":322},[312,692,693,696,698,700,703,706,708,710,712,715,718,720,723,725,727,730,732,734,736],{"class":314,"line":425},[312,694,695],{"class":374},"    contents",[312,697,378],{"class":322},[312,699,400],{"class":326},[312,701,702],{"class":322},"{",[312,704,705],{"class":374}," uri",[312,707,378],{"class":322},[312,709,705],{"class":326},[312,711,300],{"class":322},[312,713,714],{"class":362},"toString",[312,716,717],{"class":326},"()",[312,719,410],{"class":322},[312,721,722],{"class":374}," text",[312,724,378],{"class":322},[312,726,336],{"class":322},[312,728,729],{"class":339},"Internal data...",[312,731,386],{"class":322},[312,733,330],{"class":322},[312,735,420],{"class":326},[312,737,389],{"class":322},[312,739,740,743,745],{"class":314,"line":442},[312,741,742],{"class":322},"  }",[312,744,684],{"class":326},[312,746,389],{"class":322},[312,748,749,751],{"class":314,"line":459},[312,750,462],{"class":322},[312,752,465],{"class":326},[478,754,756,757,759],{"color":755,"icon":13},"primary","See the ",[296,758,229],{"href":230}," guide for detailed documentation on auth-based filtering.",[278,761,763],{"id":762},"next-steps","Next Steps",[529,765,766,771,776,781,786],{},[532,767,768,770],{},[296,769,41],{"href":47}," - Create tools to perform actions",[532,772,773,775],{},[296,774,100],{"href":105}," - Create reusable prompts",[532,777,778,780],{},[296,779,123],{"href":128}," - Create custom MCP endpoints",[532,782,783,785],{},[296,784,229],{"href":230}," - Conditionally register definitions",[532,787,788,790],{},[296,789,244],{"href":265}," - More resource examples",[792,793,794],"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 .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 .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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}",{"title":308,"searchDepth":346,"depth":346,"links":796},[797,798,799,800,801],{"id":280,"depth":346,"text":281},{"id":501,"depth":346,"text":502},{"id":523,"depth":346,"text":524},{"id":562,"depth":346,"text":563},{"id":762,"depth":346,"text":763},"group and tags, on-disk layout, URI schemes, and conditional registration.","md",null,{},{"icon":98},{"title":808,"description":809},"Resources — Organization","Groups, file layout, URI schemes, and enabled guards for MCP resources.","o97RtHJjkOyM5B0SPt6hgJSg0H8SD_e_kJbktpGoFKk",[812,814],{"title":90,"path":91,"stem":92,"description":813,"icon":93,"children":-1},"Resource metadata, MIME types, binary payloads, and error responses.",{"title":46,"path":105,"stem":106,"description":815,"icon":107,"children":-1},"Create reusable prompts for AI assistants with optional arguments.",1777306546020]