[{"data":1,"prerenderedAt":5368},["ShallowReactive",2],{"navigation_docs":3,"-core-concepts-tools":127,"-core-concepts-tools-surround":5363},[4,40,68,98],{"title":5,"path":6,"stem":7,"children":8,"page":39},"Getting Started","/getting-started","1.getting-started",[9,14,19,24,29,34],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","/getting-started/introduction","1.getting-started/1.introduction","i-lucide-book-open",{"title":15,"path":16,"stem":17,"icon":18},"Installation","/getting-started/installation","1.getting-started/2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Configuration","/getting-started/configuration","1.getting-started/3.configuration","i-lucide-settings",{"title":25,"path":26,"stem":27,"icon":28},"MCP Inspector","/getting-started/inspector","1.getting-started/4.inspector","i-lucide-circuit-board",{"title":30,"path":31,"stem":32,"icon":33},"Connection","/getting-started/connection","1.getting-started/5.connection","i-lucide-plug",{"title":35,"path":36,"stem":37,"icon":38},"Agent Skills","/getting-started/agent-skills","1.getting-started/6.agent-skills","i-lucide-sparkles",false,{"title":41,"path":42,"stem":43,"children":44,"page":39},"Core Concepts","/core-concepts","2.core-concepts",[45,48,53,58,63],{"title":20,"path":46,"stem":47,"icon":23},"/core-concepts/configuration","2.core-concepts/1.configuration",{"title":49,"path":50,"stem":51,"icon":52},"Tools","/core-concepts/tools","2.core-concepts/2.tools","i-lucide-wrench",{"title":54,"path":55,"stem":56,"icon":57},"Resources","/core-concepts/resources","2.core-concepts/3.resources","i-lucide-package",{"title":59,"path":60,"stem":61,"icon":62},"Prompts","/core-concepts/prompts","2.core-concepts/4.prompts","i-lucide-message-square",{"title":64,"path":65,"stem":66,"icon":67},"Handlers","/core-concepts/handlers","2.core-concepts/5.handlers","i-lucide-server",{"title":69,"path":70,"stem":71,"children":72,"page":39},"Advanced Topics","/advanced","3.advanced",[73,78,83,88,93],{"title":74,"path":75,"stem":76,"icon":77},"Custom Paths","/advanced/custom-paths","3.advanced/1.custom-paths","i-lucide-folder",{"title":79,"path":80,"stem":81,"icon":82},"Middleware","/advanced/middleware","3.advanced/2.middleware","i-lucide-shield",{"title":84,"path":85,"stem":86,"icon":87},"TypeScript","/advanced/typescript","3.advanced/3.typescript","i-lucide-type",{"title":89,"path":90,"stem":91,"icon":92},"Hooks","/advanced/hooks","3.advanced/4.hooks","i-lucide-webhook",{"title":94,"path":95,"stem":96,"icon":97},"MCP Evals","/advanced/evals","3.advanced/5.evals","i-lucide-flask-conical",{"title":99,"path":100,"stem":101,"children":102,"page":39},"Examples","/examples","4.examples",[103,108,113,118,123],{"title":104,"path":105,"stem":106,"icon":107},"Authentication","/examples/authentication","4.examples/1.authentication","i-lucide-shield-check",{"title":109,"path":110,"stem":111,"icon":112},"API Integration","/examples/api-integration","4.examples/2.api-integration","i-lucide-globe",{"title":114,"path":115,"stem":116,"icon":117},"Common Patterns","/examples/common-patterns","4.examples/3.common-patterns","i-lucide-lightbulb",{"title":119,"path":120,"stem":121,"icon":122},"File Operations","/examples/file-operations","4.examples/4.file-operations","i-lucide-file",{"title":124,"path":125,"stem":126,"icon":62},"Prompt Examples","/examples/prompt-examples","4.examples/5.prompt-examples",{"id":128,"title":49,"body":129,"description":5355,"extension":5356,"links":5357,"meta":5358,"navigation":5359,"path":50,"seo":5360,"stem":51,"__hash__":5362},"docs/2.core-concepts/2.tools.md",{"type":130,"value":131,"toc":5326},"minimark",[132,137,141,145,148,456,460,471,591,598,619,628,632,635,943,947,957,1107,1110,1535,1540,1685,1689,1695,2228,2237,2241,2244,2371,2375,2378,2635,2639,2642,3281,3371,3375,3382,3695,3706,3710,3819,3825,3829,3832,4162,4166,4173,4177,4190,4419,4423,4426,4634,4638,4764,4773,4777,4781,4784,5161,5165,5172,5179,5182,5186,5189,5296,5300,5322],[133,134,136],"h2",{"id":135},"what-are-tools","What are Tools?",[138,139,140],"p",{},"Tools are functions that AI assistants can call to perform actions or retrieve information. They accept validated input parameters and return structured results.",[133,142,144],{"id":143},"basic-tool-definition","Basic Tool Definition",[138,146,147],{},"Here's a simple tool that echoes back a message:",[149,150,156],"pre",{"className":151,"code":152,"filename":153,"language":154,"meta":155,"style":155},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { z } from 'zod'\nimport { defineMcpTool } from '@nuxtjs/mcp-toolkit/server' // optional\n\nexport default defineMcpTool({\n  name: 'echo',\n  description: 'Echo back a message',\n  inputSchema: {\n    message: z.string().describe('The message to echo back'),\n  },\n  handler: async ({ message }) => {\n    return {\n      content: [{\n        type: 'text',\n        text: `Echo: ${message}`,\n      }],\n    }\n  },\n})\n","server/mcp/tools/echo.ts","typescript","",[157,158,159,192,218,225,243,263,280,291,329,335,362,370,383,400,425,436,442,447],"code",{"__ignoreMap":155},[160,161,164,168,172,176,179,182,185,189],"span",{"class":162,"line":163},"line",1,[160,165,167],{"class":166},"s7zQu","import",[160,169,171],{"class":170},"sMK4o"," {",[160,173,175],{"class":174},"sTEyZ"," z",[160,177,178],{"class":170}," }",[160,180,181],{"class":166}," from",[160,183,184],{"class":170}," '",[160,186,188],{"class":187},"sfazB","zod",[160,190,191],{"class":170},"'\n",[160,193,195,197,199,202,204,206,208,211,214],{"class":162,"line":194},2,[160,196,167],{"class":166},[160,198,171],{"class":170},[160,200,201],{"class":174}," defineMcpTool",[160,203,178],{"class":170},[160,205,181],{"class":166},[160,207,184],{"class":170},[160,209,210],{"class":187},"@nuxtjs/mcp-toolkit/server",[160,212,213],{"class":170},"'",[160,215,217],{"class":216},"sHwdD"," // optional\n",[160,219,221],{"class":162,"line":220},3,[160,222,224],{"emptyLinePlaceholder":223},true,"\n",[160,226,228,231,234,237,240],{"class":162,"line":227},4,[160,229,230],{"class":166},"export",[160,232,233],{"class":166}," default",[160,235,201],{"class":236},"s2Zo4",[160,238,239],{"class":174},"(",[160,241,242],{"class":170},"{\n",[160,244,246,250,253,255,258,260],{"class":162,"line":245},5,[160,247,249],{"class":248},"swJcz","  name",[160,251,252],{"class":170},":",[160,254,184],{"class":170},[160,256,257],{"class":187},"echo",[160,259,213],{"class":170},[160,261,262],{"class":170},",\n",[160,264,266,269,271,273,276,278],{"class":162,"line":265},6,[160,267,268],{"class":248},"  description",[160,270,252],{"class":170},[160,272,184],{"class":170},[160,274,275],{"class":187},"Echo back a message",[160,277,213],{"class":170},[160,279,262],{"class":170},[160,281,283,286,288],{"class":162,"line":282},7,[160,284,285],{"class":248},"  inputSchema",[160,287,252],{"class":170},[160,289,290],{"class":170}," {\n",[160,292,294,297,299,301,304,307,310,312,315,317,319,322,324,327],{"class":162,"line":293},8,[160,295,296],{"class":248},"    message",[160,298,252],{"class":170},[160,300,175],{"class":174},[160,302,303],{"class":170},".",[160,305,306],{"class":236},"string",[160,308,309],{"class":174},"()",[160,311,303],{"class":170},[160,313,314],{"class":236},"describe",[160,316,239],{"class":174},[160,318,213],{"class":170},[160,320,321],{"class":187},"The message to echo back",[160,323,213],{"class":170},[160,325,326],{"class":174},")",[160,328,262],{"class":170},[160,330,332],{"class":162,"line":331},9,[160,333,334],{"class":170},"  },\n",[160,336,338,341,343,347,350,354,357,360],{"class":162,"line":337},10,[160,339,340],{"class":236},"  handler",[160,342,252],{"class":170},[160,344,346],{"class":345},"spNyl"," async",[160,348,349],{"class":170}," ({",[160,351,353],{"class":352},"sHdIc"," message",[160,355,356],{"class":170}," })",[160,358,359],{"class":345}," =>",[160,361,290],{"class":170},[160,363,365,368],{"class":162,"line":364},11,[160,366,367],{"class":166},"    return",[160,369,290],{"class":170},[160,371,373,376,378,381],{"class":162,"line":372},12,[160,374,375],{"class":248},"      content",[160,377,252],{"class":170},[160,379,380],{"class":248}," [",[160,382,242],{"class":170},[160,384,386,389,391,393,396,398],{"class":162,"line":385},13,[160,387,388],{"class":248},"        type",[160,390,252],{"class":170},[160,392,184],{"class":170},[160,394,395],{"class":187},"text",[160,397,213],{"class":170},[160,399,262],{"class":170},[160,401,403,406,408,411,414,417,420,423],{"class":162,"line":402},14,[160,404,405],{"class":248},"        text",[160,407,252],{"class":170},[160,409,410],{"class":170}," `",[160,412,413],{"class":187},"Echo: ",[160,415,416],{"class":170},"${",[160,418,419],{"class":174},"message",[160,421,422],{"class":170},"}`",[160,424,262],{"class":170},[160,426,428,431,434],{"class":162,"line":427},15,[160,429,430],{"class":170},"      }",[160,432,433],{"class":248},"]",[160,435,262],{"class":170},[160,437,439],{"class":162,"line":438},16,[160,440,441],{"class":170},"    }\n",[160,443,445],{"class":162,"line":444},17,[160,446,334],{"class":170},[160,448,450,453],{"class":162,"line":449},18,[160,451,452],{"class":170},"}",[160,454,455],{"class":174},")\n",[133,457,459],{"id":458},"auto-generated-name-and-title","Auto-Generated Name and Title",[138,461,462,463,466,467,470],{},"You can omit ",[157,464,465],{},"name"," and ",[157,468,469],{},"title"," - they will be automatically generated from the filename:",[149,472,475],{"className":151,"code":473,"filename":474,"language":154,"meta":155,"style":155},"import { z } from 'zod'\nimport { defineMcpTool } from '@nuxtjs/mcp-toolkit/server' // optional\n\nexport default defineMcpTool({\n  // name and title are auto-generated from filename:\n  // name: 'list-documentation'\n  // title: 'List Documentation'\n  description: 'List all documentation files',\n  handler: async () => {\n    // ...\n  },\n})\n","server/mcp/tools/list-documentation.ts",[157,476,477,495,515,519,531,536,541,546,561,576,581,585],{"__ignoreMap":155},[160,478,479,481,483,485,487,489,491,493],{"class":162,"line":163},[160,480,167],{"class":166},[160,482,171],{"class":170},[160,484,175],{"class":174},[160,486,178],{"class":170},[160,488,181],{"class":166},[160,490,184],{"class":170},[160,492,188],{"class":187},[160,494,191],{"class":170},[160,496,497,499,501,503,505,507,509,511,513],{"class":162,"line":194},[160,498,167],{"class":166},[160,500,171],{"class":170},[160,502,201],{"class":174},[160,504,178],{"class":170},[160,506,181],{"class":166},[160,508,184],{"class":170},[160,510,210],{"class":187},[160,512,213],{"class":170},[160,514,217],{"class":216},[160,516,517],{"class":162,"line":220},[160,518,224],{"emptyLinePlaceholder":223},[160,520,521,523,525,527,529],{"class":162,"line":227},[160,522,230],{"class":166},[160,524,233],{"class":166},[160,526,201],{"class":236},[160,528,239],{"class":174},[160,530,242],{"class":170},[160,532,533],{"class":162,"line":245},[160,534,535],{"class":216},"  // name and title are auto-generated from filename:\n",[160,537,538],{"class":162,"line":265},[160,539,540],{"class":216},"  // name: 'list-documentation'\n",[160,542,543],{"class":162,"line":282},[160,544,545],{"class":216},"  // title: 'List Documentation'\n",[160,547,548,550,552,554,557,559],{"class":162,"line":293},[160,549,268],{"class":248},[160,551,252],{"class":170},[160,553,184],{"class":170},[160,555,556],{"class":187},"List all documentation files",[160,558,213],{"class":170},[160,560,262],{"class":170},[160,562,563,565,567,569,572,574],{"class":162,"line":331},[160,564,340],{"class":236},[160,566,252],{"class":170},[160,568,346],{"class":345},[160,570,571],{"class":170}," ()",[160,573,359],{"class":345},[160,575,290],{"class":170},[160,577,578],{"class":162,"line":337},[160,579,580],{"class":216},"    // ...\n",[160,582,583],{"class":162,"line":364},[160,584,334],{"class":170},[160,586,587,589],{"class":162,"line":372},[160,588,452],{"class":170},[160,590,455],{"class":174},[138,592,593,594,597],{},"The filename ",[157,595,596],{},"list-documentation.ts"," automatically becomes:",[599,600,601,611],"ul",{},[602,603,604,606,607,610],"li",{},[157,605,465],{},": ",[157,608,609],{},"list-documentation"," (kebab-case)",[602,612,613,606,615,618],{},[157,614,469],{},[157,616,617],{},"List Documentation"," (title case)",[138,620,621,622,624,625,627],{},"You can still provide ",[157,623,465],{}," or ",[157,626,469],{}," explicitly to override the auto-generated values.",[133,629,631],{"id":630},"tool-structure","Tool Structure",[138,633,634],{},"A tool definition consists of:",[636,637,638,771],"code-group",{},[149,639,642],{"className":151,"code":640,"filename":641,"language":154,"meta":155,"style":155},"import { defineMcpTool } from '@nuxtjs/mcp-toolkit/server' // optional\n\nexport default defineMcpTool({\n  name: 'tool-name',        // Unique identifier (optional - auto-generated from filename)\n  inputSchema: { ... },      // Zod schema for input validation\n  handler: async (args) => { // Handler function\n    return { content: [...] }\n  },\n})\n","Required Fields",[157,643,644,664,668,680,699,716,739,761,765],{"__ignoreMap":155},[160,645,646,648,650,652,654,656,658,660,662],{"class":162,"line":163},[160,647,167],{"class":166},[160,649,171],{"class":170},[160,651,201],{"class":174},[160,653,178],{"class":170},[160,655,181],{"class":166},[160,657,184],{"class":170},[160,659,210],{"class":187},[160,661,213],{"class":170},[160,663,217],{"class":216},[160,665,666],{"class":162,"line":194},[160,667,224],{"emptyLinePlaceholder":223},[160,669,670,672,674,676,678],{"class":162,"line":220},[160,671,230],{"class":166},[160,673,233],{"class":166},[160,675,201],{"class":236},[160,677,239],{"class":174},[160,679,242],{"class":170},[160,681,682,684,686,688,691,693,696],{"class":162,"line":227},[160,683,249],{"class":248},[160,685,252],{"class":170},[160,687,184],{"class":170},[160,689,690],{"class":187},"tool-name",[160,692,213],{"class":170},[160,694,695],{"class":170},",",[160,697,698],{"class":216},"        // Unique identifier (optional - auto-generated from filename)\n",[160,700,701,703,705,707,710,713],{"class":162,"line":245},[160,702,285],{"class":248},[160,704,252],{"class":170},[160,706,171],{"class":170},[160,708,709],{"class":170}," ...",[160,711,712],{"class":170}," },",[160,714,715],{"class":216},"      // Zod schema for input validation\n",[160,717,718,720,722,724,727,730,732,734,736],{"class":162,"line":265},[160,719,340],{"class":236},[160,721,252],{"class":170},[160,723,346],{"class":345},[160,725,726],{"class":170}," (",[160,728,729],{"class":352},"args",[160,731,326],{"class":170},[160,733,359],{"class":345},[160,735,171],{"class":170},[160,737,738],{"class":216}," // Handler function\n",[160,740,741,743,745,748,750,752,755,758],{"class":162,"line":282},[160,742,367],{"class":166},[160,744,171],{"class":170},[160,746,747],{"class":248}," content",[160,749,252],{"class":170},[160,751,380],{"class":248},[160,753,754],{"class":170},"...",[160,756,757],{"class":248},"] ",[160,759,760],{"class":170},"}\n",[160,762,763],{"class":162,"line":293},[160,764,334],{"class":170},[160,766,767,769],{"class":162,"line":331},[160,768,452],{"class":170},[160,770,455],{"class":174},[149,772,775],{"className":151,"code":773,"filename":774,"language":154,"meta":155,"style":155},"import { defineMcpTool } from '@nuxtjs/mcp-toolkit/server' // optional\n\nexport default defineMcpTool({\n  name: 'tool-name',              // Optional - auto-generated from filename\n  title: 'Tool Title',            // Optional - auto-generated from filename\n  description: 'Tool description',  // What the tool does\n  inputSchema: { ... },            // Optional - Zod schema for input validation\n  outputSchema: { ... },            // Zod schema for structured output\n  annotations: { ... },             // Tool annotations\n  handler: async (args) => { ... },\n})\n","Optional Fields",[157,776,777,797,801,813,830,849,867,882,898,914,937],{"__ignoreMap":155},[160,778,779,781,783,785,787,789,791,793,795],{"class":162,"line":163},[160,780,167],{"class":166},[160,782,171],{"class":170},[160,784,201],{"class":174},[160,786,178],{"class":170},[160,788,181],{"class":166},[160,790,184],{"class":170},[160,792,210],{"class":187},[160,794,213],{"class":170},[160,796,217],{"class":216},[160,798,799],{"class":162,"line":194},[160,800,224],{"emptyLinePlaceholder":223},[160,802,803,805,807,809,811],{"class":162,"line":220},[160,804,230],{"class":166},[160,806,233],{"class":166},[160,808,201],{"class":236},[160,810,239],{"class":174},[160,812,242],{"class":170},[160,814,815,817,819,821,823,825,827],{"class":162,"line":227},[160,816,249],{"class":248},[160,818,252],{"class":170},[160,820,184],{"class":170},[160,822,690],{"class":187},[160,824,213],{"class":170},[160,826,695],{"class":170},[160,828,829],{"class":216},"              // Optional - auto-generated from filename\n",[160,831,832,835,837,839,842,844,846],{"class":162,"line":245},[160,833,834],{"class":248},"  title",[160,836,252],{"class":170},[160,838,184],{"class":170},[160,840,841],{"class":187},"Tool Title",[160,843,213],{"class":170},[160,845,695],{"class":170},[160,847,848],{"class":216},"            // Optional - auto-generated from filename\n",[160,850,851,853,855,857,860,862,864],{"class":162,"line":265},[160,852,268],{"class":248},[160,854,252],{"class":170},[160,856,184],{"class":170},[160,858,859],{"class":187},"Tool description",[160,861,213],{"class":170},[160,863,695],{"class":170},[160,865,866],{"class":216},"  // What the tool does\n",[160,868,869,871,873,875,877,879],{"class":162,"line":282},[160,870,285],{"class":248},[160,872,252],{"class":170},[160,874,171],{"class":170},[160,876,709],{"class":170},[160,878,712],{"class":170},[160,880,881],{"class":216},"            // Optional - Zod schema for input validation\n",[160,883,884,887,889,891,893,895],{"class":162,"line":293},[160,885,886],{"class":248},"  outputSchema",[160,888,252],{"class":170},[160,890,171],{"class":170},[160,892,709],{"class":170},[160,894,712],{"class":170},[160,896,897],{"class":216},"            // Zod schema for structured output\n",[160,899,900,903,905,907,909,911],{"class":162,"line":331},[160,901,902],{"class":248},"  annotations",[160,904,252],{"class":170},[160,906,171],{"class":170},[160,908,709],{"class":170},[160,910,712],{"class":170},[160,912,913],{"class":216},"             // Tool annotations\n",[160,915,916,918,920,922,924,926,928,930,932,934],{"class":162,"line":337},[160,917,340],{"class":236},[160,919,252],{"class":170},[160,921,346],{"class":345},[160,923,726],{"class":170},[160,925,729],{"class":352},[160,927,326],{"class":170},[160,929,359],{"class":345},[160,931,171],{"class":170},[160,933,709],{"class":170},[160,935,936],{"class":170}," },\n",[160,938,939,941],{"class":162,"line":364},[160,940,452],{"class":170},[160,942,455],{"class":174},[133,944,946],{"id":945},"input-schema","Input Schema",[138,948,949,950,953,954,956],{},"The ",[157,951,952],{},"inputSchema"," is optional and uses Zod to define and validate input parameters. When provided, each field must be a Zod schema. Tools without parameters can omit ",[157,955,952],{}," entirely:",[149,958,960],{"className":151,"code":959,"filename":153,"language":154,"meta":155,"style":155},"import { defineMcpTool } from '@nuxtjs/mcp-toolkit/server' // optional\n\nexport default defineMcpTool({\n  name: 'echo',\n  description: 'Echo back a message',\n  handler: async () => {\n    return {\n      content: [{\n        type: 'text',\n        text: 'Echo: test',\n      }],\n    }\n  },\n})\n",[157,961,962,982,986,998,1012,1026,1040,1046,1056,1070,1085,1093,1097,1101],{"__ignoreMap":155},[160,963,964,966,968,970,972,974,976,978,980],{"class":162,"line":163},[160,965,167],{"class":166},[160,967,171],{"class":170},[160,969,201],{"class":174},[160,971,178],{"class":170},[160,973,181],{"class":166},[160,975,184],{"class":170},[160,977,210],{"class":187},[160,979,213],{"class":170},[160,981,217],{"class":216},[160,983,984],{"class":162,"line":194},[160,985,224],{"emptyLinePlaceholder":223},[160,987,988,990,992,994,996],{"class":162,"line":220},[160,989,230],{"class":166},[160,991,233],{"class":166},[160,993,201],{"class":236},[160,995,239],{"class":174},[160,997,242],{"class":170},[160,999,1000,1002,1004,1006,1008,1010],{"class":162,"line":227},[160,1001,249],{"class":248},[160,1003,252],{"class":170},[160,1005,184],{"class":170},[160,1007,257],{"class":187},[160,1009,213],{"class":170},[160,1011,262],{"class":170},[160,1013,1014,1016,1018,1020,1022,1024],{"class":162,"line":245},[160,1015,268],{"class":248},[160,1017,252],{"class":170},[160,1019,184],{"class":170},[160,1021,275],{"class":187},[160,1023,213],{"class":170},[160,1025,262],{"class":170},[160,1027,1028,1030,1032,1034,1036,1038],{"class":162,"line":265},[160,1029,340],{"class":236},[160,1031,252],{"class":170},[160,1033,346],{"class":345},[160,1035,571],{"class":170},[160,1037,359],{"class":345},[160,1039,290],{"class":170},[160,1041,1042,1044],{"class":162,"line":282},[160,1043,367],{"class":166},[160,1045,290],{"class":170},[160,1047,1048,1050,1052,1054],{"class":162,"line":293},[160,1049,375],{"class":248},[160,1051,252],{"class":170},[160,1053,380],{"class":248},[160,1055,242],{"class":170},[160,1057,1058,1060,1062,1064,1066,1068],{"class":162,"line":331},[160,1059,388],{"class":248},[160,1061,252],{"class":170},[160,1063,184],{"class":170},[160,1065,395],{"class":187},[160,1067,213],{"class":170},[160,1069,262],{"class":170},[160,1071,1072,1074,1076,1078,1081,1083],{"class":162,"line":337},[160,1073,405],{"class":248},[160,1075,252],{"class":170},[160,1077,184],{"class":170},[160,1079,1080],{"class":187},"Echo: test",[160,1082,213],{"class":170},[160,1084,262],{"class":170},[160,1086,1087,1089,1091],{"class":162,"line":364},[160,1088,430],{"class":170},[160,1090,433],{"class":248},[160,1092,262],{"class":170},[160,1094,1095],{"class":162,"line":372},[160,1096,441],{"class":170},[160,1098,1099],{"class":162,"line":385},[160,1100,334],{"class":170},[160,1102,1103,1105],{"class":162,"line":402},[160,1104,452],{"class":170},[160,1106,455],{"class":174},[138,1108,1109],{},"For tools with parameters, define them using Zod schemas:",[149,1111,1114],{"className":151,"code":1112,"filename":1113,"language":154,"meta":155,"style":155},"import { z } from 'zod'\nimport { defineMcpTool } from '@nuxtjs/mcp-toolkit/server' // optional\n\nexport default defineMcpTool({\n  name: 'calculator',\n  inputSchema: {\n    // String input\n    operation: z.string().describe('Operation to perform'),\n\n    // Number input\n    a: z.number().describe('First number'),\n    b: z.number().describe('Second number'),\n\n    // Optional field\n    precision: z.number().optional().describe('Decimal precision'),\n\n    // Enum input\n    format: z.enum(['decimal', 'fraction']).describe('Output format'),\n\n    // Array input\n    numbers: z.array(z.number()).describe('List of numbers'),\n  },\n  handler: async ({ operation, a, b, precision, format, numbers }) => {\n    // Handler implementation\n  },\n})\n","server/mcp/tools/calculator.ts",[157,1115,1116,1134,1154,1158,1170,1185,1193,1198,1230,1234,1239,1272,1304,1308,1313,1352,1356,1361,1414,1419,1425,1467,1472,1517,1523,1528],{"__ignoreMap":155},[160,1117,1118,1120,1122,1124,1126,1128,1130,1132],{"class":162,"line":163},[160,1119,167],{"class":166},[160,1121,171],{"class":170},[160,1123,175],{"class":174},[160,1125,178],{"class":170},[160,1127,181],{"class":166},[160,1129,184],{"class":170},[160,1131,188],{"class":187},[160,1133,191],{"class":170},[160,1135,1136,1138,1140,1142,1144,1146,1148,1150,1152],{"class":162,"line":194},[160,1137,167],{"class":166},[160,1139,171],{"class":170},[160,1141,201],{"class":174},[160,1143,178],{"class":170},[160,1145,181],{"class":166},[160,1147,184],{"class":170},[160,1149,210],{"class":187},[160,1151,213],{"class":170},[160,1153,217],{"class":216},[160,1155,1156],{"class":162,"line":220},[160,1157,224],{"emptyLinePlaceholder":223},[160,1159,1160,1162,1164,1166,1168],{"class":162,"line":227},[160,1161,230],{"class":166},[160,1163,233],{"class":166},[160,1165,201],{"class":236},[160,1167,239],{"class":174},[160,1169,242],{"class":170},[160,1171,1172,1174,1176,1178,1181,1183],{"class":162,"line":245},[160,1173,249],{"class":248},[160,1175,252],{"class":170},[160,1177,184],{"class":170},[160,1179,1180],{"class":187},"calculator",[160,1182,213],{"class":170},[160,1184,262],{"class":170},[160,1186,1187,1189,1191],{"class":162,"line":265},[160,1188,285],{"class":248},[160,1190,252],{"class":170},[160,1192,290],{"class":170},[160,1194,1195],{"class":162,"line":282},[160,1196,1197],{"class":216},"    // String input\n",[160,1199,1200,1203,1205,1207,1209,1211,1213,1215,1217,1219,1221,1224,1226,1228],{"class":162,"line":293},[160,1201,1202],{"class":248},"    operation",[160,1204,252],{"class":170},[160,1206,175],{"class":174},[160,1208,303],{"class":170},[160,1210,306],{"class":236},[160,1212,309],{"class":174},[160,1214,303],{"class":170},[160,1216,314],{"class":236},[160,1218,239],{"class":174},[160,1220,213],{"class":170},[160,1222,1223],{"class":187},"Operation to perform",[160,1225,213],{"class":170},[160,1227,326],{"class":174},[160,1229,262],{"class":170},[160,1231,1232],{"class":162,"line":331},[160,1233,224],{"emptyLinePlaceholder":223},[160,1235,1236],{"class":162,"line":337},[160,1237,1238],{"class":216},"    // Number input\n",[160,1240,1241,1244,1246,1248,1250,1253,1255,1257,1259,1261,1263,1266,1268,1270],{"class":162,"line":364},[160,1242,1243],{"class":248},"    a",[160,1245,252],{"class":170},[160,1247,175],{"class":174},[160,1249,303],{"class":170},[160,1251,1252],{"class":236},"number",[160,1254,309],{"class":174},[160,1256,303],{"class":170},[160,1258,314],{"class":236},[160,1260,239],{"class":174},[160,1262,213],{"class":170},[160,1264,1265],{"class":187},"First number",[160,1267,213],{"class":170},[160,1269,326],{"class":174},[160,1271,262],{"class":170},[160,1273,1274,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1298,1300,1302],{"class":162,"line":372},[160,1275,1276],{"class":248},"    b",[160,1278,252],{"class":170},[160,1280,175],{"class":174},[160,1282,303],{"class":170},[160,1284,1252],{"class":236},[160,1286,309],{"class":174},[160,1288,303],{"class":170},[160,1290,314],{"class":236},[160,1292,239],{"class":174},[160,1294,213],{"class":170},[160,1296,1297],{"class":187},"Second number",[160,1299,213],{"class":170},[160,1301,326],{"class":174},[160,1303,262],{"class":170},[160,1305,1306],{"class":162,"line":385},[160,1307,224],{"emptyLinePlaceholder":223},[160,1309,1310],{"class":162,"line":402},[160,1311,1312],{"class":216},"    // Optional field\n",[160,1314,1315,1318,1320,1322,1324,1326,1328,1330,1333,1335,1337,1339,1341,1343,1346,1348,1350],{"class":162,"line":427},[160,1316,1317],{"class":248},"    precision",[160,1319,252],{"class":170},[160,1321,175],{"class":174},[160,1323,303],{"class":170},[160,1325,1252],{"class":236},[160,1327,309],{"class":174},[160,1329,303],{"class":170},[160,1331,1332],{"class":236},"optional",[160,1334,309],{"class":174},[160,1336,303],{"class":170},[160,1338,314],{"class":236},[160,1340,239],{"class":174},[160,1342,213],{"class":170},[160,1344,1345],{"class":187},"Decimal precision",[160,1347,213],{"class":170},[160,1349,326],{"class":174},[160,1351,262],{"class":170},[160,1353,1354],{"class":162,"line":438},[160,1355,224],{"emptyLinePlaceholder":223},[160,1357,1358],{"class":162,"line":444},[160,1359,1360],{"class":216},"    // Enum input\n",[160,1362,1363,1366,1368,1370,1372,1375,1378,1380,1383,1385,1387,1389,1392,1394,1397,1399,1401,1403,1405,1408,1410,1412],{"class":162,"line":449},[160,1364,1365],{"class":248},"    format",[160,1367,252],{"class":170},[160,1369,175],{"class":174},[160,1371,303],{"class":170},[160,1373,1374],{"class":236},"enum",[160,1376,1377],{"class":174},"([",[160,1379,213],{"class":170},[160,1381,1382],{"class":187},"decimal",[160,1384,213],{"class":170},[160,1386,695],{"class":170},[160,1388,184],{"class":170},[160,1390,1391],{"class":187},"fraction",[160,1393,213],{"class":170},[160,1395,1396],{"class":174},"])",[160,1398,303],{"class":170},[160,1400,314],{"class":236},[160,1402,239],{"class":174},[160,1404,213],{"class":170},[160,1406,1407],{"class":187},"Output format",[160,1409,213],{"class":170},[160,1411,326],{"class":174},[160,1413,262],{"class":170},[160,1415,1417],{"class":162,"line":1416},19,[160,1418,224],{"emptyLinePlaceholder":223},[160,1420,1422],{"class":162,"line":1421},20,[160,1423,1424],{"class":216},"    // Array input\n",[160,1426,1428,1431,1433,1435,1437,1440,1443,1445,1447,1450,1452,1454,1456,1458,1461,1463,1465],{"class":162,"line":1427},21,[160,1429,1430],{"class":248},"    numbers",[160,1432,252],{"class":170},[160,1434,175],{"class":174},[160,1436,303],{"class":170},[160,1438,1439],{"class":236},"array",[160,1441,1442],{"class":174},"(z",[160,1444,303],{"class":170},[160,1446,1252],{"class":236},[160,1448,1449],{"class":174},"())",[160,1451,303],{"class":170},[160,1453,314],{"class":236},[160,1455,239],{"class":174},[160,1457,213],{"class":170},[160,1459,1460],{"class":187},"List of numbers",[160,1462,213],{"class":170},[160,1464,326],{"class":174},[160,1466,262],{"class":170},[160,1468,1470],{"class":162,"line":1469},22,[160,1471,334],{"class":170},[160,1473,1475,1477,1479,1481,1483,1486,1488,1491,1493,1496,1498,1501,1503,1506,1508,1511,1513,1515],{"class":162,"line":1474},23,[160,1476,340],{"class":236},[160,1478,252],{"class":170},[160,1480,346],{"class":345},[160,1482,349],{"class":170},[160,1484,1485],{"class":352}," operation",[160,1487,695],{"class":170},[160,1489,1490],{"class":352}," a",[160,1492,695],{"class":170},[160,1494,1495],{"class":352}," b",[160,1497,695],{"class":170},[160,1499,1500],{"class":352}," precision",[160,1502,695],{"class":170},[160,1504,1505],{"class":352}," format",[160,1507,695],{"class":170},[160,1509,1510],{"class":352}," numbers",[160,1512,356],{"class":170},[160,1514,359],{"class":345},[160,1516,290],{"class":170},[160,1518,1520],{"class":162,"line":1519},24,[160,1521,1522],{"class":216},"    // Handler implementation\n",[160,1524,1526],{"class":162,"line":1525},25,[160,1527,334],{"class":170},[160,1529,1531,1533],{"class":162,"line":1530},26,[160,1532,452],{"class":170},[160,1534,455],{"class":174},[1536,1537,1539],"h3",{"id":1538},"common-zod-types","Common Zod Types",[1541,1542,1543],"prose-table",{},[1544,1545,1546,1562],"table",{},[1547,1548,1549],"thead",{},[1550,1551,1552,1556,1559],"tr",{},[1553,1554,1555],"th",{},"Zod Type",[1553,1557,1558],{},"Example",[1553,1560,1561],{},"Description",[1563,1564,1565,1581,1596,1610,1625,1640,1655,1670],"tbody",{},[1550,1566,1567,1573,1578],{},[1568,1569,1570],"td",{},[157,1571,1572],{},"z.string()",[1568,1574,1575],{},[157,1576,1577],{},"z.string().min(1).max(100)",[1568,1579,1580],{},"String with validation",[1550,1582,1583,1588,1593],{},[1568,1584,1585],{},[157,1586,1587],{},"z.number()",[1568,1589,1590],{},[157,1591,1592],{},"z.number().min(0).max(100)",[1568,1594,1595],{},"Number with validation",[1550,1597,1598,1603,1607],{},[1568,1599,1600],{},[157,1601,1602],{},"z.boolean()",[1568,1604,1605],{},[157,1606,1602],{},[1568,1608,1609],{},"Boolean value",[1550,1611,1612,1617,1622],{},[1568,1613,1614],{},[157,1615,1616],{},"z.array()",[1568,1618,1619],{},[157,1620,1621],{},"z.array(z.string())",[1568,1623,1624],{},"Array of values",[1550,1626,1627,1632,1637],{},[1568,1628,1629],{},[157,1630,1631],{},"z.object()",[1568,1633,1634],{},[157,1635,1636],{},"z.object({ ... })",[1568,1638,1639],{},"Nested object",[1550,1641,1642,1647,1652],{},[1568,1643,1644],{},[157,1645,1646],{},"z.enum()",[1568,1648,1649],{},[157,1650,1651],{},"z.enum(['a', 'b'])",[1568,1653,1654],{},"Enumeration",[1550,1656,1657,1662,1667],{},[1568,1658,1659],{},[157,1660,1661],{},"z.optional()",[1568,1663,1664],{},[157,1665,1666],{},"z.string().optional()",[1568,1668,1669],{},"Optional field",[1550,1671,1672,1677,1682],{},[1568,1673,1674],{},[157,1675,1676],{},"z.default()",[1568,1678,1679],{},[157,1680,1681],{},"z.string().default('value')",[1568,1683,1684],{},"Field with default",[133,1686,1688],{"id":1687},"output-schema","Output Schema",[138,1690,1691,1692,252],{},"Define structured output using ",[157,1693,1694],{},"outputSchema",[149,1696,1699],{"className":151,"code":1697,"filename":1698,"language":154,"meta":155,"style":155},"import { z } from 'zod'\nimport { defineMcpTool } from '@nuxtjs/mcp-toolkit/server' // optional\n\nexport default defineMcpTool({\n  name: 'calculate-bmi',\n  description: 'Calculate Body Mass Index',\n  inputSchema: {\n    weightKg: z.number().describe('Weight in kilograms'),\n    heightM: z.number().describe('Height in meters'),\n  },\n  outputSchema: {\n    bmi: z.number(),\n    category: z.string(),\n  },\n  handler: async ({ weightKg, heightM }) => {\n    const bmi = weightKg / (heightM * heightM)\n    let category = 'Normal'\n    if (bmi \u003C 18.5) category = 'Underweight'\n    else if (bmi >= 25) category = 'Overweight'\n    else if (bmi >= 30) category = 'Obese'\n\n    return {\n      content: [{\n        type: 'text',\n        text: `BMI: ${bmi.toFixed(2)} (${category})`,\n      }],\n      structuredContent: {\n        bmi: Math.round(bmi * 100) / 100,\n        category,\n      },\n    }\n  },\n})\n","server/mcp/tools/bmi.ts",[157,1700,1701,1719,1739,1743,1755,1770,1785,1793,1825,1857,1861,1869,1886,1903,1907,1931,1959,1976,2008,2039,2067,2071,2077,2087,2101,2145,2153,2163,2197,2205,2211,2216,2221],{"__ignoreMap":155},[160,1702,1703,1705,1707,1709,1711,1713,1715,1717],{"class":162,"line":163},[160,1704,167],{"class":166},[160,1706,171],{"class":170},[160,1708,175],{"class":174},[160,1710,178],{"class":170},[160,1712,181],{"class":166},[160,1714,184],{"class":170},[160,1716,188],{"class":187},[160,1718,191],{"class":170},[160,1720,1721,1723,1725,1727,1729,1731,1733,1735,1737],{"class":162,"line":194},[160,1722,167],{"class":166},[160,1724,171],{"class":170},[160,1726,201],{"class":174},[160,1728,178],{"class":170},[160,1730,181],{"class":166},[160,1732,184],{"class":170},[160,1734,210],{"class":187},[160,1736,213],{"class":170},[160,1738,217],{"class":216},[160,1740,1741],{"class":162,"line":220},[160,1742,224],{"emptyLinePlaceholder":223},[160,1744,1745,1747,1749,1751,1753],{"class":162,"line":227},[160,1746,230],{"class":166},[160,1748,233],{"class":166},[160,1750,201],{"class":236},[160,1752,239],{"class":174},[160,1754,242],{"class":170},[160,1756,1757,1759,1761,1763,1766,1768],{"class":162,"line":245},[160,1758,249],{"class":248},[160,1760,252],{"class":170},[160,1762,184],{"class":170},[160,1764,1765],{"class":187},"calculate-bmi",[160,1767,213],{"class":170},[160,1769,262],{"class":170},[160,1771,1772,1774,1776,1778,1781,1783],{"class":162,"line":265},[160,1773,268],{"class":248},[160,1775,252],{"class":170},[160,1777,184],{"class":170},[160,1779,1780],{"class":187},"Calculate Body Mass Index",[160,1782,213],{"class":170},[160,1784,262],{"class":170},[160,1786,1787,1789,1791],{"class":162,"line":282},[160,1788,285],{"class":248},[160,1790,252],{"class":170},[160,1792,290],{"class":170},[160,1794,1795,1798,1800,1802,1804,1806,1808,1810,1812,1814,1816,1819,1821,1823],{"class":162,"line":293},[160,1796,1797],{"class":248},"    weightKg",[160,1799,252],{"class":170},[160,1801,175],{"class":174},[160,1803,303],{"class":170},[160,1805,1252],{"class":236},[160,1807,309],{"class":174},[160,1809,303],{"class":170},[160,1811,314],{"class":236},[160,1813,239],{"class":174},[160,1815,213],{"class":170},[160,1817,1818],{"class":187},"Weight in kilograms",[160,1820,213],{"class":170},[160,1822,326],{"class":174},[160,1824,262],{"class":170},[160,1826,1827,1830,1832,1834,1836,1838,1840,1842,1844,1846,1848,1851,1853,1855],{"class":162,"line":331},[160,1828,1829],{"class":248},"    heightM",[160,1831,252],{"class":170},[160,1833,175],{"class":174},[160,1835,303],{"class":170},[160,1837,1252],{"class":236},[160,1839,309],{"class":174},[160,1841,303],{"class":170},[160,1843,314],{"class":236},[160,1845,239],{"class":174},[160,1847,213],{"class":170},[160,1849,1850],{"class":187},"Height in meters",[160,1852,213],{"class":170},[160,1854,326],{"class":174},[160,1856,262],{"class":170},[160,1858,1859],{"class":162,"line":337},[160,1860,334],{"class":170},[160,1862,1863,1865,1867],{"class":162,"line":364},[160,1864,886],{"class":248},[160,1866,252],{"class":170},[160,1868,290],{"class":170},[160,1870,1871,1874,1876,1878,1880,1882,1884],{"class":162,"line":372},[160,1872,1873],{"class":248},"    bmi",[160,1875,252],{"class":170},[160,1877,175],{"class":174},[160,1879,303],{"class":170},[160,1881,1252],{"class":236},[160,1883,309],{"class":174},[160,1885,262],{"class":170},[160,1887,1888,1891,1893,1895,1897,1899,1901],{"class":162,"line":385},[160,1889,1890],{"class":248},"    category",[160,1892,252],{"class":170},[160,1894,175],{"class":174},[160,1896,303],{"class":170},[160,1898,306],{"class":236},[160,1900,309],{"class":174},[160,1902,262],{"class":170},[160,1904,1905],{"class":162,"line":402},[160,1906,334],{"class":170},[160,1908,1909,1911,1913,1915,1917,1920,1922,1925,1927,1929],{"class":162,"line":427},[160,1910,340],{"class":236},[160,1912,252],{"class":170},[160,1914,346],{"class":345},[160,1916,349],{"class":170},[160,1918,1919],{"class":352}," weightKg",[160,1921,695],{"class":170},[160,1923,1924],{"class":352}," heightM",[160,1926,356],{"class":170},[160,1928,359],{"class":345},[160,1930,290],{"class":170},[160,1932,1933,1936,1939,1942,1944,1947,1949,1952,1955,1957],{"class":162,"line":438},[160,1934,1935],{"class":345},"    const",[160,1937,1938],{"class":174}," bmi",[160,1940,1941],{"class":170}," =",[160,1943,1919],{"class":174},[160,1945,1946],{"class":170}," /",[160,1948,726],{"class":248},[160,1950,1951],{"class":174},"heightM",[160,1953,1954],{"class":170}," *",[160,1956,1924],{"class":174},[160,1958,455],{"class":248},[160,1960,1961,1964,1967,1969,1971,1974],{"class":162,"line":444},[160,1962,1963],{"class":345},"    let",[160,1965,1966],{"class":174}," category",[160,1968,1941],{"class":170},[160,1970,184],{"class":170},[160,1972,1973],{"class":187},"Normal",[160,1975,191],{"class":170},[160,1977,1978,1981,1983,1986,1989,1993,1996,1999,2001,2003,2006],{"class":162,"line":449},[160,1979,1980],{"class":166},"    if",[160,1982,726],{"class":248},[160,1984,1985],{"class":174},"bmi",[160,1987,1988],{"class":170}," \u003C",[160,1990,1992],{"class":1991},"sbssI"," 18.5",[160,1994,1995],{"class":248},") ",[160,1997,1998],{"class":174},"category",[160,2000,1941],{"class":170},[160,2002,184],{"class":170},[160,2004,2005],{"class":187},"Underweight",[160,2007,191],{"class":170},[160,2009,2010,2013,2016,2018,2020,2023,2026,2028,2030,2032,2034,2037],{"class":162,"line":1416},[160,2011,2012],{"class":166},"    else",[160,2014,2015],{"class":166}," if",[160,2017,726],{"class":248},[160,2019,1985],{"class":174},[160,2021,2022],{"class":170}," >=",[160,2024,2025],{"class":1991}," 25",[160,2027,1995],{"class":248},[160,2029,1998],{"class":174},[160,2031,1941],{"class":170},[160,2033,184],{"class":170},[160,2035,2036],{"class":187},"Overweight",[160,2038,191],{"class":170},[160,2040,2041,2043,2045,2047,2049,2051,2054,2056,2058,2060,2062,2065],{"class":162,"line":1421},[160,2042,2012],{"class":166},[160,2044,2015],{"class":166},[160,2046,726],{"class":248},[160,2048,1985],{"class":174},[160,2050,2022],{"class":170},[160,2052,2053],{"class":1991}," 30",[160,2055,1995],{"class":248},[160,2057,1998],{"class":174},[160,2059,1941],{"class":170},[160,2061,184],{"class":170},[160,2063,2064],{"class":187},"Obese",[160,2066,191],{"class":170},[160,2068,2069],{"class":162,"line":1427},[160,2070,224],{"emptyLinePlaceholder":223},[160,2072,2073,2075],{"class":162,"line":1469},[160,2074,367],{"class":166},[160,2076,290],{"class":170},[160,2078,2079,2081,2083,2085],{"class":162,"line":1474},[160,2080,375],{"class":248},[160,2082,252],{"class":170},[160,2084,380],{"class":248},[160,2086,242],{"class":170},[160,2088,2089,2091,2093,2095,2097,2099],{"class":162,"line":1519},[160,2090,388],{"class":248},[160,2092,252],{"class":170},[160,2094,184],{"class":170},[160,2096,395],{"class":187},[160,2098,213],{"class":170},[160,2100,262],{"class":170},[160,2102,2103,2105,2107,2109,2112,2114,2116,2118,2121,2123,2126,2128,2130,2132,2134,2136,2138,2140,2143],{"class":162,"line":1525},[160,2104,405],{"class":248},[160,2106,252],{"class":170},[160,2108,410],{"class":170},[160,2110,2111],{"class":187},"BMI: ",[160,2113,416],{"class":170},[160,2115,1985],{"class":174},[160,2117,303],{"class":170},[160,2119,2120],{"class":236},"toFixed",[160,2122,239],{"class":174},[160,2124,2125],{"class":1991},"2",[160,2127,326],{"class":174},[160,2129,452],{"class":170},[160,2131,726],{"class":187},[160,2133,416],{"class":170},[160,2135,1998],{"class":174},[160,2137,452],{"class":170},[160,2139,326],{"class":187},[160,2141,2142],{"class":170},"`",[160,2144,262],{"class":170},[160,2146,2147,2149,2151],{"class":162,"line":1530},[160,2148,430],{"class":170},[160,2150,433],{"class":248},[160,2152,262],{"class":170},[160,2154,2156,2159,2161],{"class":162,"line":2155},27,[160,2157,2158],{"class":248},"      structuredContent",[160,2160,252],{"class":170},[160,2162,290],{"class":170},[160,2164,2166,2169,2171,2174,2176,2179,2181,2183,2185,2188,2190,2193,2195],{"class":162,"line":2165},28,[160,2167,2168],{"class":248},"        bmi",[160,2170,252],{"class":170},[160,2172,2173],{"class":174}," Math",[160,2175,303],{"class":170},[160,2177,2178],{"class":236},"round",[160,2180,239],{"class":248},[160,2182,1985],{"class":174},[160,2184,1954],{"class":170},[160,2186,2187],{"class":1991}," 100",[160,2189,1995],{"class":248},[160,2191,2192],{"class":170},"/",[160,2194,2187],{"class":1991},[160,2196,262],{"class":170},[160,2198,2200,2203],{"class":162,"line":2199},29,[160,2201,2202],{"class":174},"        category",[160,2204,262],{"class":170},[160,2206,2208],{"class":162,"line":2207},30,[160,2209,2210],{"class":170},"      },\n",[160,2212,2214],{"class":162,"line":2213},31,[160,2215,441],{"class":170},[160,2217,2219],{"class":162,"line":2218},32,[160,2220,334],{"class":170},[160,2222,2224,2226],{"class":162,"line":2223},33,[160,2225,452],{"class":170},[160,2227,455],{"class":174},[138,2229,949,2230,2233,2234,2236],{},[157,2231,2232],{},"structuredContent"," field provides structured data that matches your ",[157,2235,1694],{},", making it easier for AI assistants to work with the results.",[133,2238,2240],{"id":2239},"handler-function","Handler Function",[138,2242,2243],{},"The handler is an async function that receives validated input and returns results:",[149,2245,2247],{"className":151,"code":2246,"language":154,"meta":155,"style":155},"handler: async (args, extra) => {\n  // args: Validated input matching inputSchema\n  // extra: Request handler extra information\n\n  return {\n    content: [{\n      type: 'text',\n      text: 'Result text',\n    }],\n    structuredContent: { ... }, // Optional structured output\n  }\n}\n",[157,2248,2249,2274,2279,2284,2288,2295,2306,2321,2337,2346,2362,2367],{"__ignoreMap":155},[160,2250,2251,2255,2257,2259,2261,2263,2265,2268,2270,2272],{"class":162,"line":163},[160,2252,2254],{"class":2253},"sBMFI","handler",[160,2256,252],{"class":170},[160,2258,346],{"class":345},[160,2260,726],{"class":170},[160,2262,729],{"class":352},[160,2264,695],{"class":170},[160,2266,2267],{"class":352}," extra",[160,2269,326],{"class":170},[160,2271,359],{"class":345},[160,2273,290],{"class":170},[160,2275,2276],{"class":162,"line":194},[160,2277,2278],{"class":216},"  // args: Validated input matching inputSchema\n",[160,2280,2281],{"class":162,"line":220},[160,2282,2283],{"class":216},"  // extra: Request handler extra information\n",[160,2285,2286],{"class":162,"line":227},[160,2287,224],{"emptyLinePlaceholder":223},[160,2289,2290,2293],{"class":162,"line":245},[160,2291,2292],{"class":166},"  return",[160,2294,290],{"class":170},[160,2296,2297,2300,2302,2304],{"class":162,"line":265},[160,2298,2299],{"class":248},"    content",[160,2301,252],{"class":170},[160,2303,380],{"class":248},[160,2305,242],{"class":170},[160,2307,2308,2311,2313,2315,2317,2319],{"class":162,"line":282},[160,2309,2310],{"class":248},"      type",[160,2312,252],{"class":170},[160,2314,184],{"class":170},[160,2316,395],{"class":187},[160,2318,213],{"class":170},[160,2320,262],{"class":170},[160,2322,2323,2326,2328,2330,2333,2335],{"class":162,"line":293},[160,2324,2325],{"class":248},"      text",[160,2327,252],{"class":170},[160,2329,184],{"class":170},[160,2331,2332],{"class":187},"Result text",[160,2334,213],{"class":170},[160,2336,262],{"class":170},[160,2338,2339,2342,2344],{"class":162,"line":331},[160,2340,2341],{"class":170},"    }",[160,2343,433],{"class":248},[160,2345,262],{"class":170},[160,2347,2348,2351,2353,2355,2357,2359],{"class":162,"line":337},[160,2349,2350],{"class":248},"    structuredContent",[160,2352,252],{"class":170},[160,2354,171],{"class":170},[160,2356,709],{"class":170},[160,2358,712],{"class":170},[160,2360,2361],{"class":216}," // Optional structured output\n",[160,2363,2364],{"class":162,"line":364},[160,2365,2366],{"class":170},"  }\n",[160,2368,2369],{"class":162,"line":372},[160,2370,760],{"class":170},[1536,2372,2374],{"id":2373},"content-types","Content Types",[138,2376,2377],{},"Tools can return different content types:",[636,2379,2380,2448,2525],{},[149,2381,2384],{"className":151,"code":2382,"filename":2383,"language":154,"meta":155,"style":155},"return {\n  content: [{\n    type: 'text',\n    text: 'Hello, world!',\n  }],\n}\n","Text Content",[157,2385,2386,2393,2404,2419,2435,2444],{"__ignoreMap":155},[160,2387,2388,2391],{"class":162,"line":163},[160,2389,2390],{"class":166},"return",[160,2392,290],{"class":170},[160,2394,2395,2398,2400,2402],{"class":162,"line":194},[160,2396,2397],{"class":248},"  content",[160,2399,252],{"class":170},[160,2401,380],{"class":174},[160,2403,242],{"class":170},[160,2405,2406,2409,2411,2413,2415,2417],{"class":162,"line":220},[160,2407,2408],{"class":248},"    type",[160,2410,252],{"class":170},[160,2412,184],{"class":170},[160,2414,395],{"class":187},[160,2416,213],{"class":170},[160,2418,262],{"class":170},[160,2420,2421,2424,2426,2428,2431,2433],{"class":162,"line":227},[160,2422,2423],{"class":248},"    text",[160,2425,252],{"class":170},[160,2427,184],{"class":170},[160,2429,2430],{"class":187},"Hello, world!",[160,2432,213],{"class":170},[160,2434,262],{"class":170},[160,2436,2437,2440,2442],{"class":162,"line":245},[160,2438,2439],{"class":170},"  }",[160,2441,433],{"class":174},[160,2443,262],{"class":170},[160,2445,2446],{"class":162,"line":265},[160,2447,760],{"class":170},[149,2449,2452],{"className":151,"code":2450,"filename":2451,"language":154,"meta":155,"style":155},"return {\n  content: [{\n    type: 'image',\n    data: base64ImageData,\n    mimeType: 'image/png',\n  }],\n}\n","Image Content",[157,2453,2454,2460,2470,2485,2497,2513,2521],{"__ignoreMap":155},[160,2455,2456,2458],{"class":162,"line":163},[160,2457,2390],{"class":166},[160,2459,290],{"class":170},[160,2461,2462,2464,2466,2468],{"class":162,"line":194},[160,2463,2397],{"class":248},[160,2465,252],{"class":170},[160,2467,380],{"class":174},[160,2469,242],{"class":170},[160,2471,2472,2474,2476,2478,2481,2483],{"class":162,"line":220},[160,2473,2408],{"class":248},[160,2475,252],{"class":170},[160,2477,184],{"class":170},[160,2479,2480],{"class":187},"image",[160,2482,213],{"class":170},[160,2484,262],{"class":170},[160,2486,2487,2490,2492,2495],{"class":162,"line":227},[160,2488,2489],{"class":248},"    data",[160,2491,252],{"class":170},[160,2493,2494],{"class":174}," base64ImageData",[160,2496,262],{"class":170},[160,2498,2499,2502,2504,2506,2509,2511],{"class":162,"line":245},[160,2500,2501],{"class":248},"    mimeType",[160,2503,252],{"class":170},[160,2505,184],{"class":170},[160,2507,2508],{"class":187},"image/png",[160,2510,213],{"class":170},[160,2512,262],{"class":170},[160,2514,2515,2517,2519],{"class":162,"line":265},[160,2516,2439],{"class":170},[160,2518,433],{"class":174},[160,2520,262],{"class":170},[160,2522,2523],{"class":162,"line":282},[160,2524,760],{"class":170},[149,2526,2529],{"className":151,"code":2527,"filename":2528,"language":154,"meta":155,"style":155},"return {\n  content: [{\n    type: 'resource',\n    resource: {\n      uri: 'file:///path/to/file',\n      text: 'File content',\n      mimeType: 'text/plain',\n    },\n  }],\n}\n","Resource Reference",[157,2530,2531,2537,2547,2562,2571,2587,2602,2618,2623,2631],{"__ignoreMap":155},[160,2532,2533,2535],{"class":162,"line":163},[160,2534,2390],{"class":166},[160,2536,290],{"class":170},[160,2538,2539,2541,2543,2545],{"class":162,"line":194},[160,2540,2397],{"class":248},[160,2542,252],{"class":170},[160,2544,380],{"class":174},[160,2546,242],{"class":170},[160,2548,2549,2551,2553,2555,2558,2560],{"class":162,"line":220},[160,2550,2408],{"class":248},[160,2552,252],{"class":170},[160,2554,184],{"class":170},[160,2556,2557],{"class":187},"resource",[160,2559,213],{"class":170},[160,2561,262],{"class":170},[160,2563,2564,2567,2569],{"class":162,"line":227},[160,2565,2566],{"class":248},"    resource",[160,2568,252],{"class":170},[160,2570,290],{"class":170},[160,2572,2573,2576,2578,2580,2583,2585],{"class":162,"line":245},[160,2574,2575],{"class":248},"      uri",[160,2577,252],{"class":170},[160,2579,184],{"class":170},[160,2581,2582],{"class":187},"file:///path/to/file",[160,2584,213],{"class":170},[160,2586,262],{"class":170},[160,2588,2589,2591,2593,2595,2598,2600],{"class":162,"line":265},[160,2590,2325],{"class":248},[160,2592,252],{"class":170},[160,2594,184],{"class":170},[160,2596,2597],{"class":187},"File content",[160,2599,213],{"class":170},[160,2601,262],{"class":170},[160,2603,2604,2607,2609,2611,2614,2616],{"class":162,"line":282},[160,2605,2606],{"class":248},"      mimeType",[160,2608,252],{"class":170},[160,2610,184],{"class":170},[160,2612,2613],{"class":187},"text/plain",[160,2615,213],{"class":170},[160,2617,262],{"class":170},[160,2619,2620],{"class":162,"line":293},[160,2621,2622],{"class":170},"    },\n",[160,2624,2625,2627,2629],{"class":162,"line":331},[160,2626,2439],{"class":170},[160,2628,433],{"class":174},[160,2630,262],{"class":170},[160,2632,2633],{"class":162,"line":337},[160,2634,760],{"class":170},[1536,2636,2638],{"id":2637},"result-helpers","Result Helpers",[138,2640,2641],{},"To simplify creating tool responses, the module provides auto-imported helper functions:",[636,2643,2644,2775,2933,3114],{},[149,2645,2648],{"className":151,"code":2646,"filename":2647,"language":154,"meta":155,"style":155},"import { defineMcpTool, textResult } from '@nuxtjs/mcp-toolkit/server' // optional\n\n// Simple text response\nexport default defineMcpTool({\n  description: 'Echo a message',\n  inputSchema: { message: z.string() },\n  handler: async ({ message }) => textResult(`Echo: ${message}`),\n})\n","textResult",[157,2649,2650,2675,2679,2684,2696,2711,2735,2769],{"__ignoreMap":155},[160,2651,2652,2654,2656,2658,2660,2663,2665,2667,2669,2671,2673],{"class":162,"line":163},[160,2653,167],{"class":166},[160,2655,171],{"class":170},[160,2657,201],{"class":174},[160,2659,695],{"class":170},[160,2661,2662],{"class":174}," textResult",[160,2664,178],{"class":170},[160,2666,181],{"class":166},[160,2668,184],{"class":170},[160,2670,210],{"class":187},[160,2672,213],{"class":170},[160,2674,217],{"class":216},[160,2676,2677],{"class":162,"line":194},[160,2678,224],{"emptyLinePlaceholder":223},[160,2680,2681],{"class":162,"line":220},[160,2682,2683],{"class":216},"// Simple text response\n",[160,2685,2686,2688,2690,2692,2694],{"class":162,"line":227},[160,2687,230],{"class":166},[160,2689,233],{"class":166},[160,2691,201],{"class":236},[160,2693,239],{"class":174},[160,2695,242],{"class":170},[160,2697,2698,2700,2702,2704,2707,2709],{"class":162,"line":245},[160,2699,268],{"class":248},[160,2701,252],{"class":170},[160,2703,184],{"class":170},[160,2705,2706],{"class":187},"Echo a message",[160,2708,213],{"class":170},[160,2710,262],{"class":170},[160,2712,2713,2715,2717,2719,2721,2723,2725,2727,2729,2732],{"class":162,"line":265},[160,2714,285],{"class":248},[160,2716,252],{"class":170},[160,2718,171],{"class":170},[160,2720,353],{"class":248},[160,2722,252],{"class":170},[160,2724,175],{"class":174},[160,2726,303],{"class":170},[160,2728,306],{"class":236},[160,2730,2731],{"class":174},"() ",[160,2733,2734],{"class":170},"},\n",[160,2736,2737,2739,2741,2743,2745,2747,2749,2751,2753,2755,2757,2759,2761,2763,2765,2767],{"class":162,"line":282},[160,2738,340],{"class":236},[160,2740,252],{"class":170},[160,2742,346],{"class":345},[160,2744,349],{"class":170},[160,2746,353],{"class":352},[160,2748,356],{"class":170},[160,2750,359],{"class":345},[160,2752,2662],{"class":236},[160,2754,239],{"class":174},[160,2756,2142],{"class":170},[160,2758,413],{"class":187},[160,2760,416],{"class":170},[160,2762,419],{"class":174},[160,2764,422],{"class":170},[160,2766,326],{"class":174},[160,2768,262],{"class":170},[160,2770,2771,2773],{"class":162,"line":293},[160,2772,452],{"class":170},[160,2774,455],{"class":174},[149,2776,2779],{"className":151,"code":2777,"filename":2778,"language":154,"meta":155,"style":155},"import { defineMcpTool, jsonResult } from '@nuxtjs/mcp-toolkit/server' // optional\n\n// JSON response (auto-stringified)\nexport default defineMcpTool({\n  description: 'Get user data',\n  inputSchema: { id: z.string() },\n  handler: async ({ id }) => {\n    const user = await getUser(id)\n    return jsonResult(user)\n    // or jsonResult(user, false) for compact JSON\n  },\n})\n","jsonResult",[157,2780,2781,2806,2810,2815,2827,2842,2865,2883,2905,2918,2923,2927],{"__ignoreMap":155},[160,2782,2783,2785,2787,2789,2791,2794,2796,2798,2800,2802,2804],{"class":162,"line":163},[160,2784,167],{"class":166},[160,2786,171],{"class":170},[160,2788,201],{"class":174},[160,2790,695],{"class":170},[160,2792,2793],{"class":174}," jsonResult",[160,2795,178],{"class":170},[160,2797,181],{"class":166},[160,2799,184],{"class":170},[160,2801,210],{"class":187},[160,2803,213],{"class":170},[160,2805,217],{"class":216},[160,2807,2808],{"class":162,"line":194},[160,2809,224],{"emptyLinePlaceholder":223},[160,2811,2812],{"class":162,"line":220},[160,2813,2814],{"class":216},"// JSON response (auto-stringified)\n",[160,2816,2817,2819,2821,2823,2825],{"class":162,"line":227},[160,2818,230],{"class":166},[160,2820,233],{"class":166},[160,2822,201],{"class":236},[160,2824,239],{"class":174},[160,2826,242],{"class":170},[160,2828,2829,2831,2833,2835,2838,2840],{"class":162,"line":245},[160,2830,268],{"class":248},[160,2832,252],{"class":170},[160,2834,184],{"class":170},[160,2836,2837],{"class":187},"Get user data",[160,2839,213],{"class":170},[160,2841,262],{"class":170},[160,2843,2844,2846,2848,2850,2853,2855,2857,2859,2861,2863],{"class":162,"line":265},[160,2845,285],{"class":248},[160,2847,252],{"class":170},[160,2849,171],{"class":170},[160,2851,2852],{"class":248}," id",[160,2854,252],{"class":170},[160,2856,175],{"class":174},[160,2858,303],{"class":170},[160,2860,306],{"class":236},[160,2862,2731],{"class":174},[160,2864,2734],{"class":170},[160,2866,2867,2869,2871,2873,2875,2877,2879,2881],{"class":162,"line":282},[160,2868,340],{"class":236},[160,2870,252],{"class":170},[160,2872,346],{"class":345},[160,2874,349],{"class":170},[160,2876,2852],{"class":352},[160,2878,356],{"class":170},[160,2880,359],{"class":345},[160,2882,290],{"class":170},[160,2884,2885,2887,2890,2892,2895,2898,2900,2903],{"class":162,"line":293},[160,2886,1935],{"class":345},[160,2888,2889],{"class":174}," user",[160,2891,1941],{"class":170},[160,2893,2894],{"class":166}," await",[160,2896,2897],{"class":236}," getUser",[160,2899,239],{"class":248},[160,2901,2902],{"class":174},"id",[160,2904,455],{"class":248},[160,2906,2907,2909,2911,2913,2916],{"class":162,"line":331},[160,2908,367],{"class":166},[160,2910,2793],{"class":236},[160,2912,239],{"class":248},[160,2914,2915],{"class":174},"user",[160,2917,455],{"class":248},[160,2919,2920],{"class":162,"line":337},[160,2921,2922],{"class":216},"    // or jsonResult(user, false) for compact JSON\n",[160,2924,2925],{"class":162,"line":364},[160,2926,334],{"class":170},[160,2928,2929,2931],{"class":162,"line":372},[160,2930,452],{"class":170},[160,2932,455],{"class":174},[149,2934,2937],{"className":151,"code":2935,"filename":2936,"language":154,"meta":155,"style":155},"import { defineMcpTool, jsonResult, errorResult } from '@nuxtjs/mcp-toolkit/server' // optional\n\n// Error response\nexport default defineMcpTool({\n  description: 'Find resource',\n  inputSchema: { id: z.string() },\n  handler: async ({ id }) => {\n    const resource = await findResource(id)\n    if (!resource) return errorResult('Resource not found')\n    return jsonResult(resource)\n  },\n})\n","errorResult",[157,2938,2939,2968,2972,2977,2989,3004,3026,3044,3064,3092,3104,3108],{"__ignoreMap":155},[160,2940,2941,2943,2945,2947,2949,2951,2953,2956,2958,2960,2962,2964,2966],{"class":162,"line":163},[160,2942,167],{"class":166},[160,2944,171],{"class":170},[160,2946,201],{"class":174},[160,2948,695],{"class":170},[160,2950,2793],{"class":174},[160,2952,695],{"class":170},[160,2954,2955],{"class":174}," errorResult",[160,2957,178],{"class":170},[160,2959,181],{"class":166},[160,2961,184],{"class":170},[160,2963,210],{"class":187},[160,2965,213],{"class":170},[160,2967,217],{"class":216},[160,2969,2970],{"class":162,"line":194},[160,2971,224],{"emptyLinePlaceholder":223},[160,2973,2974],{"class":162,"line":220},[160,2975,2976],{"class":216},"// Error response\n",[160,2978,2979,2981,2983,2985,2987],{"class":162,"line":227},[160,2980,230],{"class":166},[160,2982,233],{"class":166},[160,2984,201],{"class":236},[160,2986,239],{"class":174},[160,2988,242],{"class":170},[160,2990,2991,2993,2995,2997,3000,3002],{"class":162,"line":245},[160,2992,268],{"class":248},[160,2994,252],{"class":170},[160,2996,184],{"class":170},[160,2998,2999],{"class":187},"Find resource",[160,3001,213],{"class":170},[160,3003,262],{"class":170},[160,3005,3006,3008,3010,3012,3014,3016,3018,3020,3022,3024],{"class":162,"line":265},[160,3007,285],{"class":248},[160,3009,252],{"class":170},[160,3011,171],{"class":170},[160,3013,2852],{"class":248},[160,3015,252],{"class":170},[160,3017,175],{"class":174},[160,3019,303],{"class":170},[160,3021,306],{"class":236},[160,3023,2731],{"class":174},[160,3025,2734],{"class":170},[160,3027,3028,3030,3032,3034,3036,3038,3040,3042],{"class":162,"line":282},[160,3029,340],{"class":236},[160,3031,252],{"class":170},[160,3033,346],{"class":345},[160,3035,349],{"class":170},[160,3037,2852],{"class":352},[160,3039,356],{"class":170},[160,3041,359],{"class":345},[160,3043,290],{"class":170},[160,3045,3046,3048,3051,3053,3055,3058,3060,3062],{"class":162,"line":293},[160,3047,1935],{"class":345},[160,3049,3050],{"class":174}," resource",[160,3052,1941],{"class":170},[160,3054,2894],{"class":166},[160,3056,3057],{"class":236}," findResource",[160,3059,239],{"class":248},[160,3061,2902],{"class":174},[160,3063,455],{"class":248},[160,3065,3066,3068,3070,3073,3075,3077,3079,3081,3083,3085,3088,3090],{"class":162,"line":331},[160,3067,1980],{"class":166},[160,3069,726],{"class":248},[160,3071,3072],{"class":170},"!",[160,3074,2557],{"class":174},[160,3076,1995],{"class":248},[160,3078,2390],{"class":166},[160,3080,2955],{"class":236},[160,3082,239],{"class":248},[160,3084,213],{"class":170},[160,3086,3087],{"class":187},"Resource not found",[160,3089,213],{"class":170},[160,3091,455],{"class":248},[160,3093,3094,3096,3098,3100,3102],{"class":162,"line":337},[160,3095,367],{"class":166},[160,3097,2793],{"class":236},[160,3099,239],{"class":248},[160,3101,2557],{"class":174},[160,3103,455],{"class":248},[160,3105,3106],{"class":162,"line":364},[160,3107,334],{"class":170},[160,3109,3110,3112],{"class":162,"line":372},[160,3111,452],{"class":170},[160,3113,455],{"class":174},[149,3115,3118],{"className":151,"code":3116,"filename":3117,"language":154,"meta":155,"style":155},"import { defineMcpTool, imageResult } from '@nuxtjs/mcp-toolkit/server' // optional\n\n// Image response (base64)\nexport default defineMcpTool({\n  description: 'Generate chart',\n  inputSchema: { data: z.array(z.number()) },\n  handler: async ({ data }) => {\n    const base64 = await generateChart(data)\n    return imageResult(base64, 'image/png')\n  },\n})\n","imageResult",[157,3119,3120,3145,3149,3154,3166,3181,3211,3229,3250,3271,3275],{"__ignoreMap":155},[160,3121,3122,3124,3126,3128,3130,3133,3135,3137,3139,3141,3143],{"class":162,"line":163},[160,3123,167],{"class":166},[160,3125,171],{"class":170},[160,3127,201],{"class":174},[160,3129,695],{"class":170},[160,3131,3132],{"class":174}," imageResult",[160,3134,178],{"class":170},[160,3136,181],{"class":166},[160,3138,184],{"class":170},[160,3140,210],{"class":187},[160,3142,213],{"class":170},[160,3144,217],{"class":216},[160,3146,3147],{"class":162,"line":194},[160,3148,224],{"emptyLinePlaceholder":223},[160,3150,3151],{"class":162,"line":220},[160,3152,3153],{"class":216},"// Image response (base64)\n",[160,3155,3156,3158,3160,3162,3164],{"class":162,"line":227},[160,3157,230],{"class":166},[160,3159,233],{"class":166},[160,3161,201],{"class":236},[160,3163,239],{"class":174},[160,3165,242],{"class":170},[160,3167,3168,3170,3172,3174,3177,3179],{"class":162,"line":245},[160,3169,268],{"class":248},[160,3171,252],{"class":170},[160,3173,184],{"class":170},[160,3175,3176],{"class":187},"Generate chart",[160,3178,213],{"class":170},[160,3180,262],{"class":170},[160,3182,3183,3185,3187,3189,3192,3194,3196,3198,3200,3202,3204,3206,3209],{"class":162,"line":265},[160,3184,285],{"class":248},[160,3186,252],{"class":170},[160,3188,171],{"class":170},[160,3190,3191],{"class":248}," data",[160,3193,252],{"class":170},[160,3195,175],{"class":174},[160,3197,303],{"class":170},[160,3199,1439],{"class":236},[160,3201,1442],{"class":174},[160,3203,303],{"class":170},[160,3205,1252],{"class":236},[160,3207,3208],{"class":174},"()) ",[160,3210,2734],{"class":170},[160,3212,3213,3215,3217,3219,3221,3223,3225,3227],{"class":162,"line":282},[160,3214,340],{"class":236},[160,3216,252],{"class":170},[160,3218,346],{"class":345},[160,3220,349],{"class":170},[160,3222,3191],{"class":352},[160,3224,356],{"class":170},[160,3226,359],{"class":345},[160,3228,290],{"class":170},[160,3230,3231,3233,3236,3238,3240,3243,3245,3248],{"class":162,"line":293},[160,3232,1935],{"class":345},[160,3234,3235],{"class":174}," base64",[160,3237,1941],{"class":170},[160,3239,2894],{"class":166},[160,3241,3242],{"class":236}," generateChart",[160,3244,239],{"class":248},[160,3246,3247],{"class":174},"data",[160,3249,455],{"class":248},[160,3251,3252,3254,3256,3258,3261,3263,3265,3267,3269],{"class":162,"line":331},[160,3253,367],{"class":166},[160,3255,3132],{"class":236},[160,3257,239],{"class":248},[160,3259,3260],{"class":174},"base64",[160,3262,695],{"class":170},[160,3264,184],{"class":170},[160,3266,2508],{"class":187},[160,3268,213],{"class":170},[160,3270,455],{"class":248},[160,3272,3273],{"class":162,"line":337},[160,3274,334],{"class":170},[160,3276,3277,3279],{"class":162,"line":364},[160,3278,452],{"class":170},[160,3280,455],{"class":174},[1544,3282,3283,3295],{},[1547,3284,3285],{},[1550,3286,3287,3290,3292],{},[1553,3288,3289],{},"Helper",[1553,3291,1561],{},[1553,3293,3294],{},"Parameters",[1563,3296,3297,3312,3335,3353],{},[1550,3298,3299,3304,3307],{},[1568,3300,3301],{},[157,3302,3303],{},"textResult(text)",[1568,3305,3306],{},"Simple text response",[1568,3308,3309],{},[157,3310,3311],{},"text: string",[1550,3313,3314,3319,3322],{},[1568,3315,3316],{},[157,3317,3318],{},"jsonResult(data, pretty?)",[1568,3320,3321],{},"JSON response (auto-stringify)",[1568,3323,3324,3327,3328,3331,3332,326],{},[157,3325,3326],{},"data: unknown",", ",[157,3329,3330],{},"pretty?: boolean"," (default: ",[157,3333,3334],{},"true",[1550,3336,3337,3342,3348],{},[1568,3338,3339],{},[157,3340,3341],{},"errorResult(message)",[1568,3343,3344,3345],{},"Error response with ",[157,3346,3347],{},"isError: true",[1568,3349,3350],{},[157,3351,3352],{},"message: string",[1550,3354,3355,3360,3363],{},[1568,3356,3357],{},[157,3358,3359],{},"imageResult(data, mimeType)",[1568,3361,3362],{},"Base64 image response",[1568,3364,3365,3327,3368],{},[157,3366,3367],{},"data: string",[157,3369,3370],{},"mimeType: string",[133,3372,3374],{"id":3373},"tool-annotations","Tool Annotations",[138,3376,3377,3378,3381],{},"You can provide metadata and behavioral hints to clients using the ",[157,3379,3380],{},"annotations"," property. These annotations help the AI assistant understand how to use your tool appropriately.",[149,3383,3386],{"className":151,"code":3384,"filename":3385,"language":154,"meta":155,"style":155},"import { z } from 'zod'\nimport { defineMcpTool } from '@nuxtjs/mcp-toolkit/server' // optional\n\nexport default defineMcpTool({\n  name: 'delete-user',\n  description: 'Delete a user account',\n  inputSchema: {\n    userId: z.string(),\n  },\n  annotations: {\n    // Human-readable title displayed in UIs\n    // Note: Can also be defined at the root level or auto-generated\n    title: 'Delete User',\n\n    // Behavioral hints\n    priority: 0.8, // Value between 0 and 1 (default: 0.5)\n    audience: ['user', 'assistant'], // Who should see/use this tool\n\n    // Tool capabilities\n    readOnlyHint: false, // Tool modifies state\n    destructiveHint: true, // Tool performs destructive updates\n    idempotentHint: false, // Repeated calls may have different effects\n    openWorldHint: false, // Tool does not interact with external world\n  },\n  handler: async ({ userId }) => {\n    // ...\n  },\n})\n","server/mcp/tools/delete-user.ts",[157,3387,3388,3406,3426,3430,3442,3457,3472,3480,3497,3501,3509,3514,3519,3535,3539,3544,3559,3590,3594,3599,3615,3630,3644,3658,3662,3681,3685,3689],{"__ignoreMap":155},[160,3389,3390,3392,3394,3396,3398,3400,3402,3404],{"class":162,"line":163},[160,3391,167],{"class":166},[160,3393,171],{"class":170},[160,3395,175],{"class":174},[160,3397,178],{"class":170},[160,3399,181],{"class":166},[160,3401,184],{"class":170},[160,3403,188],{"class":187},[160,3405,191],{"class":170},[160,3407,3408,3410,3412,3414,3416,3418,3420,3422,3424],{"class":162,"line":194},[160,3409,167],{"class":166},[160,3411,171],{"class":170},[160,3413,201],{"class":174},[160,3415,178],{"class":170},[160,3417,181],{"class":166},[160,3419,184],{"class":170},[160,3421,210],{"class":187},[160,3423,213],{"class":170},[160,3425,217],{"class":216},[160,3427,3428],{"class":162,"line":220},[160,3429,224],{"emptyLinePlaceholder":223},[160,3431,3432,3434,3436,3438,3440],{"class":162,"line":227},[160,3433,230],{"class":166},[160,3435,233],{"class":166},[160,3437,201],{"class":236},[160,3439,239],{"class":174},[160,3441,242],{"class":170},[160,3443,3444,3446,3448,3450,3453,3455],{"class":162,"line":245},[160,3445,249],{"class":248},[160,3447,252],{"class":170},[160,3449,184],{"class":170},[160,3451,3452],{"class":187},"delete-user",[160,3454,213],{"class":170},[160,3456,262],{"class":170},[160,3458,3459,3461,3463,3465,3468,3470],{"class":162,"line":265},[160,3460,268],{"class":248},[160,3462,252],{"class":170},[160,3464,184],{"class":170},[160,3466,3467],{"class":187},"Delete a user account",[160,3469,213],{"class":170},[160,3471,262],{"class":170},[160,3473,3474,3476,3478],{"class":162,"line":282},[160,3475,285],{"class":248},[160,3477,252],{"class":170},[160,3479,290],{"class":170},[160,3481,3482,3485,3487,3489,3491,3493,3495],{"class":162,"line":293},[160,3483,3484],{"class":248},"    userId",[160,3486,252],{"class":170},[160,3488,175],{"class":174},[160,3490,303],{"class":170},[160,3492,306],{"class":236},[160,3494,309],{"class":174},[160,3496,262],{"class":170},[160,3498,3499],{"class":162,"line":331},[160,3500,334],{"class":170},[160,3502,3503,3505,3507],{"class":162,"line":337},[160,3504,902],{"class":248},[160,3506,252],{"class":170},[160,3508,290],{"class":170},[160,3510,3511],{"class":162,"line":364},[160,3512,3513],{"class":216},"    // Human-readable title displayed in UIs\n",[160,3515,3516],{"class":162,"line":372},[160,3517,3518],{"class":216},"    // Note: Can also be defined at the root level or auto-generated\n",[160,3520,3521,3524,3526,3528,3531,3533],{"class":162,"line":385},[160,3522,3523],{"class":248},"    title",[160,3525,252],{"class":170},[160,3527,184],{"class":170},[160,3529,3530],{"class":187},"Delete User",[160,3532,213],{"class":170},[160,3534,262],{"class":170},[160,3536,3537],{"class":162,"line":402},[160,3538,224],{"emptyLinePlaceholder":223},[160,3540,3541],{"class":162,"line":427},[160,3542,3543],{"class":216},"    // Behavioral hints\n",[160,3545,3546,3549,3551,3554,3556],{"class":162,"line":438},[160,3547,3548],{"class":248},"    priority",[160,3550,252],{"class":170},[160,3552,3553],{"class":1991}," 0.8",[160,3555,695],{"class":170},[160,3557,3558],{"class":216}," // Value between 0 and 1 (default: 0.5)\n",[160,3560,3561,3564,3566,3568,3570,3572,3574,3576,3578,3581,3583,3585,3587],{"class":162,"line":444},[160,3562,3563],{"class":248},"    audience",[160,3565,252],{"class":170},[160,3567,380],{"class":174},[160,3569,213],{"class":170},[160,3571,2915],{"class":187},[160,3573,213],{"class":170},[160,3575,695],{"class":170},[160,3577,184],{"class":170},[160,3579,3580],{"class":187},"assistant",[160,3582,213],{"class":170},[160,3584,433],{"class":174},[160,3586,695],{"class":170},[160,3588,3589],{"class":216}," // Who should see/use this tool\n",[160,3591,3592],{"class":162,"line":449},[160,3593,224],{"emptyLinePlaceholder":223},[160,3595,3596],{"class":162,"line":1416},[160,3597,3598],{"class":216},"    // Tool capabilities\n",[160,3600,3601,3604,3606,3610,3612],{"class":162,"line":1421},[160,3602,3603],{"class":248},"    readOnlyHint",[160,3605,252],{"class":170},[160,3607,3609],{"class":3608},"sfNiH"," false",[160,3611,695],{"class":170},[160,3613,3614],{"class":216}," // Tool modifies state\n",[160,3616,3617,3620,3622,3625,3627],{"class":162,"line":1427},[160,3618,3619],{"class":248},"    destructiveHint",[160,3621,252],{"class":170},[160,3623,3624],{"class":3608}," true",[160,3626,695],{"class":170},[160,3628,3629],{"class":216}," // Tool performs destructive updates\n",[160,3631,3632,3635,3637,3639,3641],{"class":162,"line":1469},[160,3633,3634],{"class":248},"    idempotentHint",[160,3636,252],{"class":170},[160,3638,3609],{"class":3608},[160,3640,695],{"class":170},[160,3642,3643],{"class":216}," // Repeated calls may have different effects\n",[160,3645,3646,3649,3651,3653,3655],{"class":162,"line":1474},[160,3647,3648],{"class":248},"    openWorldHint",[160,3650,252],{"class":170},[160,3652,3609],{"class":3608},[160,3654,695],{"class":170},[160,3656,3657],{"class":216}," // Tool does not interact with external world\n",[160,3659,3660],{"class":162,"line":1519},[160,3661,334],{"class":170},[160,3663,3664,3666,3668,3670,3672,3675,3677,3679],{"class":162,"line":1525},[160,3665,340],{"class":236},[160,3667,252],{"class":170},[160,3669,346],{"class":345},[160,3671,349],{"class":170},[160,3673,3674],{"class":352}," userId",[160,3676,356],{"class":170},[160,3678,359],{"class":345},[160,3680,290],{"class":170},[160,3682,3683],{"class":162,"line":1530},[160,3684,580],{"class":216},[160,3686,3687],{"class":162,"line":2155},[160,3688,334],{"class":170},[160,3690,3691,3693],{"class":162,"line":2165},[160,3692,452],{"class":170},[160,3694,455],{"class":174},[3696,3697,3698],"blockquote",{},[138,3699,949,3700,3702,3703,3705],{},[157,3701,469],{}," annotation is optional. If not provided, it defaults to the ",[157,3704,469],{}," property from the tool definition, which itself is automatically generated from the filename if not specified.",[1536,3707,3709],{"id":3708},"common-annotations","Common Annotations",[1544,3711,3712,3724],{},[1547,3713,3714],{},[1550,3715,3716,3719,3722],{},[1553,3717,3718],{},"Annotation",[1553,3720,3721],{},"Type",[1553,3723,1561],{},[1563,3725,3726,3740,3762,3777,3791,3805],{},[1550,3727,3728,3733,3737],{},[1568,3729,3730],{},[157,3731,3732],{},"priority",[1568,3734,3735],{},[157,3736,1252],{},[1568,3738,3739],{},"A value between 0 and 1 indicating the relevance/priority of the tool. Default is 0.5.",[1550,3741,3742,3747,3752],{},[1568,3743,3744],{},[157,3745,3746],{},"audience",[1568,3748,3749],{},[157,3750,3751],{},"string[]",[1568,3753,3754,3755,3327,3758,3761],{},"Who the tool is intended for. Can contain ",[157,3756,3757],{},"'user'",[157,3759,3760],{},"'assistant'",", or both.",[1550,3763,3764,3769,3774],{},[1568,3765,3766],{},[157,3767,3768],{},"readOnlyHint",[1568,3770,3771],{},[157,3772,3773],{},"boolean",[1568,3775,3776],{},"Whether the tool reads data without modifying it (safe to retry/speculate).",[1550,3778,3779,3784,3788],{},[1568,3780,3781],{},[157,3782,3783],{},"destructiveHint",[1568,3785,3786],{},[157,3787,3773],{},[1568,3789,3790],{},"Whether the tool performs destructive updates (should be used with caution).",[1550,3792,3793,3798,3802],{},[1568,3794,3795],{},[157,3796,3797],{},"idempotentHint",[1568,3799,3800],{},[157,3801,3773],{},[1568,3803,3804],{},"Whether calling the tool multiple times with the same arguments produces the same result.",[1550,3806,3807,3812,3816],{},[1568,3808,3809],{},[157,3810,3811],{},"openWorldHint",[1568,3813,3814],{},[157,3815,3773],{},[1568,3817,3818],{},"Whether the tool interacts with external entities (APIs, databases, etc.).",[3820,3821,3824],"callout",{"color":3822,"icon":3823},"info","i-lucide-info","These hints are advisory, helping LLMs make better decisions about tool usage without enforcing specific behaviors.",[133,3826,3828],{"id":3827},"error-handling","Error Handling",[138,3830,3831],{},"Handle errors gracefully in your handlers:",[149,3833,3836],{"className":151,"code":3834,"filename":3835,"language":154,"meta":155,"style":155},"import { z } from 'zod'\nimport { defineMcpTool } from '@nuxtjs/mcp-toolkit/server' // optional\n\nexport default defineMcpTool({\n  name: 'safe-divide',\n  inputSchema: {\n    a: z.number(),\n    b: z.number(),\n  },\n  handler: async ({ a, b }) => {\n    if (b === 0) {\n      return {\n        content: [{\n          type: 'text',\n          text: 'Error: Division by zero',\n        }],\n        isError: true,\n      }\n    }\n\n    const result = a / b\n    return {\n      content: [{\n        type: 'text',\n        text: `Result: ${result}`,\n      }],\n    }\n  },\n})\n","server/mcp/tools/safe-divide.ts",[157,3837,3838,3856,3876,3880,3892,3907,3915,3931,3947,3951,3973,3992,3999,4010,4025,4041,4050,4061,4066,4070,4074,4090,4096,4106,4120,4140,4148,4152,4156],{"__ignoreMap":155},[160,3839,3840,3842,3844,3846,3848,3850,3852,3854],{"class":162,"line":163},[160,3841,167],{"class":166},[160,3843,171],{"class":170},[160,3845,175],{"class":174},[160,3847,178],{"class":170},[160,3849,181],{"class":166},[160,3851,184],{"class":170},[160,3853,188],{"class":187},[160,3855,191],{"class":170},[160,3857,3858,3860,3862,3864,3866,3868,3870,3872,3874],{"class":162,"line":194},[160,3859,167],{"class":166},[160,3861,171],{"class":170},[160,3863,201],{"class":174},[160,3865,178],{"class":170},[160,3867,181],{"class":166},[160,3869,184],{"class":170},[160,3871,210],{"class":187},[160,3873,213],{"class":170},[160,3875,217],{"class":216},[160,3877,3878],{"class":162,"line":220},[160,3879,224],{"emptyLinePlaceholder":223},[160,3881,3882,3884,3886,3888,3890],{"class":162,"line":227},[160,3883,230],{"class":166},[160,3885,233],{"class":166},[160,3887,201],{"class":236},[160,3889,239],{"class":174},[160,3891,242],{"class":170},[160,3893,3894,3896,3898,3900,3903,3905],{"class":162,"line":245},[160,3895,249],{"class":248},[160,3897,252],{"class":170},[160,3899,184],{"class":170},[160,3901,3902],{"class":187},"safe-divide",[160,3904,213],{"class":170},[160,3906,262],{"class":170},[160,3908,3909,3911,3913],{"class":162,"line":265},[160,3910,285],{"class":248},[160,3912,252],{"class":170},[160,3914,290],{"class":170},[160,3916,3917,3919,3921,3923,3925,3927,3929],{"class":162,"line":282},[160,3918,1243],{"class":248},[160,3920,252],{"class":170},[160,3922,175],{"class":174},[160,3924,303],{"class":170},[160,3926,1252],{"class":236},[160,3928,309],{"class":174},[160,3930,262],{"class":170},[160,3932,3933,3935,3937,3939,3941,3943,3945],{"class":162,"line":293},[160,3934,1276],{"class":248},[160,3936,252],{"class":170},[160,3938,175],{"class":174},[160,3940,303],{"class":170},[160,3942,1252],{"class":236},[160,3944,309],{"class":174},[160,3946,262],{"class":170},[160,3948,3949],{"class":162,"line":331},[160,3950,334],{"class":170},[160,3952,3953,3955,3957,3959,3961,3963,3965,3967,3969,3971],{"class":162,"line":337},[160,3954,340],{"class":236},[160,3956,252],{"class":170},[160,3958,346],{"class":345},[160,3960,349],{"class":170},[160,3962,1490],{"class":352},[160,3964,695],{"class":170},[160,3966,1495],{"class":352},[160,3968,356],{"class":170},[160,3970,359],{"class":345},[160,3972,290],{"class":170},[160,3974,3975,3977,3979,3982,3985,3988,3990],{"class":162,"line":364},[160,3976,1980],{"class":166},[160,3978,726],{"class":248},[160,3980,3981],{"class":174},"b",[160,3983,3984],{"class":170}," ===",[160,3986,3987],{"class":1991}," 0",[160,3989,1995],{"class":248},[160,3991,242],{"class":170},[160,3993,3994,3997],{"class":162,"line":372},[160,3995,3996],{"class":166},"      return",[160,3998,290],{"class":170},[160,4000,4001,4004,4006,4008],{"class":162,"line":385},[160,4002,4003],{"class":248},"        content",[160,4005,252],{"class":170},[160,4007,380],{"class":248},[160,4009,242],{"class":170},[160,4011,4012,4015,4017,4019,4021,4023],{"class":162,"line":402},[160,4013,4014],{"class":248},"          type",[160,4016,252],{"class":170},[160,4018,184],{"class":170},[160,4020,395],{"class":187},[160,4022,213],{"class":170},[160,4024,262],{"class":170},[160,4026,4027,4030,4032,4034,4037,4039],{"class":162,"line":427},[160,4028,4029],{"class":248},"          text",[160,4031,252],{"class":170},[160,4033,184],{"class":170},[160,4035,4036],{"class":187},"Error: Division by zero",[160,4038,213],{"class":170},[160,4040,262],{"class":170},[160,4042,4043,4046,4048],{"class":162,"line":438},[160,4044,4045],{"class":170},"        }",[160,4047,433],{"class":248},[160,4049,262],{"class":170},[160,4051,4052,4055,4057,4059],{"class":162,"line":444},[160,4053,4054],{"class":248},"        isError",[160,4056,252],{"class":170},[160,4058,3624],{"class":3608},[160,4060,262],{"class":170},[160,4062,4063],{"class":162,"line":449},[160,4064,4065],{"class":170},"      }\n",[160,4067,4068],{"class":162,"line":1416},[160,4069,441],{"class":170},[160,4071,4072],{"class":162,"line":1421},[160,4073,224],{"emptyLinePlaceholder":223},[160,4075,4076,4078,4081,4083,4085,4087],{"class":162,"line":1427},[160,4077,1935],{"class":345},[160,4079,4080],{"class":174}," result",[160,4082,1941],{"class":170},[160,4084,1490],{"class":174},[160,4086,1946],{"class":170},[160,4088,4089],{"class":174}," b\n",[160,4091,4092,4094],{"class":162,"line":1469},[160,4093,367],{"class":166},[160,4095,290],{"class":170},[160,4097,4098,4100,4102,4104],{"class":162,"line":1474},[160,4099,375],{"class":248},[160,4101,252],{"class":170},[160,4103,380],{"class":248},[160,4105,242],{"class":170},[160,4107,4108,4110,4112,4114,4116,4118],{"class":162,"line":1519},[160,4109,388],{"class":248},[160,4111,252],{"class":170},[160,4113,184],{"class":170},[160,4115,395],{"class":187},[160,4117,213],{"class":170},[160,4119,262],{"class":170},[160,4121,4122,4124,4126,4128,4131,4133,4136,4138],{"class":162,"line":1525},[160,4123,405],{"class":248},[160,4125,252],{"class":170},[160,4127,410],{"class":170},[160,4129,4130],{"class":187},"Result: ",[160,4132,416],{"class":170},[160,4134,4135],{"class":174},"result",[160,4137,422],{"class":170},[160,4139,262],{"class":170},[160,4141,4142,4144,4146],{"class":162,"line":1530},[160,4143,430],{"class":170},[160,4145,433],{"class":248},[160,4147,262],{"class":170},[160,4149,4150],{"class":162,"line":2155},[160,4151,441],{"class":170},[160,4153,4154],{"class":162,"line":2165},[160,4155,334],{"class":170},[160,4157,4158,4160],{"class":162,"line":2199},[160,4159,452],{"class":170},[160,4161,455],{"class":174},[133,4163,4165],{"id":4164},"response-caching","Response Caching",[138,4167,4168,4169,4172],{},"You can cache tool responses using Nitro's caching system. The ",[157,4170,4171],{},"cache"," option accepts three formats:",[1536,4174,4176],{"id":4175},"simple-duration","Simple Duration",[138,4178,4179,4180,4189],{},"Use a string duration (parsed by ",[4181,4182,4186],"a",{"href":4183,"rel":4184},"https://www.npmjs.com/package/ms",[4185],"nofollow",[157,4187,4188],{},"ms",") or a number in milliseconds:",[149,4191,4194],{"className":151,"code":4192,"filename":4193,"language":154,"meta":155,"style":155},"import { z } from 'zod'\nimport { defineMcpTool } from '@nuxtjs/mcp-toolkit/server' // optional\n\nexport default defineMcpTool({\n  description: 'Fetch data with 1 hour cache',\n  inputSchema: {\n    id: z.string(),\n  },\n  cache: '1h', // or '30m', '2 days', 3600000, etc.\n  handler: async ({ id }) => {\n    const data = await fetchExpensiveData(id)\n    return {\n      content: [{ type: 'text', text: JSON.stringify(data) }],\n    }\n  },\n})\n","server/mcp/tools/cached-data.ts",[157,4195,4196,4214,4234,4238,4250,4265,4273,4290,4294,4313,4331,4350,4356,4405,4409,4413],{"__ignoreMap":155},[160,4197,4198,4200,4202,4204,4206,4208,4210,4212],{"class":162,"line":163},[160,4199,167],{"class":166},[160,4201,171],{"class":170},[160,4203,175],{"class":174},[160,4205,178],{"class":170},[160,4207,181],{"class":166},[160,4209,184],{"class":170},[160,4211,188],{"class":187},[160,4213,191],{"class":170},[160,4215,4216,4218,4220,4222,4224,4226,4228,4230,4232],{"class":162,"line":194},[160,4217,167],{"class":166},[160,4219,171],{"class":170},[160,4221,201],{"class":174},[160,4223,178],{"class":170},[160,4225,181],{"class":166},[160,4227,184],{"class":170},[160,4229,210],{"class":187},[160,4231,213],{"class":170},[160,4233,217],{"class":216},[160,4235,4236],{"class":162,"line":220},[160,4237,224],{"emptyLinePlaceholder":223},[160,4239,4240,4242,4244,4246,4248],{"class":162,"line":227},[160,4241,230],{"class":166},[160,4243,233],{"class":166},[160,4245,201],{"class":236},[160,4247,239],{"class":174},[160,4249,242],{"class":170},[160,4251,4252,4254,4256,4258,4261,4263],{"class":162,"line":245},[160,4253,268],{"class":248},[160,4255,252],{"class":170},[160,4257,184],{"class":170},[160,4259,4260],{"class":187},"Fetch data with 1 hour cache",[160,4262,213],{"class":170},[160,4264,262],{"class":170},[160,4266,4267,4269,4271],{"class":162,"line":265},[160,4268,285],{"class":248},[160,4270,252],{"class":170},[160,4272,290],{"class":170},[160,4274,4275,4278,4280,4282,4284,4286,4288],{"class":162,"line":282},[160,4276,4277],{"class":248},"    id",[160,4279,252],{"class":170},[160,4281,175],{"class":174},[160,4283,303],{"class":170},[160,4285,306],{"class":236},[160,4287,309],{"class":174},[160,4289,262],{"class":170},[160,4291,4292],{"class":162,"line":293},[160,4293,334],{"class":170},[160,4295,4296,4299,4301,4303,4306,4308,4310],{"class":162,"line":331},[160,4297,4298],{"class":248},"  cache",[160,4300,252],{"class":170},[160,4302,184],{"class":170},[160,4304,4305],{"class":187},"1h",[160,4307,213],{"class":170},[160,4309,695],{"class":170},[160,4311,4312],{"class":216}," // or '30m', '2 days', 3600000, etc.\n",[160,4314,4315,4317,4319,4321,4323,4325,4327,4329],{"class":162,"line":337},[160,4316,340],{"class":236},[160,4318,252],{"class":170},[160,4320,346],{"class":345},[160,4322,349],{"class":170},[160,4324,2852],{"class":352},[160,4326,356],{"class":170},[160,4328,359],{"class":345},[160,4330,290],{"class":170},[160,4332,4333,4335,4337,4339,4341,4344,4346,4348],{"class":162,"line":364},[160,4334,1935],{"class":345},[160,4336,3191],{"class":174},[160,4338,1941],{"class":170},[160,4340,2894],{"class":166},[160,4342,4343],{"class":236}," fetchExpensiveData",[160,4345,239],{"class":248},[160,4347,2902],{"class":174},[160,4349,455],{"class":248},[160,4351,4352,4354],{"class":162,"line":372},[160,4353,367],{"class":166},[160,4355,290],{"class":170},[160,4357,4358,4360,4362,4364,4367,4370,4372,4374,4376,4378,4380,4383,4385,4388,4390,4393,4395,4397,4399,4401,4403],{"class":162,"line":385},[160,4359,375],{"class":248},[160,4361,252],{"class":170},[160,4363,380],{"class":248},[160,4365,4366],{"class":170},"{",[160,4368,4369],{"class":248}," type",[160,4371,252],{"class":170},[160,4373,184],{"class":170},[160,4375,395],{"class":187},[160,4377,213],{"class":170},[160,4379,695],{"class":170},[160,4381,4382],{"class":248}," text",[160,4384,252],{"class":170},[160,4386,4387],{"class":174}," JSON",[160,4389,303],{"class":170},[160,4391,4392],{"class":236},"stringify",[160,4394,239],{"class":248},[160,4396,3247],{"class":174},[160,4398,1995],{"class":248},[160,4400,452],{"class":170},[160,4402,433],{"class":248},[160,4404,262],{"class":170},[160,4406,4407],{"class":162,"line":402},[160,4408,441],{"class":170},[160,4410,4411],{"class":162,"line":427},[160,4412,334],{"class":170},[160,4414,4415,4417],{"class":162,"line":438},[160,4416,452],{"class":170},[160,4418,455],{"class":174},[1536,4420,4422],{"id":4421},"full-cache-options","Full Cache Options",[138,4424,4425],{},"For more control, use an object with all Nitro cache options:",[149,4427,4430],{"className":151,"code":4428,"filename":4429,"language":154,"meta":155,"style":155},"import { z } from 'zod'\nimport { defineMcpTool } from '@nuxtjs/mcp-toolkit/server' // optional\n\nexport default defineMcpTool({\n  description: 'Get page with custom cache key',\n  inputSchema: {\n    path: z.string(),\n  },\n  cache: {\n    maxAge: '1h',\n    getKey: args => `page-${args.path}`,\n    swr: true, // stale-while-revalidate\n  },\n  handler: async ({ path }) => {\n    // ...\n  },\n})\n","server/mcp/tools/cached-pages.ts",[157,4431,4432,4450,4470,4474,4486,4501,4509,4526,4530,4538,4553,4583,4597,4601,4620,4624,4628],{"__ignoreMap":155},[160,4433,4434,4436,4438,4440,4442,4444,4446,4448],{"class":162,"line":163},[160,4435,167],{"class":166},[160,4437,171],{"class":170},[160,4439,175],{"class":174},[160,4441,178],{"class":170},[160,4443,181],{"class":166},[160,4445,184],{"class":170},[160,4447,188],{"class":187},[160,4449,191],{"class":170},[160,4451,4452,4454,4456,4458,4460,4462,4464,4466,4468],{"class":162,"line":194},[160,4453,167],{"class":166},[160,4455,171],{"class":170},[160,4457,201],{"class":174},[160,4459,178],{"class":170},[160,4461,181],{"class":166},[160,4463,184],{"class":170},[160,4465,210],{"class":187},[160,4467,213],{"class":170},[160,4469,217],{"class":216},[160,4471,4472],{"class":162,"line":220},[160,4473,224],{"emptyLinePlaceholder":223},[160,4475,4476,4478,4480,4482,4484],{"class":162,"line":227},[160,4477,230],{"class":166},[160,4479,233],{"class":166},[160,4481,201],{"class":236},[160,4483,239],{"class":174},[160,4485,242],{"class":170},[160,4487,4488,4490,4492,4494,4497,4499],{"class":162,"line":245},[160,4489,268],{"class":248},[160,4491,252],{"class":170},[160,4493,184],{"class":170},[160,4495,4496],{"class":187},"Get page with custom cache key",[160,4498,213],{"class":170},[160,4500,262],{"class":170},[160,4502,4503,4505,4507],{"class":162,"line":265},[160,4504,285],{"class":248},[160,4506,252],{"class":170},[160,4508,290],{"class":170},[160,4510,4511,4514,4516,4518,4520,4522,4524],{"class":162,"line":282},[160,4512,4513],{"class":248},"    path",[160,4515,252],{"class":170},[160,4517,175],{"class":174},[160,4519,303],{"class":170},[160,4521,306],{"class":236},[160,4523,309],{"class":174},[160,4525,262],{"class":170},[160,4527,4528],{"class":162,"line":293},[160,4529,334],{"class":170},[160,4531,4532,4534,4536],{"class":162,"line":331},[160,4533,4298],{"class":248},[160,4535,252],{"class":170},[160,4537,290],{"class":170},[160,4539,4540,4543,4545,4547,4549,4551],{"class":162,"line":337},[160,4541,4542],{"class":248},"    maxAge",[160,4544,252],{"class":170},[160,4546,184],{"class":170},[160,4548,4305],{"class":187},[160,4550,213],{"class":170},[160,4552,262],{"class":170},[160,4554,4555,4558,4560,4563,4565,4567,4570,4572,4574,4576,4579,4581],{"class":162,"line":364},[160,4556,4557],{"class":236},"    getKey",[160,4559,252],{"class":170},[160,4561,4562],{"class":352}," args",[160,4564,359],{"class":345},[160,4566,410],{"class":170},[160,4568,4569],{"class":187},"page-",[160,4571,416],{"class":170},[160,4573,729],{"class":174},[160,4575,303],{"class":170},[160,4577,4578],{"class":174},"path",[160,4580,422],{"class":170},[160,4582,262],{"class":170},[160,4584,4585,4588,4590,4592,4594],{"class":162,"line":372},[160,4586,4587],{"class":248},"    swr",[160,4589,252],{"class":170},[160,4591,3624],{"class":3608},[160,4593,695],{"class":170},[160,4595,4596],{"class":216}," // stale-while-revalidate\n",[160,4598,4599],{"class":162,"line":385},[160,4600,334],{"class":170},[160,4602,4603,4605,4607,4609,4611,4614,4616,4618],{"class":162,"line":402},[160,4604,340],{"class":236},[160,4606,252],{"class":170},[160,4608,346],{"class":345},[160,4610,349],{"class":170},[160,4612,4613],{"class":352}," path",[160,4615,356],{"class":170},[160,4617,359],{"class":345},[160,4619,290],{"class":170},[160,4621,4622],{"class":162,"line":427},[160,4623,580],{"class":216},[160,4625,4626],{"class":162,"line":438},[160,4627,334],{"class":170},[160,4629,4630,4632],{"class":162,"line":444},[160,4631,452],{"class":170},[160,4633,455],{"class":174},[1536,4635,4637],{"id":4636},"cache-options-reference","Cache Options Reference",[1544,4639,4640,4654],{},[1547,4641,4642],{},[1550,4643,4644,4647,4649,4652],{},[1553,4645,4646],{},"Option",[1553,4648,3721],{},[1553,4650,4651],{},"Required",[1553,4653,1561],{},[1563,4655,4656,4680,4698,4714,4730,4745],{},[1550,4657,4658,4663,4668,4671],{},[1568,4659,4660],{},[157,4661,4662],{},"maxAge",[1568,4664,4665],{},[157,4666,4667],{},"string | number",[1568,4669,4670],{},"Yes",[1568,4672,4673,4674,3327,4677,326],{},"Cache duration (e.g., ",[157,4675,4676],{},"'1h'",[157,4678,4679],{},"3600000",[1550,4681,4682,4687,4692,4695],{},[1568,4683,4684],{},[157,4685,4686],{},"getKey",[1568,4688,4689],{},[157,4690,4691],{},"(args) => string",[1568,4693,4694],{},"No",[1568,4696,4697],{},"Custom cache key generator",[1550,4699,4700,4705,4709,4711],{},[1568,4701,4702],{},[157,4703,4704],{},"staleMaxAge",[1568,4706,4707],{},[157,4708,1252],{},[1568,4710,4694],{},[1568,4712,4713],{},"Duration for stale-while-revalidate",[1550,4715,4716,4721,4725,4727],{},[1568,4717,4718],{},[157,4719,4720],{},"swr",[1568,4722,4723],{},[157,4724,3773],{},[1568,4726,4694],{},[1568,4728,4729],{},"Enable stale-while-revalidate",[1550,4731,4732,4736,4740,4742],{},[1568,4733,4734],{},[157,4735,465],{},[1568,4737,4738],{},[157,4739,306],{},[1568,4741,4694],{},[1568,4743,4744],{},"Cache name (auto-generated from tool name)",[1550,4746,4747,4752,4756,4758],{},[1568,4748,4749],{},[157,4750,4751],{},"group",[1568,4753,4754],{},[157,4755,306],{},[1568,4757,4694],{},[1568,4759,4760,4761,326],{},"Cache group (default: ",[157,4762,4763],{},"'mcp'",[3820,4765,4766,4767,4772],{"color":3822,"icon":3823},"See the ",[4181,4768,4771],{"href":4769,"rel":4770},"https://nitro.build/guide/cache#options",[4185],"Nitro Cache documentation"," for all available options.",[133,4774,4776],{"id":4775},"advanced-examples","Advanced Examples",[1536,4778,4780],{"id":4779},"tool-with-error-handling","Tool with Error Handling",[138,4782,4783],{},"Here's an example showing proper error handling:",[149,4785,4788],{"className":151,"code":4786,"filename":4787,"language":154,"meta":155,"style":155},"import { z } from 'zod'\nimport { defineMcpTool } from '@nuxtjs/mcp-toolkit/server' // optional\n\nexport default defineMcpTool({\n  name: 'safe-operation',\n  description: 'Perform an operation with error handling',\n  inputSchema: {\n    value: z.string().describe('Input value'),\n  },\n  handler: async ({ value }) => {\n    try {\n      // Your operation here\n      const result = value.toUpperCase()\n\n      return {\n        content: [{\n          type: 'text',\n          text: `Result: ${result}`,\n        }],\n      }\n    }\n    catch (error) {\n      return {\n        content: [{\n          type: 'text',\n          text: `Error: ${error instanceof Error ? error.message : String(error)}`,\n        }],\n        isError: true,\n      }\n    }\n  },\n})\n","server/mcp/tools/safe-operation.ts",[157,4789,4790,4808,4828,4832,4844,4859,4874,4882,4914,4918,4937,4944,4949,4968,4972,4978,4988,5002,5020,5028,5032,5036,5050,5056,5066,5080,5125,5133,5143,5147,5151,5155],{"__ignoreMap":155},[160,4791,4792,4794,4796,4798,4800,4802,4804,4806],{"class":162,"line":163},[160,4793,167],{"class":166},[160,4795,171],{"class":170},[160,4797,175],{"class":174},[160,4799,178],{"class":170},[160,4801,181],{"class":166},[160,4803,184],{"class":170},[160,4805,188],{"class":187},[160,4807,191],{"class":170},[160,4809,4810,4812,4814,4816,4818,4820,4822,4824,4826],{"class":162,"line":194},[160,4811,167],{"class":166},[160,4813,171],{"class":170},[160,4815,201],{"class":174},[160,4817,178],{"class":170},[160,4819,181],{"class":166},[160,4821,184],{"class":170},[160,4823,210],{"class":187},[160,4825,213],{"class":170},[160,4827,217],{"class":216},[160,4829,4830],{"class":162,"line":220},[160,4831,224],{"emptyLinePlaceholder":223},[160,4833,4834,4836,4838,4840,4842],{"class":162,"line":227},[160,4835,230],{"class":166},[160,4837,233],{"class":166},[160,4839,201],{"class":236},[160,4841,239],{"class":174},[160,4843,242],{"class":170},[160,4845,4846,4848,4850,4852,4855,4857],{"class":162,"line":245},[160,4847,249],{"class":248},[160,4849,252],{"class":170},[160,4851,184],{"class":170},[160,4853,4854],{"class":187},"safe-operation",[160,4856,213],{"class":170},[160,4858,262],{"class":170},[160,4860,4861,4863,4865,4867,4870,4872],{"class":162,"line":265},[160,4862,268],{"class":248},[160,4864,252],{"class":170},[160,4866,184],{"class":170},[160,4868,4869],{"class":187},"Perform an operation with error handling",[160,4871,213],{"class":170},[160,4873,262],{"class":170},[160,4875,4876,4878,4880],{"class":162,"line":282},[160,4877,285],{"class":248},[160,4879,252],{"class":170},[160,4881,290],{"class":170},[160,4883,4884,4887,4889,4891,4893,4895,4897,4899,4901,4903,4905,4908,4910,4912],{"class":162,"line":293},[160,4885,4886],{"class":248},"    value",[160,4888,252],{"class":170},[160,4890,175],{"class":174},[160,4892,303],{"class":170},[160,4894,306],{"class":236},[160,4896,309],{"class":174},[160,4898,303],{"class":170},[160,4900,314],{"class":236},[160,4902,239],{"class":174},[160,4904,213],{"class":170},[160,4906,4907],{"class":187},"Input value",[160,4909,213],{"class":170},[160,4911,326],{"class":174},[160,4913,262],{"class":170},[160,4915,4916],{"class":162,"line":331},[160,4917,334],{"class":170},[160,4919,4920,4922,4924,4926,4928,4931,4933,4935],{"class":162,"line":337},[160,4921,340],{"class":236},[160,4923,252],{"class":170},[160,4925,346],{"class":345},[160,4927,349],{"class":170},[160,4929,4930],{"class":352}," value",[160,4932,356],{"class":170},[160,4934,359],{"class":345},[160,4936,290],{"class":170},[160,4938,4939,4942],{"class":162,"line":364},[160,4940,4941],{"class":166},"    try",[160,4943,290],{"class":170},[160,4945,4946],{"class":162,"line":372},[160,4947,4948],{"class":216},"      // Your operation here\n",[160,4950,4951,4954,4956,4958,4960,4962,4965],{"class":162,"line":385},[160,4952,4953],{"class":345},"      const",[160,4955,4080],{"class":174},[160,4957,1941],{"class":170},[160,4959,4930],{"class":174},[160,4961,303],{"class":170},[160,4963,4964],{"class":236},"toUpperCase",[160,4966,4967],{"class":248},"()\n",[160,4969,4970],{"class":162,"line":402},[160,4971,224],{"emptyLinePlaceholder":223},[160,4973,4974,4976],{"class":162,"line":427},[160,4975,3996],{"class":166},[160,4977,290],{"class":170},[160,4979,4980,4982,4984,4986],{"class":162,"line":438},[160,4981,4003],{"class":248},[160,4983,252],{"class":170},[160,4985,380],{"class":248},[160,4987,242],{"class":170},[160,4989,4990,4992,4994,4996,4998,5000],{"class":162,"line":444},[160,4991,4014],{"class":248},[160,4993,252],{"class":170},[160,4995,184],{"class":170},[160,4997,395],{"class":187},[160,4999,213],{"class":170},[160,5001,262],{"class":170},[160,5003,5004,5006,5008,5010,5012,5014,5016,5018],{"class":162,"line":449},[160,5005,4029],{"class":248},[160,5007,252],{"class":170},[160,5009,410],{"class":170},[160,5011,4130],{"class":187},[160,5013,416],{"class":170},[160,5015,4135],{"class":174},[160,5017,422],{"class":170},[160,5019,262],{"class":170},[160,5021,5022,5024,5026],{"class":162,"line":1416},[160,5023,4045],{"class":170},[160,5025,433],{"class":248},[160,5027,262],{"class":170},[160,5029,5030],{"class":162,"line":1421},[160,5031,4065],{"class":170},[160,5033,5034],{"class":162,"line":1427},[160,5035,441],{"class":170},[160,5037,5038,5041,5043,5046,5048],{"class":162,"line":1469},[160,5039,5040],{"class":166},"    catch",[160,5042,726],{"class":248},[160,5044,5045],{"class":174},"error",[160,5047,1995],{"class":248},[160,5049,242],{"class":170},[160,5051,5052,5054],{"class":162,"line":1474},[160,5053,3996],{"class":166},[160,5055,290],{"class":170},[160,5057,5058,5060,5062,5064],{"class":162,"line":1519},[160,5059,4003],{"class":248},[160,5061,252],{"class":170},[160,5063,380],{"class":248},[160,5065,242],{"class":170},[160,5067,5068,5070,5072,5074,5076,5078],{"class":162,"line":1525},[160,5069,4014],{"class":248},[160,5071,252],{"class":170},[160,5073,184],{"class":170},[160,5075,395],{"class":187},[160,5077,213],{"class":170},[160,5079,262],{"class":170},[160,5081,5082,5084,5086,5088,5091,5093,5096,5099,5102,5105,5108,5110,5113,5115,5118,5121,5123],{"class":162,"line":1530},[160,5083,4029],{"class":248},[160,5085,252],{"class":170},[160,5087,410],{"class":170},[160,5089,5090],{"class":187},"Error: ",[160,5092,416],{"class":170},[160,5094,5095],{"class":174},"error ",[160,5097,5098],{"class":170},"instanceof",[160,5100,5101],{"class":2253}," Error",[160,5103,5104],{"class":170}," ?",[160,5106,5107],{"class":174}," error",[160,5109,303],{"class":170},[160,5111,5112],{"class":174},"message ",[160,5114,252],{"class":170},[160,5116,5117],{"class":236}," String",[160,5119,5120],{"class":174},"(error)",[160,5122,422],{"class":170},[160,5124,262],{"class":170},[160,5126,5127,5129,5131],{"class":162,"line":2155},[160,5128,4045],{"class":170},[160,5130,433],{"class":248},[160,5132,262],{"class":170},[160,5134,5135,5137,5139,5141],{"class":162,"line":2165},[160,5136,4054],{"class":248},[160,5138,252],{"class":170},[160,5140,3624],{"class":3608},[160,5142,262],{"class":170},[160,5144,5145],{"class":162,"line":2199},[160,5146,4065],{"class":170},[160,5148,5149],{"class":162,"line":2207},[160,5150,441],{"class":170},[160,5152,5153],{"class":162,"line":2213},[160,5154,334],{"class":170},[160,5156,5157,5159],{"class":162,"line":2218},[160,5158,452],{"class":170},[160,5160,455],{"class":174},[133,5162,5164],{"id":5163},"file-organization","File Organization",[138,5166,5167,5168,5171],{},"Organize your tools in the ",[157,5169,5170],{},"server/mcp/tools/"," directory:",[149,5173,5177],{"className":5174,"code":5176,"language":395},[5175],"language-text","server/\n└── mcp/\n    └── tools/\n        ├── echo.ts\n        ├── calculator.ts\n        ├── bmi.ts\n        └── text-processor.ts\n",[157,5178,5176],{"__ignoreMap":155},[138,5180,5181],{},"Each file should export a default tool definition.",[133,5183,5185],{"id":5184},"type-safety","Type Safety",[138,5187,5188],{},"The module provides full TypeScript type inference:",[149,5190,5192],{"className":151,"code":5191,"language":154,"meta":155,"style":155},"// Input types are inferred from inputSchema\nhandler: async ({ message }) => {\n  // message is typed as string\n}\n\n// Output types are inferred from outputSchema\nconst result = {\n  structuredContent: {\n    bmi: 25.5,      // number\n    category: '...', // string\n  },\n}\n",[157,5193,5194,5199,5217,5222,5226,5230,5235,5248,5257,5271,5288,5292],{"__ignoreMap":155},[160,5195,5196],{"class":162,"line":163},[160,5197,5198],{"class":216},"// Input types are inferred from inputSchema\n",[160,5200,5201,5203,5205,5207,5209,5211,5213,5215],{"class":162,"line":194},[160,5202,2254],{"class":2253},[160,5204,252],{"class":170},[160,5206,346],{"class":345},[160,5208,349],{"class":170},[160,5210,353],{"class":352},[160,5212,356],{"class":170},[160,5214,359],{"class":345},[160,5216,290],{"class":170},[160,5218,5219],{"class":162,"line":220},[160,5220,5221],{"class":216},"  // message is typed as string\n",[160,5223,5224],{"class":162,"line":227},[160,5225,760],{"class":170},[160,5227,5228],{"class":162,"line":245},[160,5229,224],{"emptyLinePlaceholder":223},[160,5231,5232],{"class":162,"line":265},[160,5233,5234],{"class":216},"// Output types are inferred from outputSchema\n",[160,5236,5237,5240,5243,5246],{"class":162,"line":282},[160,5238,5239],{"class":345},"const",[160,5241,5242],{"class":174}," result ",[160,5244,5245],{"class":170},"=",[160,5247,290],{"class":170},[160,5249,5250,5253,5255],{"class":162,"line":293},[160,5251,5252],{"class":248},"  structuredContent",[160,5254,252],{"class":170},[160,5256,290],{"class":170},[160,5258,5259,5261,5263,5266,5268],{"class":162,"line":331},[160,5260,1873],{"class":248},[160,5262,252],{"class":170},[160,5264,5265],{"class":1991}," 25.5",[160,5267,695],{"class":170},[160,5269,5270],{"class":216},"      // number\n",[160,5272,5273,5275,5277,5279,5281,5283,5285],{"class":162,"line":337},[160,5274,1890],{"class":248},[160,5276,252],{"class":170},[160,5278,184],{"class":170},[160,5280,754],{"class":187},[160,5282,213],{"class":170},[160,5284,695],{"class":170},[160,5286,5287],{"class":216}," // string\n",[160,5289,5290],{"class":162,"line":364},[160,5291,334],{"class":170},[160,5293,5294],{"class":162,"line":372},[160,5295,760],{"class":170},[133,5297,5299],{"id":5298},"next-steps","Next Steps",[599,5301,5302,5307,5312,5317],{},[602,5303,5304,5306],{},[4181,5305,54],{"href":55}," - Create resources to expose data",[602,5308,5309,5311],{},[4181,5310,59],{"href":60}," - Create reusable prompts",[602,5313,5314,5316],{},[4181,5315,64],{"href":65}," - Create custom MCP endpoints",[602,5318,5319,5321],{},[4181,5320,99],{"href":115}," - See more tool examples",[5323,5324,5325],"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 .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 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 .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 .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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":155,"searchDepth":194,"depth":194,"links":5327},[5328,5329,5330,5331,5332,5335,5336,5340,5343,5344,5349,5352,5353,5354],{"id":135,"depth":194,"text":136},{"id":143,"depth":194,"text":144},{"id":458,"depth":194,"text":459},{"id":630,"depth":194,"text":631},{"id":945,"depth":194,"text":946,"children":5333},[5334],{"id":1538,"depth":220,"text":1539},{"id":1687,"depth":194,"text":1688},{"id":2239,"depth":194,"text":2240,"children":5337},[5338,5339],{"id":2373,"depth":220,"text":2374},{"id":2637,"depth":220,"text":2638},{"id":3373,"depth":194,"text":3374,"children":5341},[5342],{"id":3708,"depth":220,"text":3709},{"id":3827,"depth":194,"text":3828},{"id":4164,"depth":194,"text":4165,"children":5345},[5346,5347,5348],{"id":4175,"depth":220,"text":4176},{"id":4421,"depth":220,"text":4422},{"id":4636,"depth":220,"text":4637},{"id":4775,"depth":194,"text":4776,"children":5350},[5351],{"id":4779,"depth":220,"text":4780},{"id":5163,"depth":194,"text":5164},{"id":5184,"depth":194,"text":5185},{"id":5298,"depth":194,"text":5299},"Create MCP tools with Zod validation and type safety.","md",null,{},{"icon":52},{"title":49,"description":5361},"Create MCP tools with Zod validation and full TypeScript support.","5XqHJXdokYlPOlWQcS7o0jCcN0zr_FQvpN9P0xtaRJs",[5364,5366],{"title":20,"path":46,"stem":47,"description":5365,"icon":23,"children":-1},"Configure the Nuxt MCP module to fit your needs.",{"title":54,"path":55,"stem":56,"description":5367,"icon":57,"children":-1},"Expose read-only data sources as MCP resources to provide context to AI models.",1770714225528]