[{"data":1,"prerenderedAt":5834},["ShallowReactive",2],{"navigation_docs":3,"-core-concepts-tools":127,"-core-concepts-tools-surround":5829},[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":5821,"extension":5822,"links":5823,"meta":5824,"navigation":5825,"path":50,"seo":5826,"stem":51,"__hash__":5828},"docs/2.core-concepts/2.tools.md",{"type":130,"value":131,"toc":5791},"minimark",[132,137,141,145,148,456,460,471,591,598,619,628,632,635,966,970,980,1130,1133,1558,1563,1708,1712,1718,2251,2260,2264,2267,2394,2398,2401,2658,2662,2665,3304,3394,3398,3401,3624,3628,3742,3745,3994,4005,4009,4022,4025,4285,4291,4295,4298,4628,4632,4639,4643,4656,4884,4888,4891,5099,5103,5229,5238,5242,5246,5249,5626,5630,5637,5644,5647,5651,5654,5761,5765,5787],[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: { ... },             // Behavioral hints for clients\n  inputExamples: [{ ... }],         // Concrete usage examples\n  handler: async (args) => { ... },\n})\n","Optional Fields",[157,776,777,797,801,813,830,849,867,882,898,914,937,960],{"__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},"             // Behavioral hints for clients\n",[160,915,916,919,921,923,926,928,930,932,934],{"class":162,"line":337},[160,917,918],{"class":248},"  inputExamples",[160,920,252],{"class":170},[160,922,380],{"class":174},[160,924,925],{"class":170},"{",[160,927,709],{"class":170},[160,929,178],{"class":170},[160,931,433],{"class":174},[160,933,695],{"class":170},[160,935,936],{"class":216},"         // Concrete usage examples\n",[160,938,939,941,943,945,947,949,951,953,955,957],{"class":162,"line":364},[160,940,340],{"class":236},[160,942,252],{"class":170},[160,944,346],{"class":345},[160,946,726],{"class":170},[160,948,729],{"class":352},[160,950,326],{"class":170},[160,952,359],{"class":345},[160,954,171],{"class":170},[160,956,709],{"class":170},[160,958,959],{"class":170}," },\n",[160,961,962,964],{"class":162,"line":372},[160,963,452],{"class":170},[160,965,455],{"class":174},[133,967,969],{"id":968},"input-schema","Input Schema",[138,971,972,973,976,977,979],{},"The ",[157,974,975],{},"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,978,975],{}," entirely:",[149,981,983],{"className":151,"code":982,"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,984,985,1005,1009,1021,1035,1049,1063,1069,1079,1093,1108,1116,1120,1124],{"__ignoreMap":155},[160,986,987,989,991,993,995,997,999,1001,1003],{"class":162,"line":163},[160,988,167],{"class":166},[160,990,171],{"class":170},[160,992,201],{"class":174},[160,994,178],{"class":170},[160,996,181],{"class":166},[160,998,184],{"class":170},[160,1000,210],{"class":187},[160,1002,213],{"class":170},[160,1004,217],{"class":216},[160,1006,1007],{"class":162,"line":194},[160,1008,224],{"emptyLinePlaceholder":223},[160,1010,1011,1013,1015,1017,1019],{"class":162,"line":220},[160,1012,230],{"class":166},[160,1014,233],{"class":166},[160,1016,201],{"class":236},[160,1018,239],{"class":174},[160,1020,242],{"class":170},[160,1022,1023,1025,1027,1029,1031,1033],{"class":162,"line":227},[160,1024,249],{"class":248},[160,1026,252],{"class":170},[160,1028,184],{"class":170},[160,1030,257],{"class":187},[160,1032,213],{"class":170},[160,1034,262],{"class":170},[160,1036,1037,1039,1041,1043,1045,1047],{"class":162,"line":245},[160,1038,268],{"class":248},[160,1040,252],{"class":170},[160,1042,184],{"class":170},[160,1044,275],{"class":187},[160,1046,213],{"class":170},[160,1048,262],{"class":170},[160,1050,1051,1053,1055,1057,1059,1061],{"class":162,"line":265},[160,1052,340],{"class":236},[160,1054,252],{"class":170},[160,1056,346],{"class":345},[160,1058,571],{"class":170},[160,1060,359],{"class":345},[160,1062,290],{"class":170},[160,1064,1065,1067],{"class":162,"line":282},[160,1066,367],{"class":166},[160,1068,290],{"class":170},[160,1070,1071,1073,1075,1077],{"class":162,"line":293},[160,1072,375],{"class":248},[160,1074,252],{"class":170},[160,1076,380],{"class":248},[160,1078,242],{"class":170},[160,1080,1081,1083,1085,1087,1089,1091],{"class":162,"line":331},[160,1082,388],{"class":248},[160,1084,252],{"class":170},[160,1086,184],{"class":170},[160,1088,395],{"class":187},[160,1090,213],{"class":170},[160,1092,262],{"class":170},[160,1094,1095,1097,1099,1101,1104,1106],{"class":162,"line":337},[160,1096,405],{"class":248},[160,1098,252],{"class":170},[160,1100,184],{"class":170},[160,1102,1103],{"class":187},"Echo: test",[160,1105,213],{"class":170},[160,1107,262],{"class":170},[160,1109,1110,1112,1114],{"class":162,"line":364},[160,1111,430],{"class":170},[160,1113,433],{"class":248},[160,1115,262],{"class":170},[160,1117,1118],{"class":162,"line":372},[160,1119,441],{"class":170},[160,1121,1122],{"class":162,"line":385},[160,1123,334],{"class":170},[160,1125,1126,1128],{"class":162,"line":402},[160,1127,452],{"class":170},[160,1129,455],{"class":174},[138,1131,1132],{},"For tools with parameters, define them using Zod schemas:",[149,1134,1137],{"className":151,"code":1135,"filename":1136,"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,1138,1139,1157,1177,1181,1193,1208,1216,1221,1253,1257,1262,1295,1327,1331,1336,1375,1379,1384,1437,1442,1448,1490,1495,1540,1546,1551],{"__ignoreMap":155},[160,1140,1141,1143,1145,1147,1149,1151,1153,1155],{"class":162,"line":163},[160,1142,167],{"class":166},[160,1144,171],{"class":170},[160,1146,175],{"class":174},[160,1148,178],{"class":170},[160,1150,181],{"class":166},[160,1152,184],{"class":170},[160,1154,188],{"class":187},[160,1156,191],{"class":170},[160,1158,1159,1161,1163,1165,1167,1169,1171,1173,1175],{"class":162,"line":194},[160,1160,167],{"class":166},[160,1162,171],{"class":170},[160,1164,201],{"class":174},[160,1166,178],{"class":170},[160,1168,181],{"class":166},[160,1170,184],{"class":170},[160,1172,210],{"class":187},[160,1174,213],{"class":170},[160,1176,217],{"class":216},[160,1178,1179],{"class":162,"line":220},[160,1180,224],{"emptyLinePlaceholder":223},[160,1182,1183,1185,1187,1189,1191],{"class":162,"line":227},[160,1184,230],{"class":166},[160,1186,233],{"class":166},[160,1188,201],{"class":236},[160,1190,239],{"class":174},[160,1192,242],{"class":170},[160,1194,1195,1197,1199,1201,1204,1206],{"class":162,"line":245},[160,1196,249],{"class":248},[160,1198,252],{"class":170},[160,1200,184],{"class":170},[160,1202,1203],{"class":187},"calculator",[160,1205,213],{"class":170},[160,1207,262],{"class":170},[160,1209,1210,1212,1214],{"class":162,"line":265},[160,1211,285],{"class":248},[160,1213,252],{"class":170},[160,1215,290],{"class":170},[160,1217,1218],{"class":162,"line":282},[160,1219,1220],{"class":216},"    // String input\n",[160,1222,1223,1226,1228,1230,1232,1234,1236,1238,1240,1242,1244,1247,1249,1251],{"class":162,"line":293},[160,1224,1225],{"class":248},"    operation",[160,1227,252],{"class":170},[160,1229,175],{"class":174},[160,1231,303],{"class":170},[160,1233,306],{"class":236},[160,1235,309],{"class":174},[160,1237,303],{"class":170},[160,1239,314],{"class":236},[160,1241,239],{"class":174},[160,1243,213],{"class":170},[160,1245,1246],{"class":187},"Operation to perform",[160,1248,213],{"class":170},[160,1250,326],{"class":174},[160,1252,262],{"class":170},[160,1254,1255],{"class":162,"line":331},[160,1256,224],{"emptyLinePlaceholder":223},[160,1258,1259],{"class":162,"line":337},[160,1260,1261],{"class":216},"    // Number input\n",[160,1263,1264,1267,1269,1271,1273,1276,1278,1280,1282,1284,1286,1289,1291,1293],{"class":162,"line":364},[160,1265,1266],{"class":248},"    a",[160,1268,252],{"class":170},[160,1270,175],{"class":174},[160,1272,303],{"class":170},[160,1274,1275],{"class":236},"number",[160,1277,309],{"class":174},[160,1279,303],{"class":170},[160,1281,314],{"class":236},[160,1283,239],{"class":174},[160,1285,213],{"class":170},[160,1287,1288],{"class":187},"First number",[160,1290,213],{"class":170},[160,1292,326],{"class":174},[160,1294,262],{"class":170},[160,1296,1297,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1321,1323,1325],{"class":162,"line":372},[160,1298,1299],{"class":248},"    b",[160,1301,252],{"class":170},[160,1303,175],{"class":174},[160,1305,303],{"class":170},[160,1307,1275],{"class":236},[160,1309,309],{"class":174},[160,1311,303],{"class":170},[160,1313,314],{"class":236},[160,1315,239],{"class":174},[160,1317,213],{"class":170},[160,1319,1320],{"class":187},"Second number",[160,1322,213],{"class":170},[160,1324,326],{"class":174},[160,1326,262],{"class":170},[160,1328,1329],{"class":162,"line":385},[160,1330,224],{"emptyLinePlaceholder":223},[160,1332,1333],{"class":162,"line":402},[160,1334,1335],{"class":216},"    // Optional field\n",[160,1337,1338,1341,1343,1345,1347,1349,1351,1353,1356,1358,1360,1362,1364,1366,1369,1371,1373],{"class":162,"line":427},[160,1339,1340],{"class":248},"    precision",[160,1342,252],{"class":170},[160,1344,175],{"class":174},[160,1346,303],{"class":170},[160,1348,1275],{"class":236},[160,1350,309],{"class":174},[160,1352,303],{"class":170},[160,1354,1355],{"class":236},"optional",[160,1357,309],{"class":174},[160,1359,303],{"class":170},[160,1361,314],{"class":236},[160,1363,239],{"class":174},[160,1365,213],{"class":170},[160,1367,1368],{"class":187},"Decimal precision",[160,1370,213],{"class":170},[160,1372,326],{"class":174},[160,1374,262],{"class":170},[160,1376,1377],{"class":162,"line":438},[160,1378,224],{"emptyLinePlaceholder":223},[160,1380,1381],{"class":162,"line":444},[160,1382,1383],{"class":216},"    // Enum input\n",[160,1385,1386,1389,1391,1393,1395,1398,1401,1403,1406,1408,1410,1412,1415,1417,1420,1422,1424,1426,1428,1431,1433,1435],{"class":162,"line":449},[160,1387,1388],{"class":248},"    format",[160,1390,252],{"class":170},[160,1392,175],{"class":174},[160,1394,303],{"class":170},[160,1396,1397],{"class":236},"enum",[160,1399,1400],{"class":174},"([",[160,1402,213],{"class":170},[160,1404,1405],{"class":187},"decimal",[160,1407,213],{"class":170},[160,1409,695],{"class":170},[160,1411,184],{"class":170},[160,1413,1414],{"class":187},"fraction",[160,1416,213],{"class":170},[160,1418,1419],{"class":174},"])",[160,1421,303],{"class":170},[160,1423,314],{"class":236},[160,1425,239],{"class":174},[160,1427,213],{"class":170},[160,1429,1430],{"class":187},"Output format",[160,1432,213],{"class":170},[160,1434,326],{"class":174},[160,1436,262],{"class":170},[160,1438,1440],{"class":162,"line":1439},19,[160,1441,224],{"emptyLinePlaceholder":223},[160,1443,1445],{"class":162,"line":1444},20,[160,1446,1447],{"class":216},"    // Array input\n",[160,1449,1451,1454,1456,1458,1460,1463,1466,1468,1470,1473,1475,1477,1479,1481,1484,1486,1488],{"class":162,"line":1450},21,[160,1452,1453],{"class":248},"    numbers",[160,1455,252],{"class":170},[160,1457,175],{"class":174},[160,1459,303],{"class":170},[160,1461,1462],{"class":236},"array",[160,1464,1465],{"class":174},"(z",[160,1467,303],{"class":170},[160,1469,1275],{"class":236},[160,1471,1472],{"class":174},"())",[160,1474,303],{"class":170},[160,1476,314],{"class":236},[160,1478,239],{"class":174},[160,1480,213],{"class":170},[160,1482,1483],{"class":187},"List of numbers",[160,1485,213],{"class":170},[160,1487,326],{"class":174},[160,1489,262],{"class":170},[160,1491,1493],{"class":162,"line":1492},22,[160,1494,334],{"class":170},[160,1496,1498,1500,1502,1504,1506,1509,1511,1514,1516,1519,1521,1524,1526,1529,1531,1534,1536,1538],{"class":162,"line":1497},23,[160,1499,340],{"class":236},[160,1501,252],{"class":170},[160,1503,346],{"class":345},[160,1505,349],{"class":170},[160,1507,1508],{"class":352}," operation",[160,1510,695],{"class":170},[160,1512,1513],{"class":352}," a",[160,1515,695],{"class":170},[160,1517,1518],{"class":352}," b",[160,1520,695],{"class":170},[160,1522,1523],{"class":352}," precision",[160,1525,695],{"class":170},[160,1527,1528],{"class":352}," format",[160,1530,695],{"class":170},[160,1532,1533],{"class":352}," numbers",[160,1535,356],{"class":170},[160,1537,359],{"class":345},[160,1539,290],{"class":170},[160,1541,1543],{"class":162,"line":1542},24,[160,1544,1545],{"class":216},"    // Handler implementation\n",[160,1547,1549],{"class":162,"line":1548},25,[160,1550,334],{"class":170},[160,1552,1554,1556],{"class":162,"line":1553},26,[160,1555,452],{"class":170},[160,1557,455],{"class":174},[1559,1560,1562],"h3",{"id":1561},"common-zod-types","Common Zod Types",[1564,1565,1566],"prose-table",{},[1567,1568,1569,1585],"table",{},[1570,1571,1572],"thead",{},[1573,1574,1575,1579,1582],"tr",{},[1576,1577,1578],"th",{},"Zod Type",[1576,1580,1581],{},"Example",[1576,1583,1584],{},"Description",[1586,1587,1588,1604,1619,1633,1648,1663,1678,1693],"tbody",{},[1573,1589,1590,1596,1601],{},[1591,1592,1593],"td",{},[157,1594,1595],{},"z.string()",[1591,1597,1598],{},[157,1599,1600],{},"z.string().min(1).max(100)",[1591,1602,1603],{},"String with validation",[1573,1605,1606,1611,1616],{},[1591,1607,1608],{},[157,1609,1610],{},"z.number()",[1591,1612,1613],{},[157,1614,1615],{},"z.number().min(0).max(100)",[1591,1617,1618],{},"Number with validation",[1573,1620,1621,1626,1630],{},[1591,1622,1623],{},[157,1624,1625],{},"z.boolean()",[1591,1627,1628],{},[157,1629,1625],{},[1591,1631,1632],{},"Boolean value",[1573,1634,1635,1640,1645],{},[1591,1636,1637],{},[157,1638,1639],{},"z.array()",[1591,1641,1642],{},[157,1643,1644],{},"z.array(z.string())",[1591,1646,1647],{},"Array of values",[1573,1649,1650,1655,1660],{},[1591,1651,1652],{},[157,1653,1654],{},"z.object()",[1591,1656,1657],{},[157,1658,1659],{},"z.object({ ... })",[1591,1661,1662],{},"Nested object",[1573,1664,1665,1670,1675],{},[1591,1666,1667],{},[157,1668,1669],{},"z.enum()",[1591,1671,1672],{},[157,1673,1674],{},"z.enum(['a', 'b'])",[1591,1676,1677],{},"Enumeration",[1573,1679,1680,1685,1690],{},[1591,1681,1682],{},[157,1683,1684],{},"z.optional()",[1591,1686,1687],{},[157,1688,1689],{},"z.string().optional()",[1591,1691,1692],{},"Optional field",[1573,1694,1695,1700,1705],{},[1591,1696,1697],{},[157,1698,1699],{},"z.default()",[1591,1701,1702],{},[157,1703,1704],{},"z.string().default('value')",[1591,1706,1707],{},"Field with default",[133,1709,1711],{"id":1710},"output-schema","Output Schema",[138,1713,1714,1715,252],{},"Define structured output using ",[157,1716,1717],{},"outputSchema",[149,1719,1722],{"className":151,"code":1720,"filename":1721,"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,1723,1724,1742,1762,1766,1778,1793,1808,1816,1848,1880,1884,1892,1909,1926,1930,1954,1982,1999,2031,2062,2090,2094,2100,2110,2124,2168,2176,2186,2220,2228,2234,2239,2244],{"__ignoreMap":155},[160,1725,1726,1728,1730,1732,1734,1736,1738,1740],{"class":162,"line":163},[160,1727,167],{"class":166},[160,1729,171],{"class":170},[160,1731,175],{"class":174},[160,1733,178],{"class":170},[160,1735,181],{"class":166},[160,1737,184],{"class":170},[160,1739,188],{"class":187},[160,1741,191],{"class":170},[160,1743,1744,1746,1748,1750,1752,1754,1756,1758,1760],{"class":162,"line":194},[160,1745,167],{"class":166},[160,1747,171],{"class":170},[160,1749,201],{"class":174},[160,1751,178],{"class":170},[160,1753,181],{"class":166},[160,1755,184],{"class":170},[160,1757,210],{"class":187},[160,1759,213],{"class":170},[160,1761,217],{"class":216},[160,1763,1764],{"class":162,"line":220},[160,1765,224],{"emptyLinePlaceholder":223},[160,1767,1768,1770,1772,1774,1776],{"class":162,"line":227},[160,1769,230],{"class":166},[160,1771,233],{"class":166},[160,1773,201],{"class":236},[160,1775,239],{"class":174},[160,1777,242],{"class":170},[160,1779,1780,1782,1784,1786,1789,1791],{"class":162,"line":245},[160,1781,249],{"class":248},[160,1783,252],{"class":170},[160,1785,184],{"class":170},[160,1787,1788],{"class":187},"calculate-bmi",[160,1790,213],{"class":170},[160,1792,262],{"class":170},[160,1794,1795,1797,1799,1801,1804,1806],{"class":162,"line":265},[160,1796,268],{"class":248},[160,1798,252],{"class":170},[160,1800,184],{"class":170},[160,1802,1803],{"class":187},"Calculate Body Mass Index",[160,1805,213],{"class":170},[160,1807,262],{"class":170},[160,1809,1810,1812,1814],{"class":162,"line":282},[160,1811,285],{"class":248},[160,1813,252],{"class":170},[160,1815,290],{"class":170},[160,1817,1818,1821,1823,1825,1827,1829,1831,1833,1835,1837,1839,1842,1844,1846],{"class":162,"line":293},[160,1819,1820],{"class":248},"    weightKg",[160,1822,252],{"class":170},[160,1824,175],{"class":174},[160,1826,303],{"class":170},[160,1828,1275],{"class":236},[160,1830,309],{"class":174},[160,1832,303],{"class":170},[160,1834,314],{"class":236},[160,1836,239],{"class":174},[160,1838,213],{"class":170},[160,1840,1841],{"class":187},"Weight in kilograms",[160,1843,213],{"class":170},[160,1845,326],{"class":174},[160,1847,262],{"class":170},[160,1849,1850,1853,1855,1857,1859,1861,1863,1865,1867,1869,1871,1874,1876,1878],{"class":162,"line":331},[160,1851,1852],{"class":248},"    heightM",[160,1854,252],{"class":170},[160,1856,175],{"class":174},[160,1858,303],{"class":170},[160,1860,1275],{"class":236},[160,1862,309],{"class":174},[160,1864,303],{"class":170},[160,1866,314],{"class":236},[160,1868,239],{"class":174},[160,1870,213],{"class":170},[160,1872,1873],{"class":187},"Height in meters",[160,1875,213],{"class":170},[160,1877,326],{"class":174},[160,1879,262],{"class":170},[160,1881,1882],{"class":162,"line":337},[160,1883,334],{"class":170},[160,1885,1886,1888,1890],{"class":162,"line":364},[160,1887,886],{"class":248},[160,1889,252],{"class":170},[160,1891,290],{"class":170},[160,1893,1894,1897,1899,1901,1903,1905,1907],{"class":162,"line":372},[160,1895,1896],{"class":248},"    bmi",[160,1898,252],{"class":170},[160,1900,175],{"class":174},[160,1902,303],{"class":170},[160,1904,1275],{"class":236},[160,1906,309],{"class":174},[160,1908,262],{"class":170},[160,1910,1911,1914,1916,1918,1920,1922,1924],{"class":162,"line":385},[160,1912,1913],{"class":248},"    category",[160,1915,252],{"class":170},[160,1917,175],{"class":174},[160,1919,303],{"class":170},[160,1921,306],{"class":236},[160,1923,309],{"class":174},[160,1925,262],{"class":170},[160,1927,1928],{"class":162,"line":402},[160,1929,334],{"class":170},[160,1931,1932,1934,1936,1938,1940,1943,1945,1948,1950,1952],{"class":162,"line":427},[160,1933,340],{"class":236},[160,1935,252],{"class":170},[160,1937,346],{"class":345},[160,1939,349],{"class":170},[160,1941,1942],{"class":352}," weightKg",[160,1944,695],{"class":170},[160,1946,1947],{"class":352}," heightM",[160,1949,356],{"class":170},[160,1951,359],{"class":345},[160,1953,290],{"class":170},[160,1955,1956,1959,1962,1965,1967,1970,1972,1975,1978,1980],{"class":162,"line":438},[160,1957,1958],{"class":345},"    const",[160,1960,1961],{"class":174}," bmi",[160,1963,1964],{"class":170}," =",[160,1966,1942],{"class":174},[160,1968,1969],{"class":170}," /",[160,1971,726],{"class":248},[160,1973,1974],{"class":174},"heightM",[160,1976,1977],{"class":170}," *",[160,1979,1947],{"class":174},[160,1981,455],{"class":248},[160,1983,1984,1987,1990,1992,1994,1997],{"class":162,"line":444},[160,1985,1986],{"class":345},"    let",[160,1988,1989],{"class":174}," category",[160,1991,1964],{"class":170},[160,1993,184],{"class":170},[160,1995,1996],{"class":187},"Normal",[160,1998,191],{"class":170},[160,2000,2001,2004,2006,2009,2012,2016,2019,2022,2024,2026,2029],{"class":162,"line":449},[160,2002,2003],{"class":166},"    if",[160,2005,726],{"class":248},[160,2007,2008],{"class":174},"bmi",[160,2010,2011],{"class":170}," \u003C",[160,2013,2015],{"class":2014},"sbssI"," 18.5",[160,2017,2018],{"class":248},") ",[160,2020,2021],{"class":174},"category",[160,2023,1964],{"class":170},[160,2025,184],{"class":170},[160,2027,2028],{"class":187},"Underweight",[160,2030,191],{"class":170},[160,2032,2033,2036,2039,2041,2043,2046,2049,2051,2053,2055,2057,2060],{"class":162,"line":1439},[160,2034,2035],{"class":166},"    else",[160,2037,2038],{"class":166}," if",[160,2040,726],{"class":248},[160,2042,2008],{"class":174},[160,2044,2045],{"class":170}," >=",[160,2047,2048],{"class":2014}," 25",[160,2050,2018],{"class":248},[160,2052,2021],{"class":174},[160,2054,1964],{"class":170},[160,2056,184],{"class":170},[160,2058,2059],{"class":187},"Overweight",[160,2061,191],{"class":170},[160,2063,2064,2066,2068,2070,2072,2074,2077,2079,2081,2083,2085,2088],{"class":162,"line":1444},[160,2065,2035],{"class":166},[160,2067,2038],{"class":166},[160,2069,726],{"class":248},[160,2071,2008],{"class":174},[160,2073,2045],{"class":170},[160,2075,2076],{"class":2014}," 30",[160,2078,2018],{"class":248},[160,2080,2021],{"class":174},[160,2082,1964],{"class":170},[160,2084,184],{"class":170},[160,2086,2087],{"class":187},"Obese",[160,2089,191],{"class":170},[160,2091,2092],{"class":162,"line":1450},[160,2093,224],{"emptyLinePlaceholder":223},[160,2095,2096,2098],{"class":162,"line":1492},[160,2097,367],{"class":166},[160,2099,290],{"class":170},[160,2101,2102,2104,2106,2108],{"class":162,"line":1497},[160,2103,375],{"class":248},[160,2105,252],{"class":170},[160,2107,380],{"class":248},[160,2109,242],{"class":170},[160,2111,2112,2114,2116,2118,2120,2122],{"class":162,"line":1542},[160,2113,388],{"class":248},[160,2115,252],{"class":170},[160,2117,184],{"class":170},[160,2119,395],{"class":187},[160,2121,213],{"class":170},[160,2123,262],{"class":170},[160,2125,2126,2128,2130,2132,2135,2137,2139,2141,2144,2146,2149,2151,2153,2155,2157,2159,2161,2163,2166],{"class":162,"line":1548},[160,2127,405],{"class":248},[160,2129,252],{"class":170},[160,2131,410],{"class":170},[160,2133,2134],{"class":187},"BMI: ",[160,2136,416],{"class":170},[160,2138,2008],{"class":174},[160,2140,303],{"class":170},[160,2142,2143],{"class":236},"toFixed",[160,2145,239],{"class":174},[160,2147,2148],{"class":2014},"2",[160,2150,326],{"class":174},[160,2152,452],{"class":170},[160,2154,726],{"class":187},[160,2156,416],{"class":170},[160,2158,2021],{"class":174},[160,2160,452],{"class":170},[160,2162,326],{"class":187},[160,2164,2165],{"class":170},"`",[160,2167,262],{"class":170},[160,2169,2170,2172,2174],{"class":162,"line":1553},[160,2171,430],{"class":170},[160,2173,433],{"class":248},[160,2175,262],{"class":170},[160,2177,2179,2182,2184],{"class":162,"line":2178},27,[160,2180,2181],{"class":248},"      structuredContent",[160,2183,252],{"class":170},[160,2185,290],{"class":170},[160,2187,2189,2192,2194,2197,2199,2202,2204,2206,2208,2211,2213,2216,2218],{"class":162,"line":2188},28,[160,2190,2191],{"class":248},"        bmi",[160,2193,252],{"class":170},[160,2195,2196],{"class":174}," Math",[160,2198,303],{"class":170},[160,2200,2201],{"class":236},"round",[160,2203,239],{"class":248},[160,2205,2008],{"class":174},[160,2207,1977],{"class":170},[160,2209,2210],{"class":2014}," 100",[160,2212,2018],{"class":248},[160,2214,2215],{"class":170},"/",[160,2217,2210],{"class":2014},[160,2219,262],{"class":170},[160,2221,2223,2226],{"class":162,"line":2222},29,[160,2224,2225],{"class":174},"        category",[160,2227,262],{"class":170},[160,2229,2231],{"class":162,"line":2230},30,[160,2232,2233],{"class":170},"      },\n",[160,2235,2237],{"class":162,"line":2236},31,[160,2238,441],{"class":170},[160,2240,2242],{"class":162,"line":2241},32,[160,2243,334],{"class":170},[160,2245,2247,2249],{"class":162,"line":2246},33,[160,2248,452],{"class":170},[160,2250,455],{"class":174},[138,2252,972,2253,2256,2257,2259],{},[157,2254,2255],{},"structuredContent"," field provides structured data that matches your ",[157,2258,1717],{},", making it easier for AI assistants to work with the results.",[133,2261,2263],{"id":2262},"handler-function","Handler Function",[138,2265,2266],{},"The handler is an async function that receives validated input and returns results:",[149,2268,2270],{"className":151,"code":2269,"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,2271,2272,2297,2302,2307,2311,2318,2329,2344,2360,2369,2385,2390],{"__ignoreMap":155},[160,2273,2274,2278,2280,2282,2284,2286,2288,2291,2293,2295],{"class":162,"line":163},[160,2275,2277],{"class":2276},"sBMFI","handler",[160,2279,252],{"class":170},[160,2281,346],{"class":345},[160,2283,726],{"class":170},[160,2285,729],{"class":352},[160,2287,695],{"class":170},[160,2289,2290],{"class":352}," extra",[160,2292,326],{"class":170},[160,2294,359],{"class":345},[160,2296,290],{"class":170},[160,2298,2299],{"class":162,"line":194},[160,2300,2301],{"class":216},"  // args: Validated input matching inputSchema\n",[160,2303,2304],{"class":162,"line":220},[160,2305,2306],{"class":216},"  // extra: Request handler extra information\n",[160,2308,2309],{"class":162,"line":227},[160,2310,224],{"emptyLinePlaceholder":223},[160,2312,2313,2316],{"class":162,"line":245},[160,2314,2315],{"class":166},"  return",[160,2317,290],{"class":170},[160,2319,2320,2323,2325,2327],{"class":162,"line":265},[160,2321,2322],{"class":248},"    content",[160,2324,252],{"class":170},[160,2326,380],{"class":248},[160,2328,242],{"class":170},[160,2330,2331,2334,2336,2338,2340,2342],{"class":162,"line":282},[160,2332,2333],{"class":248},"      type",[160,2335,252],{"class":170},[160,2337,184],{"class":170},[160,2339,395],{"class":187},[160,2341,213],{"class":170},[160,2343,262],{"class":170},[160,2345,2346,2349,2351,2353,2356,2358],{"class":162,"line":293},[160,2347,2348],{"class":248},"      text",[160,2350,252],{"class":170},[160,2352,184],{"class":170},[160,2354,2355],{"class":187},"Result text",[160,2357,213],{"class":170},[160,2359,262],{"class":170},[160,2361,2362,2365,2367],{"class":162,"line":331},[160,2363,2364],{"class":170},"    }",[160,2366,433],{"class":248},[160,2368,262],{"class":170},[160,2370,2371,2374,2376,2378,2380,2382],{"class":162,"line":337},[160,2372,2373],{"class":248},"    structuredContent",[160,2375,252],{"class":170},[160,2377,171],{"class":170},[160,2379,709],{"class":170},[160,2381,712],{"class":170},[160,2383,2384],{"class":216}," // Optional structured output\n",[160,2386,2387],{"class":162,"line":364},[160,2388,2389],{"class":170},"  }\n",[160,2391,2392],{"class":162,"line":372},[160,2393,760],{"class":170},[1559,2395,2397],{"id":2396},"content-types","Content Types",[138,2399,2400],{},"Tools can return different content types:",[636,2402,2403,2471,2548],{},[149,2404,2407],{"className":151,"code":2405,"filename":2406,"language":154,"meta":155,"style":155},"return {\n  content: [{\n    type: 'text',\n    text: 'Hello, world!',\n  }],\n}\n","Text Content",[157,2408,2409,2416,2427,2442,2458,2467],{"__ignoreMap":155},[160,2410,2411,2414],{"class":162,"line":163},[160,2412,2413],{"class":166},"return",[160,2415,290],{"class":170},[160,2417,2418,2421,2423,2425],{"class":162,"line":194},[160,2419,2420],{"class":248},"  content",[160,2422,252],{"class":170},[160,2424,380],{"class":174},[160,2426,242],{"class":170},[160,2428,2429,2432,2434,2436,2438,2440],{"class":162,"line":220},[160,2430,2431],{"class":248},"    type",[160,2433,252],{"class":170},[160,2435,184],{"class":170},[160,2437,395],{"class":187},[160,2439,213],{"class":170},[160,2441,262],{"class":170},[160,2443,2444,2447,2449,2451,2454,2456],{"class":162,"line":227},[160,2445,2446],{"class":248},"    text",[160,2448,252],{"class":170},[160,2450,184],{"class":170},[160,2452,2453],{"class":187},"Hello, world!",[160,2455,213],{"class":170},[160,2457,262],{"class":170},[160,2459,2460,2463,2465],{"class":162,"line":245},[160,2461,2462],{"class":170},"  }",[160,2464,433],{"class":174},[160,2466,262],{"class":170},[160,2468,2469],{"class":162,"line":265},[160,2470,760],{"class":170},[149,2472,2475],{"className":151,"code":2473,"filename":2474,"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,2476,2477,2483,2493,2508,2520,2536,2544],{"__ignoreMap":155},[160,2478,2479,2481],{"class":162,"line":163},[160,2480,2413],{"class":166},[160,2482,290],{"class":170},[160,2484,2485,2487,2489,2491],{"class":162,"line":194},[160,2486,2420],{"class":248},[160,2488,252],{"class":170},[160,2490,380],{"class":174},[160,2492,242],{"class":170},[160,2494,2495,2497,2499,2501,2504,2506],{"class":162,"line":220},[160,2496,2431],{"class":248},[160,2498,252],{"class":170},[160,2500,184],{"class":170},[160,2502,2503],{"class":187},"image",[160,2505,213],{"class":170},[160,2507,262],{"class":170},[160,2509,2510,2513,2515,2518],{"class":162,"line":227},[160,2511,2512],{"class":248},"    data",[160,2514,252],{"class":170},[160,2516,2517],{"class":174}," base64ImageData",[160,2519,262],{"class":170},[160,2521,2522,2525,2527,2529,2532,2534],{"class":162,"line":245},[160,2523,2524],{"class":248},"    mimeType",[160,2526,252],{"class":170},[160,2528,184],{"class":170},[160,2530,2531],{"class":187},"image/png",[160,2533,213],{"class":170},[160,2535,262],{"class":170},[160,2537,2538,2540,2542],{"class":162,"line":265},[160,2539,2462],{"class":170},[160,2541,433],{"class":174},[160,2543,262],{"class":170},[160,2545,2546],{"class":162,"line":282},[160,2547,760],{"class":170},[149,2549,2552],{"className":151,"code":2550,"filename":2551,"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,2553,2554,2560,2570,2585,2594,2610,2625,2641,2646,2654],{"__ignoreMap":155},[160,2555,2556,2558],{"class":162,"line":163},[160,2557,2413],{"class":166},[160,2559,290],{"class":170},[160,2561,2562,2564,2566,2568],{"class":162,"line":194},[160,2563,2420],{"class":248},[160,2565,252],{"class":170},[160,2567,380],{"class":174},[160,2569,242],{"class":170},[160,2571,2572,2574,2576,2578,2581,2583],{"class":162,"line":220},[160,2573,2431],{"class":248},[160,2575,252],{"class":170},[160,2577,184],{"class":170},[160,2579,2580],{"class":187},"resource",[160,2582,213],{"class":170},[160,2584,262],{"class":170},[160,2586,2587,2590,2592],{"class":162,"line":227},[160,2588,2589],{"class":248},"    resource",[160,2591,252],{"class":170},[160,2593,290],{"class":170},[160,2595,2596,2599,2601,2603,2606,2608],{"class":162,"line":245},[160,2597,2598],{"class":248},"      uri",[160,2600,252],{"class":170},[160,2602,184],{"class":170},[160,2604,2605],{"class":187},"file:///path/to/file",[160,2607,213],{"class":170},[160,2609,262],{"class":170},[160,2611,2612,2614,2616,2618,2621,2623],{"class":162,"line":265},[160,2613,2348],{"class":248},[160,2615,252],{"class":170},[160,2617,184],{"class":170},[160,2619,2620],{"class":187},"File content",[160,2622,213],{"class":170},[160,2624,262],{"class":170},[160,2626,2627,2630,2632,2634,2637,2639],{"class":162,"line":282},[160,2628,2629],{"class":248},"      mimeType",[160,2631,252],{"class":170},[160,2633,184],{"class":170},[160,2635,2636],{"class":187},"text/plain",[160,2638,213],{"class":170},[160,2640,262],{"class":170},[160,2642,2643],{"class":162,"line":293},[160,2644,2645],{"class":170},"    },\n",[160,2647,2648,2650,2652],{"class":162,"line":331},[160,2649,2462],{"class":170},[160,2651,433],{"class":174},[160,2653,262],{"class":170},[160,2655,2656],{"class":162,"line":337},[160,2657,760],{"class":170},[1559,2659,2661],{"id":2660},"result-helpers","Result Helpers",[138,2663,2664],{},"To simplify creating tool responses, the module provides auto-imported helper functions:",[636,2666,2667,2798,2956,3137],{},[149,2668,2671],{"className":151,"code":2669,"filename":2670,"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,2672,2673,2698,2702,2707,2719,2734,2758,2792],{"__ignoreMap":155},[160,2674,2675,2677,2679,2681,2683,2686,2688,2690,2692,2694,2696],{"class":162,"line":163},[160,2676,167],{"class":166},[160,2678,171],{"class":170},[160,2680,201],{"class":174},[160,2682,695],{"class":170},[160,2684,2685],{"class":174}," textResult",[160,2687,178],{"class":170},[160,2689,181],{"class":166},[160,2691,184],{"class":170},[160,2693,210],{"class":187},[160,2695,213],{"class":170},[160,2697,217],{"class":216},[160,2699,2700],{"class":162,"line":194},[160,2701,224],{"emptyLinePlaceholder":223},[160,2703,2704],{"class":162,"line":220},[160,2705,2706],{"class":216},"// Simple text response\n",[160,2708,2709,2711,2713,2715,2717],{"class":162,"line":227},[160,2710,230],{"class":166},[160,2712,233],{"class":166},[160,2714,201],{"class":236},[160,2716,239],{"class":174},[160,2718,242],{"class":170},[160,2720,2721,2723,2725,2727,2730,2732],{"class":162,"line":245},[160,2722,268],{"class":248},[160,2724,252],{"class":170},[160,2726,184],{"class":170},[160,2728,2729],{"class":187},"Echo a message",[160,2731,213],{"class":170},[160,2733,262],{"class":170},[160,2735,2736,2738,2740,2742,2744,2746,2748,2750,2752,2755],{"class":162,"line":265},[160,2737,285],{"class":248},[160,2739,252],{"class":170},[160,2741,171],{"class":170},[160,2743,353],{"class":248},[160,2745,252],{"class":170},[160,2747,175],{"class":174},[160,2749,303],{"class":170},[160,2751,306],{"class":236},[160,2753,2754],{"class":174},"() ",[160,2756,2757],{"class":170},"},\n",[160,2759,2760,2762,2764,2766,2768,2770,2772,2774,2776,2778,2780,2782,2784,2786,2788,2790],{"class":162,"line":282},[160,2761,340],{"class":236},[160,2763,252],{"class":170},[160,2765,346],{"class":345},[160,2767,349],{"class":170},[160,2769,353],{"class":352},[160,2771,356],{"class":170},[160,2773,359],{"class":345},[160,2775,2685],{"class":236},[160,2777,239],{"class":174},[160,2779,2165],{"class":170},[160,2781,413],{"class":187},[160,2783,416],{"class":170},[160,2785,419],{"class":174},[160,2787,422],{"class":170},[160,2789,326],{"class":174},[160,2791,262],{"class":170},[160,2793,2794,2796],{"class":162,"line":293},[160,2795,452],{"class":170},[160,2797,455],{"class":174},[149,2799,2802],{"className":151,"code":2800,"filename":2801,"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,2803,2804,2829,2833,2838,2850,2865,2888,2906,2928,2941,2946,2950],{"__ignoreMap":155},[160,2805,2806,2808,2810,2812,2814,2817,2819,2821,2823,2825,2827],{"class":162,"line":163},[160,2807,167],{"class":166},[160,2809,171],{"class":170},[160,2811,201],{"class":174},[160,2813,695],{"class":170},[160,2815,2816],{"class":174}," jsonResult",[160,2818,178],{"class":170},[160,2820,181],{"class":166},[160,2822,184],{"class":170},[160,2824,210],{"class":187},[160,2826,213],{"class":170},[160,2828,217],{"class":216},[160,2830,2831],{"class":162,"line":194},[160,2832,224],{"emptyLinePlaceholder":223},[160,2834,2835],{"class":162,"line":220},[160,2836,2837],{"class":216},"// JSON response (auto-stringified)\n",[160,2839,2840,2842,2844,2846,2848],{"class":162,"line":227},[160,2841,230],{"class":166},[160,2843,233],{"class":166},[160,2845,201],{"class":236},[160,2847,239],{"class":174},[160,2849,242],{"class":170},[160,2851,2852,2854,2856,2858,2861,2863],{"class":162,"line":245},[160,2853,268],{"class":248},[160,2855,252],{"class":170},[160,2857,184],{"class":170},[160,2859,2860],{"class":187},"Get user data",[160,2862,213],{"class":170},[160,2864,262],{"class":170},[160,2866,2867,2869,2871,2873,2876,2878,2880,2882,2884,2886],{"class":162,"line":265},[160,2868,285],{"class":248},[160,2870,252],{"class":170},[160,2872,171],{"class":170},[160,2874,2875],{"class":248}," id",[160,2877,252],{"class":170},[160,2879,175],{"class":174},[160,2881,303],{"class":170},[160,2883,306],{"class":236},[160,2885,2754],{"class":174},[160,2887,2757],{"class":170},[160,2889,2890,2892,2894,2896,2898,2900,2902,2904],{"class":162,"line":282},[160,2891,340],{"class":236},[160,2893,252],{"class":170},[160,2895,346],{"class":345},[160,2897,349],{"class":170},[160,2899,2875],{"class":352},[160,2901,356],{"class":170},[160,2903,359],{"class":345},[160,2905,290],{"class":170},[160,2907,2908,2910,2913,2915,2918,2921,2923,2926],{"class":162,"line":293},[160,2909,1958],{"class":345},[160,2911,2912],{"class":174}," user",[160,2914,1964],{"class":170},[160,2916,2917],{"class":166}," await",[160,2919,2920],{"class":236}," getUser",[160,2922,239],{"class":248},[160,2924,2925],{"class":174},"id",[160,2927,455],{"class":248},[160,2929,2930,2932,2934,2936,2939],{"class":162,"line":331},[160,2931,367],{"class":166},[160,2933,2816],{"class":236},[160,2935,239],{"class":248},[160,2937,2938],{"class":174},"user",[160,2940,455],{"class":248},[160,2942,2943],{"class":162,"line":337},[160,2944,2945],{"class":216},"    // or jsonResult(user, false) for compact JSON\n",[160,2947,2948],{"class":162,"line":364},[160,2949,334],{"class":170},[160,2951,2952,2954],{"class":162,"line":372},[160,2953,452],{"class":170},[160,2955,455],{"class":174},[149,2957,2960],{"className":151,"code":2958,"filename":2959,"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,2961,2962,2991,2995,3000,3012,3027,3049,3067,3087,3115,3127,3131],{"__ignoreMap":155},[160,2963,2964,2966,2968,2970,2972,2974,2976,2979,2981,2983,2985,2987,2989],{"class":162,"line":163},[160,2965,167],{"class":166},[160,2967,171],{"class":170},[160,2969,201],{"class":174},[160,2971,695],{"class":170},[160,2973,2816],{"class":174},[160,2975,695],{"class":170},[160,2977,2978],{"class":174}," errorResult",[160,2980,178],{"class":170},[160,2982,181],{"class":166},[160,2984,184],{"class":170},[160,2986,210],{"class":187},[160,2988,213],{"class":170},[160,2990,217],{"class":216},[160,2992,2993],{"class":162,"line":194},[160,2994,224],{"emptyLinePlaceholder":223},[160,2996,2997],{"class":162,"line":220},[160,2998,2999],{"class":216},"// Error response\n",[160,3001,3002,3004,3006,3008,3010],{"class":162,"line":227},[160,3003,230],{"class":166},[160,3005,233],{"class":166},[160,3007,201],{"class":236},[160,3009,239],{"class":174},[160,3011,242],{"class":170},[160,3013,3014,3016,3018,3020,3023,3025],{"class":162,"line":245},[160,3015,268],{"class":248},[160,3017,252],{"class":170},[160,3019,184],{"class":170},[160,3021,3022],{"class":187},"Find resource",[160,3024,213],{"class":170},[160,3026,262],{"class":170},[160,3028,3029,3031,3033,3035,3037,3039,3041,3043,3045,3047],{"class":162,"line":265},[160,3030,285],{"class":248},[160,3032,252],{"class":170},[160,3034,171],{"class":170},[160,3036,2875],{"class":248},[160,3038,252],{"class":170},[160,3040,175],{"class":174},[160,3042,303],{"class":170},[160,3044,306],{"class":236},[160,3046,2754],{"class":174},[160,3048,2757],{"class":170},[160,3050,3051,3053,3055,3057,3059,3061,3063,3065],{"class":162,"line":282},[160,3052,340],{"class":236},[160,3054,252],{"class":170},[160,3056,346],{"class":345},[160,3058,349],{"class":170},[160,3060,2875],{"class":352},[160,3062,356],{"class":170},[160,3064,359],{"class":345},[160,3066,290],{"class":170},[160,3068,3069,3071,3074,3076,3078,3081,3083,3085],{"class":162,"line":293},[160,3070,1958],{"class":345},[160,3072,3073],{"class":174}," resource",[160,3075,1964],{"class":170},[160,3077,2917],{"class":166},[160,3079,3080],{"class":236}," findResource",[160,3082,239],{"class":248},[160,3084,2925],{"class":174},[160,3086,455],{"class":248},[160,3088,3089,3091,3093,3096,3098,3100,3102,3104,3106,3108,3111,3113],{"class":162,"line":331},[160,3090,2003],{"class":166},[160,3092,726],{"class":248},[160,3094,3095],{"class":170},"!",[160,3097,2580],{"class":174},[160,3099,2018],{"class":248},[160,3101,2413],{"class":166},[160,3103,2978],{"class":236},[160,3105,239],{"class":248},[160,3107,213],{"class":170},[160,3109,3110],{"class":187},"Resource not found",[160,3112,213],{"class":170},[160,3114,455],{"class":248},[160,3116,3117,3119,3121,3123,3125],{"class":162,"line":337},[160,3118,367],{"class":166},[160,3120,2816],{"class":236},[160,3122,239],{"class":248},[160,3124,2580],{"class":174},[160,3126,455],{"class":248},[160,3128,3129],{"class":162,"line":364},[160,3130,334],{"class":170},[160,3132,3133,3135],{"class":162,"line":372},[160,3134,452],{"class":170},[160,3136,455],{"class":174},[149,3138,3141],{"className":151,"code":3139,"filename":3140,"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,3142,3143,3168,3172,3177,3189,3204,3234,3252,3273,3294,3298],{"__ignoreMap":155},[160,3144,3145,3147,3149,3151,3153,3156,3158,3160,3162,3164,3166],{"class":162,"line":163},[160,3146,167],{"class":166},[160,3148,171],{"class":170},[160,3150,201],{"class":174},[160,3152,695],{"class":170},[160,3154,3155],{"class":174}," imageResult",[160,3157,178],{"class":170},[160,3159,181],{"class":166},[160,3161,184],{"class":170},[160,3163,210],{"class":187},[160,3165,213],{"class":170},[160,3167,217],{"class":216},[160,3169,3170],{"class":162,"line":194},[160,3171,224],{"emptyLinePlaceholder":223},[160,3173,3174],{"class":162,"line":220},[160,3175,3176],{"class":216},"// Image response (base64)\n",[160,3178,3179,3181,3183,3185,3187],{"class":162,"line":227},[160,3180,230],{"class":166},[160,3182,233],{"class":166},[160,3184,201],{"class":236},[160,3186,239],{"class":174},[160,3188,242],{"class":170},[160,3190,3191,3193,3195,3197,3200,3202],{"class":162,"line":245},[160,3192,268],{"class":248},[160,3194,252],{"class":170},[160,3196,184],{"class":170},[160,3198,3199],{"class":187},"Generate chart",[160,3201,213],{"class":170},[160,3203,262],{"class":170},[160,3205,3206,3208,3210,3212,3215,3217,3219,3221,3223,3225,3227,3229,3232],{"class":162,"line":265},[160,3207,285],{"class":248},[160,3209,252],{"class":170},[160,3211,171],{"class":170},[160,3213,3214],{"class":248}," data",[160,3216,252],{"class":170},[160,3218,175],{"class":174},[160,3220,303],{"class":170},[160,3222,1462],{"class":236},[160,3224,1465],{"class":174},[160,3226,303],{"class":170},[160,3228,1275],{"class":236},[160,3230,3231],{"class":174},"()) ",[160,3233,2757],{"class":170},[160,3235,3236,3238,3240,3242,3244,3246,3248,3250],{"class":162,"line":282},[160,3237,340],{"class":236},[160,3239,252],{"class":170},[160,3241,346],{"class":345},[160,3243,349],{"class":170},[160,3245,3214],{"class":352},[160,3247,356],{"class":170},[160,3249,359],{"class":345},[160,3251,290],{"class":170},[160,3253,3254,3256,3259,3261,3263,3266,3268,3271],{"class":162,"line":293},[160,3255,1958],{"class":345},[160,3257,3258],{"class":174}," base64",[160,3260,1964],{"class":170},[160,3262,2917],{"class":166},[160,3264,3265],{"class":236}," generateChart",[160,3267,239],{"class":248},[160,3269,3270],{"class":174},"data",[160,3272,455],{"class":248},[160,3274,3275,3277,3279,3281,3284,3286,3288,3290,3292],{"class":162,"line":331},[160,3276,367],{"class":166},[160,3278,3155],{"class":236},[160,3280,239],{"class":248},[160,3282,3283],{"class":174},"base64",[160,3285,695],{"class":170},[160,3287,184],{"class":170},[160,3289,2531],{"class":187},[160,3291,213],{"class":170},[160,3293,455],{"class":248},[160,3295,3296],{"class":162,"line":337},[160,3297,334],{"class":170},[160,3299,3300,3302],{"class":162,"line":364},[160,3301,452],{"class":170},[160,3303,455],{"class":174},[1567,3305,3306,3318],{},[1570,3307,3308],{},[1573,3309,3310,3313,3315],{},[1576,3311,3312],{},"Helper",[1576,3314,1584],{},[1576,3316,3317],{},"Parameters",[1586,3319,3320,3335,3358,3376],{},[1573,3321,3322,3327,3330],{},[1591,3323,3324],{},[157,3325,3326],{},"textResult(text)",[1591,3328,3329],{},"Simple text response",[1591,3331,3332],{},[157,3333,3334],{},"text: string",[1573,3336,3337,3342,3345],{},[1591,3338,3339],{},[157,3340,3341],{},"jsonResult(data, pretty?)",[1591,3343,3344],{},"JSON response (auto-stringify)",[1591,3346,3347,3350,3351,3354,3355,326],{},[157,3348,3349],{},"data: unknown",", ",[157,3352,3353],{},"pretty?: boolean"," (default: ",[157,3356,3357],{},"true",[1573,3359,3360,3365,3371],{},[1591,3361,3362],{},[157,3363,3364],{},"errorResult(message)",[1591,3366,3367,3368],{},"Error response with ",[157,3369,3370],{},"isError: true",[1591,3372,3373],{},[157,3374,3375],{},"message: string",[1573,3377,3378,3383,3386],{},[1591,3379,3380],{},[157,3381,3382],{},"imageResult(data, mimeType)",[1591,3384,3385],{},"Base64 image response",[1591,3387,3388,3350,3391],{},[157,3389,3390],{},"data: string",[157,3392,3393],{},"mimeType: string",[133,3395,3397],{"id":3396},"tool-annotations","Tool Annotations",[138,3399,3400],{},"Annotations are behavioral hints that tell MCP clients how a tool behaves. Clients can use them to decide when to prompt users for confirmation (human-in-the-loop).",[149,3402,3405],{"className":151,"code":3403,"filename":3404,"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    readOnlyHint: false,    // Tool modifies state\n    destructiveHint: true,  // Tool performs destructive updates\n    idempotentHint: true,   // Deleting the same user twice has no additional effect\n    openWorldHint: false,   // Tool does not interact with external systems\n  },\n  handler: async ({ userId }) => {\n    // ...\n  },\n})\n","server/mcp/tools/delete-user.ts",[157,3406,3407,3425,3445,3449,3461,3476,3491,3499,3516,3520,3528,3544,3559,3573,3587,3591,3610,3614,3618],{"__ignoreMap":155},[160,3408,3409,3411,3413,3415,3417,3419,3421,3423],{"class":162,"line":163},[160,3410,167],{"class":166},[160,3412,171],{"class":170},[160,3414,175],{"class":174},[160,3416,178],{"class":170},[160,3418,181],{"class":166},[160,3420,184],{"class":170},[160,3422,188],{"class":187},[160,3424,191],{"class":170},[160,3426,3427,3429,3431,3433,3435,3437,3439,3441,3443],{"class":162,"line":194},[160,3428,167],{"class":166},[160,3430,171],{"class":170},[160,3432,201],{"class":174},[160,3434,178],{"class":170},[160,3436,181],{"class":166},[160,3438,184],{"class":170},[160,3440,210],{"class":187},[160,3442,213],{"class":170},[160,3444,217],{"class":216},[160,3446,3447],{"class":162,"line":220},[160,3448,224],{"emptyLinePlaceholder":223},[160,3450,3451,3453,3455,3457,3459],{"class":162,"line":227},[160,3452,230],{"class":166},[160,3454,233],{"class":166},[160,3456,201],{"class":236},[160,3458,239],{"class":174},[160,3460,242],{"class":170},[160,3462,3463,3465,3467,3469,3472,3474],{"class":162,"line":245},[160,3464,249],{"class":248},[160,3466,252],{"class":170},[160,3468,184],{"class":170},[160,3470,3471],{"class":187},"delete-user",[160,3473,213],{"class":170},[160,3475,262],{"class":170},[160,3477,3478,3480,3482,3484,3487,3489],{"class":162,"line":265},[160,3479,268],{"class":248},[160,3481,252],{"class":170},[160,3483,184],{"class":170},[160,3485,3486],{"class":187},"Delete a user account",[160,3488,213],{"class":170},[160,3490,262],{"class":170},[160,3492,3493,3495,3497],{"class":162,"line":282},[160,3494,285],{"class":248},[160,3496,252],{"class":170},[160,3498,290],{"class":170},[160,3500,3501,3504,3506,3508,3510,3512,3514],{"class":162,"line":293},[160,3502,3503],{"class":248},"    userId",[160,3505,252],{"class":170},[160,3507,175],{"class":174},[160,3509,303],{"class":170},[160,3511,306],{"class":236},[160,3513,309],{"class":174},[160,3515,262],{"class":170},[160,3517,3518],{"class":162,"line":331},[160,3519,334],{"class":170},[160,3521,3522,3524,3526],{"class":162,"line":337},[160,3523,902],{"class":248},[160,3525,252],{"class":170},[160,3527,290],{"class":170},[160,3529,3530,3533,3535,3539,3541],{"class":162,"line":364},[160,3531,3532],{"class":248},"    readOnlyHint",[160,3534,252],{"class":170},[160,3536,3538],{"class":3537},"sfNiH"," false",[160,3540,695],{"class":170},[160,3542,3543],{"class":216},"    // Tool modifies state\n",[160,3545,3546,3549,3551,3554,3556],{"class":162,"line":372},[160,3547,3548],{"class":248},"    destructiveHint",[160,3550,252],{"class":170},[160,3552,3553],{"class":3537}," true",[160,3555,695],{"class":170},[160,3557,3558],{"class":216},"  // Tool performs destructive updates\n",[160,3560,3561,3564,3566,3568,3570],{"class":162,"line":385},[160,3562,3563],{"class":248},"    idempotentHint",[160,3565,252],{"class":170},[160,3567,3553],{"class":3537},[160,3569,695],{"class":170},[160,3571,3572],{"class":216},"   // Deleting the same user twice has no additional effect\n",[160,3574,3575,3578,3580,3582,3584],{"class":162,"line":402},[160,3576,3577],{"class":248},"    openWorldHint",[160,3579,252],{"class":170},[160,3581,3538],{"class":3537},[160,3583,695],{"class":170},[160,3585,3586],{"class":216},"   // Tool does not interact with external systems\n",[160,3588,3589],{"class":162,"line":427},[160,3590,334],{"class":170},[160,3592,3593,3595,3597,3599,3601,3604,3606,3608],{"class":162,"line":438},[160,3594,340],{"class":236},[160,3596,252],{"class":170},[160,3598,346],{"class":345},[160,3600,349],{"class":170},[160,3602,3603],{"class":352}," userId",[160,3605,356],{"class":170},[160,3607,359],{"class":345},[160,3609,290],{"class":170},[160,3611,3612],{"class":162,"line":444},[160,3613,580],{"class":216},[160,3615,3616],{"class":162,"line":449},[160,3617,334],{"class":170},[160,3619,3620,3622],{"class":162,"line":1439},[160,3621,452],{"class":170},[160,3623,455],{"class":174},[1559,3625,3627],{"id":3626},"annotation-reference","Annotation Reference",[1567,3629,3630,3645],{},[1570,3631,3632],{},[1573,3633,3634,3637,3640,3643],{},[1576,3635,3636],{},"Annotation",[1576,3638,3639],{},"Type",[1576,3641,3642],{},"Default",[1576,3644,1584],{},[1586,3646,3647,3670,3695,3719],{},[1573,3648,3649,3654,3659,3664],{},[1591,3650,3651],{},[157,3652,3653],{},"readOnlyHint",[1591,3655,3656],{},[157,3657,3658],{},"boolean",[1591,3660,3661],{},[157,3662,3663],{},"false",[1591,3665,3666,3667,3669],{},"If ",[157,3668,3357],{},", the tool only reads data without modifying any state (safe to retry).",[1573,3671,3672,3677,3681,3685],{},[1591,3673,3674],{},[157,3675,3676],{},"destructiveHint",[1591,3678,3679],{},[157,3680,3658],{},[1591,3682,3683],{},[157,3684,3357],{},[1591,3686,3666,3687,3689,3690,3692,3693,303],{},[157,3688,3357],{},", the tool may perform destructive operations like deleting data. Only meaningful when ",[157,3691,3653],{}," is ",[157,3694,3663],{},[1573,3696,3697,3702,3706,3710],{},[1591,3698,3699],{},[157,3700,3701],{},"idempotentHint",[1591,3703,3704],{},[157,3705,3658],{},[1591,3707,3708],{},[157,3709,3663],{},[1591,3711,3666,3712,3714,3715,3692,3717,303],{},[157,3713,3357],{},", calling the tool multiple times with the same arguments has no additional effect beyond the first call. Only meaningful when ",[157,3716,3653],{},[157,3718,3663],{},[1573,3720,3721,3726,3730,3734],{},[1591,3722,3723],{},[157,3724,3725],{},"openWorldHint",[1591,3727,3728],{},[157,3729,3658],{},[1591,3731,3732],{},[157,3733,3357],{},[1591,3735,3666,3736,3738,3739,3741],{},[157,3737,3357],{},", the tool may interact with the outside world (external APIs, internet). If ",[157,3740,3663],{},", it only operates on local/internal data.",[138,3743,3744],{},"Here are common annotation patterns for typical tools:",[636,3746,3747,3804,3868,3931],{},[149,3748,3751],{"className":151,"code":3749,"filename":3750,"language":154,"meta":155,"style":155},"// Search, list, lookup, calculate...\nannotations: {\n  readOnlyHint: true,\n  destructiveHint: false,\n  openWorldHint: false,\n}\n","Read-only tool",[157,3752,3753,3758,3767,3778,3789,3800],{"__ignoreMap":155},[160,3754,3755],{"class":162,"line":163},[160,3756,3757],{"class":216},"// Search, list, lookup, calculate...\n",[160,3759,3760,3763,3765],{"class":162,"line":194},[160,3761,3762],{"class":2276},"annotations",[160,3764,252],{"class":170},[160,3766,290],{"class":170},[160,3768,3769,3772,3774,3776],{"class":162,"line":220},[160,3770,3771],{"class":2276},"  readOnlyHint",[160,3773,252],{"class":170},[160,3775,3553],{"class":3537},[160,3777,262],{"class":170},[160,3779,3780,3783,3785,3787],{"class":162,"line":227},[160,3781,3782],{"class":2276},"  destructiveHint",[160,3784,252],{"class":170},[160,3786,3538],{"class":3537},[160,3788,262],{"class":170},[160,3790,3791,3794,3796,3798],{"class":162,"line":245},[160,3792,3793],{"class":2276},"  openWorldHint",[160,3795,252],{"class":170},[160,3797,3538],{"class":3537},[160,3799,262],{"class":170},[160,3801,3802],{"class":162,"line":265},[160,3803,760],{"class":170},[149,3805,3808],{"className":151,"code":3806,"filename":3807,"language":154,"meta":155,"style":155},"// Creates a new record each time\nannotations: {\n  readOnlyHint: false,\n  destructiveHint: false,\n  idempotentHint: false,\n  openWorldHint: false,\n}\n","Create tool",[157,3809,3810,3815,3823,3833,3843,3854,3864],{"__ignoreMap":155},[160,3811,3812],{"class":162,"line":163},[160,3813,3814],{"class":216},"// Creates a new record each time\n",[160,3816,3817,3819,3821],{"class":162,"line":194},[160,3818,3762],{"class":2276},[160,3820,252],{"class":170},[160,3822,290],{"class":170},[160,3824,3825,3827,3829,3831],{"class":162,"line":220},[160,3826,3771],{"class":2276},[160,3828,252],{"class":170},[160,3830,3538],{"class":3537},[160,3832,262],{"class":170},[160,3834,3835,3837,3839,3841],{"class":162,"line":227},[160,3836,3782],{"class":2276},[160,3838,252],{"class":170},[160,3840,3538],{"class":3537},[160,3842,262],{"class":170},[160,3844,3845,3848,3850,3852],{"class":162,"line":245},[160,3846,3847],{"class":2276},"  idempotentHint",[160,3849,252],{"class":170},[160,3851,3538],{"class":3537},[160,3853,262],{"class":170},[160,3855,3856,3858,3860,3862],{"class":162,"line":265},[160,3857,3793],{"class":2276},[160,3859,252],{"class":170},[160,3861,3538],{"class":3537},[160,3863,262],{"class":170},[160,3865,3866],{"class":162,"line":282},[160,3867,760],{"class":170},[149,3869,3872],{"className":151,"code":3870,"filename":3871,"language":154,"meta":155,"style":155},"// Updates are idempotent (same input → same result)\nannotations: {\n  readOnlyHint: false,\n  destructiveHint: false,\n  idempotentHint: true,\n  openWorldHint: false,\n}\n","Update tool",[157,3873,3874,3879,3887,3897,3907,3917,3927],{"__ignoreMap":155},[160,3875,3876],{"class":162,"line":163},[160,3877,3878],{"class":216},"// Updates are idempotent (same input → same result)\n",[160,3880,3881,3883,3885],{"class":162,"line":194},[160,3882,3762],{"class":2276},[160,3884,252],{"class":170},[160,3886,290],{"class":170},[160,3888,3889,3891,3893,3895],{"class":162,"line":220},[160,3890,3771],{"class":2276},[160,3892,252],{"class":170},[160,3894,3538],{"class":3537},[160,3896,262],{"class":170},[160,3898,3899,3901,3903,3905],{"class":162,"line":227},[160,3900,3782],{"class":2276},[160,3902,252],{"class":170},[160,3904,3538],{"class":3537},[160,3906,262],{"class":170},[160,3908,3909,3911,3913,3915],{"class":162,"line":245},[160,3910,3847],{"class":2276},[160,3912,252],{"class":170},[160,3914,3553],{"class":3537},[160,3916,262],{"class":170},[160,3918,3919,3921,3923,3925],{"class":162,"line":265},[160,3920,3793],{"class":2276},[160,3922,252],{"class":170},[160,3924,3538],{"class":3537},[160,3926,262],{"class":170},[160,3928,3929],{"class":162,"line":282},[160,3930,760],{"class":170},[149,3932,3935],{"className":151,"code":3933,"filename":3934,"language":154,"meta":155,"style":155},"// Destructive and idempotent (deleting twice is the same)\nannotations: {\n  readOnlyHint: false,\n  destructiveHint: true,\n  idempotentHint: true,\n  openWorldHint: false,\n}\n","Delete tool",[157,3936,3937,3942,3950,3960,3970,3980,3990],{"__ignoreMap":155},[160,3938,3939],{"class":162,"line":163},[160,3940,3941],{"class":216},"// Destructive and idempotent (deleting twice is the same)\n",[160,3943,3944,3946,3948],{"class":162,"line":194},[160,3945,3762],{"class":2276},[160,3947,252],{"class":170},[160,3949,290],{"class":170},[160,3951,3952,3954,3956,3958],{"class":162,"line":220},[160,3953,3771],{"class":2276},[160,3955,252],{"class":170},[160,3957,3538],{"class":3537},[160,3959,262],{"class":170},[160,3961,3962,3964,3966,3968],{"class":162,"line":227},[160,3963,3782],{"class":2276},[160,3965,252],{"class":170},[160,3967,3553],{"class":3537},[160,3969,262],{"class":170},[160,3971,3972,3974,3976,3978],{"class":162,"line":245},[160,3973,3847],{"class":2276},[160,3975,252],{"class":170},[160,3977,3553],{"class":3537},[160,3979,262],{"class":170},[160,3981,3982,3984,3986,3988],{"class":162,"line":265},[160,3983,3793],{"class":2276},[160,3985,252],{"class":170},[160,3987,3538],{"class":3537},[160,3989,262],{"class":170},[160,3991,3992],{"class":162,"line":282},[160,3993,760],{"class":170},[3995,3996,3999,4000,4004],"callout",{"color":3997,"icon":3998},"info","i-lucide-info","All annotations are ",[4001,4002,4003],"strong",{},"hints"," — they are not guaranteed to be respected by every MCP client. Clients should never make security-critical decisions based on annotations from untrusted servers.",[133,4006,4008],{"id":4007},"input-examples","Input Examples",[138,4010,4011,4012,4015,4016,4018,4019,303],{},"You can provide concrete usage examples for your tools using ",[157,4013,4014],{},"inputExamples",". These examples are type-safe (matching your ",[157,4017,975],{},") and are transmitted to clients via ",[157,4020,4021],{},"_meta.inputExamples",[138,4023,4024],{},"Input examples help AI models understand how to correctly fill in tool parameters, especially for tools with optional fields or complex inputs.",[149,4026,4029],{"className":151,"code":4027,"filename":4028,"language":154,"meta":155,"style":155},"import { z } from 'zod'\nimport { defineMcpTool } from '@nuxtjs/mcp-toolkit/server' // optional\n\nexport default defineMcpTool({\n  description: 'Create a new todo',\n  inputSchema: {\n    title: z.string().describe('The title of the todo'),\n    content: z.string().optional().describe('Optional description'),\n  },\n  inputExamples: [\n    { title: 'Buy groceries', content: 'Milk, eggs, bread' },\n    { title: 'Fix login bug' },  // content is optional\n  ],\n  handler: async ({ title, content }) => {\n    // ...\n  },\n})\n","server/mcp/tools/create-todo.ts",[157,4030,4031,4049,4069,4073,4085,4100,4108,4140,4177,4181,4190,4222,4242,4249,4271,4275,4279],{"__ignoreMap":155},[160,4032,4033,4035,4037,4039,4041,4043,4045,4047],{"class":162,"line":163},[160,4034,167],{"class":166},[160,4036,171],{"class":170},[160,4038,175],{"class":174},[160,4040,178],{"class":170},[160,4042,181],{"class":166},[160,4044,184],{"class":170},[160,4046,188],{"class":187},[160,4048,191],{"class":170},[160,4050,4051,4053,4055,4057,4059,4061,4063,4065,4067],{"class":162,"line":194},[160,4052,167],{"class":166},[160,4054,171],{"class":170},[160,4056,201],{"class":174},[160,4058,178],{"class":170},[160,4060,181],{"class":166},[160,4062,184],{"class":170},[160,4064,210],{"class":187},[160,4066,213],{"class":170},[160,4068,217],{"class":216},[160,4070,4071],{"class":162,"line":220},[160,4072,224],{"emptyLinePlaceholder":223},[160,4074,4075,4077,4079,4081,4083],{"class":162,"line":227},[160,4076,230],{"class":166},[160,4078,233],{"class":166},[160,4080,201],{"class":236},[160,4082,239],{"class":174},[160,4084,242],{"class":170},[160,4086,4087,4089,4091,4093,4096,4098],{"class":162,"line":245},[160,4088,268],{"class":248},[160,4090,252],{"class":170},[160,4092,184],{"class":170},[160,4094,4095],{"class":187},"Create a new todo",[160,4097,213],{"class":170},[160,4099,262],{"class":170},[160,4101,4102,4104,4106],{"class":162,"line":265},[160,4103,285],{"class":248},[160,4105,252],{"class":170},[160,4107,290],{"class":170},[160,4109,4110,4113,4115,4117,4119,4121,4123,4125,4127,4129,4131,4134,4136,4138],{"class":162,"line":282},[160,4111,4112],{"class":248},"    title",[160,4114,252],{"class":170},[160,4116,175],{"class":174},[160,4118,303],{"class":170},[160,4120,306],{"class":236},[160,4122,309],{"class":174},[160,4124,303],{"class":170},[160,4126,314],{"class":236},[160,4128,239],{"class":174},[160,4130,213],{"class":170},[160,4132,4133],{"class":187},"The title of the todo",[160,4135,213],{"class":170},[160,4137,326],{"class":174},[160,4139,262],{"class":170},[160,4141,4142,4144,4146,4148,4150,4152,4154,4156,4158,4160,4162,4164,4166,4168,4171,4173,4175],{"class":162,"line":293},[160,4143,2322],{"class":248},[160,4145,252],{"class":170},[160,4147,175],{"class":174},[160,4149,303],{"class":170},[160,4151,306],{"class":236},[160,4153,309],{"class":174},[160,4155,303],{"class":170},[160,4157,1355],{"class":236},[160,4159,309],{"class":174},[160,4161,303],{"class":170},[160,4163,314],{"class":236},[160,4165,239],{"class":174},[160,4167,213],{"class":170},[160,4169,4170],{"class":187},"Optional description",[160,4172,213],{"class":170},[160,4174,326],{"class":174},[160,4176,262],{"class":170},[160,4178,4179],{"class":162,"line":331},[160,4180,334],{"class":170},[160,4182,4183,4185,4187],{"class":162,"line":337},[160,4184,918],{"class":248},[160,4186,252],{"class":170},[160,4188,4189],{"class":174}," [\n",[160,4191,4192,4195,4198,4200,4202,4205,4207,4209,4211,4213,4215,4218,4220],{"class":162,"line":364},[160,4193,4194],{"class":170},"    {",[160,4196,4197],{"class":248}," title",[160,4199,252],{"class":170},[160,4201,184],{"class":170},[160,4203,4204],{"class":187},"Buy groceries",[160,4206,213],{"class":170},[160,4208,695],{"class":170},[160,4210,747],{"class":248},[160,4212,252],{"class":170},[160,4214,184],{"class":170},[160,4216,4217],{"class":187},"Milk, eggs, bread",[160,4219,213],{"class":170},[160,4221,959],{"class":170},[160,4223,4224,4226,4228,4230,4232,4235,4237,4239],{"class":162,"line":372},[160,4225,4194],{"class":170},[160,4227,4197],{"class":248},[160,4229,252],{"class":170},[160,4231,184],{"class":170},[160,4233,4234],{"class":187},"Fix login bug",[160,4236,213],{"class":170},[160,4238,712],{"class":170},[160,4240,4241],{"class":216},"  // content is optional\n",[160,4243,4244,4247],{"class":162,"line":385},[160,4245,4246],{"class":174},"  ]",[160,4248,262],{"class":170},[160,4250,4251,4253,4255,4257,4259,4261,4263,4265,4267,4269],{"class":162,"line":402},[160,4252,340],{"class":236},[160,4254,252],{"class":170},[160,4256,346],{"class":345},[160,4258,349],{"class":170},[160,4260,4197],{"class":352},[160,4262,695],{"class":170},[160,4264,747],{"class":352},[160,4266,356],{"class":170},[160,4268,359],{"class":345},[160,4270,290],{"class":170},[160,4272,4273],{"class":162,"line":427},[160,4274,580],{"class":216},[160,4276,4277],{"class":162,"line":438},[160,4278,334],{"class":170},[160,4280,4281,4283],{"class":162,"line":444},[160,4282,452],{"class":170},[160,4284,455],{"class":174},[3995,4286,4288,4290],{"color":4287,"icon":117},"warning",[157,4289,4014],{}," are particularly useful for tools with optional parameters, enums, or complex nested inputs where showing concrete values helps models pick the right format.",[133,4292,4294],{"id":4293},"error-handling","Error Handling",[138,4296,4297],{},"Handle errors gracefully in your handlers:",[149,4299,4302],{"className":151,"code":4300,"filename":4301,"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,4303,4304,4322,4342,4346,4358,4373,4381,4397,4413,4417,4439,4458,4465,4476,4491,4507,4516,4527,4532,4536,4540,4556,4562,4572,4586,4606,4614,4618,4622],{"__ignoreMap":155},[160,4305,4306,4308,4310,4312,4314,4316,4318,4320],{"class":162,"line":163},[160,4307,167],{"class":166},[160,4309,171],{"class":170},[160,4311,175],{"class":174},[160,4313,178],{"class":170},[160,4315,181],{"class":166},[160,4317,184],{"class":170},[160,4319,188],{"class":187},[160,4321,191],{"class":170},[160,4323,4324,4326,4328,4330,4332,4334,4336,4338,4340],{"class":162,"line":194},[160,4325,167],{"class":166},[160,4327,171],{"class":170},[160,4329,201],{"class":174},[160,4331,178],{"class":170},[160,4333,181],{"class":166},[160,4335,184],{"class":170},[160,4337,210],{"class":187},[160,4339,213],{"class":170},[160,4341,217],{"class":216},[160,4343,4344],{"class":162,"line":220},[160,4345,224],{"emptyLinePlaceholder":223},[160,4347,4348,4350,4352,4354,4356],{"class":162,"line":227},[160,4349,230],{"class":166},[160,4351,233],{"class":166},[160,4353,201],{"class":236},[160,4355,239],{"class":174},[160,4357,242],{"class":170},[160,4359,4360,4362,4364,4366,4369,4371],{"class":162,"line":245},[160,4361,249],{"class":248},[160,4363,252],{"class":170},[160,4365,184],{"class":170},[160,4367,4368],{"class":187},"safe-divide",[160,4370,213],{"class":170},[160,4372,262],{"class":170},[160,4374,4375,4377,4379],{"class":162,"line":265},[160,4376,285],{"class":248},[160,4378,252],{"class":170},[160,4380,290],{"class":170},[160,4382,4383,4385,4387,4389,4391,4393,4395],{"class":162,"line":282},[160,4384,1266],{"class":248},[160,4386,252],{"class":170},[160,4388,175],{"class":174},[160,4390,303],{"class":170},[160,4392,1275],{"class":236},[160,4394,309],{"class":174},[160,4396,262],{"class":170},[160,4398,4399,4401,4403,4405,4407,4409,4411],{"class":162,"line":293},[160,4400,1299],{"class":248},[160,4402,252],{"class":170},[160,4404,175],{"class":174},[160,4406,303],{"class":170},[160,4408,1275],{"class":236},[160,4410,309],{"class":174},[160,4412,262],{"class":170},[160,4414,4415],{"class":162,"line":331},[160,4416,334],{"class":170},[160,4418,4419,4421,4423,4425,4427,4429,4431,4433,4435,4437],{"class":162,"line":337},[160,4420,340],{"class":236},[160,4422,252],{"class":170},[160,4424,346],{"class":345},[160,4426,349],{"class":170},[160,4428,1513],{"class":352},[160,4430,695],{"class":170},[160,4432,1518],{"class":352},[160,4434,356],{"class":170},[160,4436,359],{"class":345},[160,4438,290],{"class":170},[160,4440,4441,4443,4445,4448,4451,4454,4456],{"class":162,"line":364},[160,4442,2003],{"class":166},[160,4444,726],{"class":248},[160,4446,4447],{"class":174},"b",[160,4449,4450],{"class":170}," ===",[160,4452,4453],{"class":2014}," 0",[160,4455,2018],{"class":248},[160,4457,242],{"class":170},[160,4459,4460,4463],{"class":162,"line":372},[160,4461,4462],{"class":166},"      return",[160,4464,290],{"class":170},[160,4466,4467,4470,4472,4474],{"class":162,"line":385},[160,4468,4469],{"class":248},"        content",[160,4471,252],{"class":170},[160,4473,380],{"class":248},[160,4475,242],{"class":170},[160,4477,4478,4481,4483,4485,4487,4489],{"class":162,"line":402},[160,4479,4480],{"class":248},"          type",[160,4482,252],{"class":170},[160,4484,184],{"class":170},[160,4486,395],{"class":187},[160,4488,213],{"class":170},[160,4490,262],{"class":170},[160,4492,4493,4496,4498,4500,4503,4505],{"class":162,"line":427},[160,4494,4495],{"class":248},"          text",[160,4497,252],{"class":170},[160,4499,184],{"class":170},[160,4501,4502],{"class":187},"Error: Division by zero",[160,4504,213],{"class":170},[160,4506,262],{"class":170},[160,4508,4509,4512,4514],{"class":162,"line":438},[160,4510,4511],{"class":170},"        }",[160,4513,433],{"class":248},[160,4515,262],{"class":170},[160,4517,4518,4521,4523,4525],{"class":162,"line":444},[160,4519,4520],{"class":248},"        isError",[160,4522,252],{"class":170},[160,4524,3553],{"class":3537},[160,4526,262],{"class":170},[160,4528,4529],{"class":162,"line":449},[160,4530,4531],{"class":170},"      }\n",[160,4533,4534],{"class":162,"line":1439},[160,4535,441],{"class":170},[160,4537,4538],{"class":162,"line":1444},[160,4539,224],{"emptyLinePlaceholder":223},[160,4541,4542,4544,4547,4549,4551,4553],{"class":162,"line":1450},[160,4543,1958],{"class":345},[160,4545,4546],{"class":174}," result",[160,4548,1964],{"class":170},[160,4550,1513],{"class":174},[160,4552,1969],{"class":170},[160,4554,4555],{"class":174}," b\n",[160,4557,4558,4560],{"class":162,"line":1492},[160,4559,367],{"class":166},[160,4561,290],{"class":170},[160,4563,4564,4566,4568,4570],{"class":162,"line":1497},[160,4565,375],{"class":248},[160,4567,252],{"class":170},[160,4569,380],{"class":248},[160,4571,242],{"class":170},[160,4573,4574,4576,4578,4580,4582,4584],{"class":162,"line":1542},[160,4575,388],{"class":248},[160,4577,252],{"class":170},[160,4579,184],{"class":170},[160,4581,395],{"class":187},[160,4583,213],{"class":170},[160,4585,262],{"class":170},[160,4587,4588,4590,4592,4594,4597,4599,4602,4604],{"class":162,"line":1548},[160,4589,405],{"class":248},[160,4591,252],{"class":170},[160,4593,410],{"class":170},[160,4595,4596],{"class":187},"Result: ",[160,4598,416],{"class":170},[160,4600,4601],{"class":174},"result",[160,4603,422],{"class":170},[160,4605,262],{"class":170},[160,4607,4608,4610,4612],{"class":162,"line":1553},[160,4609,430],{"class":170},[160,4611,433],{"class":248},[160,4613,262],{"class":170},[160,4615,4616],{"class":162,"line":2178},[160,4617,441],{"class":170},[160,4619,4620],{"class":162,"line":2188},[160,4621,334],{"class":170},[160,4623,4624,4626],{"class":162,"line":2222},[160,4625,452],{"class":170},[160,4627,455],{"class":174},[133,4629,4631],{"id":4630},"response-caching","Response Caching",[138,4633,4634,4635,4638],{},"You can cache tool responses using Nitro's caching system. The ",[157,4636,4637],{},"cache"," option accepts three formats:",[1559,4640,4642],{"id":4641},"simple-duration","Simple Duration",[138,4644,4645,4646,4655],{},"Use a string duration (parsed by ",[4647,4648,4652],"a",{"href":4649,"rel":4650},"https://www.npmjs.com/package/ms",[4651],"nofollow",[157,4653,4654],{},"ms",") or a number in milliseconds:",[149,4657,4660],{"className":151,"code":4658,"filename":4659,"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,4661,4662,4680,4700,4704,4716,4731,4739,4756,4760,4779,4797,4816,4822,4870,4874,4878],{"__ignoreMap":155},[160,4663,4664,4666,4668,4670,4672,4674,4676,4678],{"class":162,"line":163},[160,4665,167],{"class":166},[160,4667,171],{"class":170},[160,4669,175],{"class":174},[160,4671,178],{"class":170},[160,4673,181],{"class":166},[160,4675,184],{"class":170},[160,4677,188],{"class":187},[160,4679,191],{"class":170},[160,4681,4682,4684,4686,4688,4690,4692,4694,4696,4698],{"class":162,"line":194},[160,4683,167],{"class":166},[160,4685,171],{"class":170},[160,4687,201],{"class":174},[160,4689,178],{"class":170},[160,4691,181],{"class":166},[160,4693,184],{"class":170},[160,4695,210],{"class":187},[160,4697,213],{"class":170},[160,4699,217],{"class":216},[160,4701,4702],{"class":162,"line":220},[160,4703,224],{"emptyLinePlaceholder":223},[160,4705,4706,4708,4710,4712,4714],{"class":162,"line":227},[160,4707,230],{"class":166},[160,4709,233],{"class":166},[160,4711,201],{"class":236},[160,4713,239],{"class":174},[160,4715,242],{"class":170},[160,4717,4718,4720,4722,4724,4727,4729],{"class":162,"line":245},[160,4719,268],{"class":248},[160,4721,252],{"class":170},[160,4723,184],{"class":170},[160,4725,4726],{"class":187},"Fetch data with 1 hour cache",[160,4728,213],{"class":170},[160,4730,262],{"class":170},[160,4732,4733,4735,4737],{"class":162,"line":265},[160,4734,285],{"class":248},[160,4736,252],{"class":170},[160,4738,290],{"class":170},[160,4740,4741,4744,4746,4748,4750,4752,4754],{"class":162,"line":282},[160,4742,4743],{"class":248},"    id",[160,4745,252],{"class":170},[160,4747,175],{"class":174},[160,4749,303],{"class":170},[160,4751,306],{"class":236},[160,4753,309],{"class":174},[160,4755,262],{"class":170},[160,4757,4758],{"class":162,"line":293},[160,4759,334],{"class":170},[160,4761,4762,4765,4767,4769,4772,4774,4776],{"class":162,"line":331},[160,4763,4764],{"class":248},"  cache",[160,4766,252],{"class":170},[160,4768,184],{"class":170},[160,4770,4771],{"class":187},"1h",[160,4773,213],{"class":170},[160,4775,695],{"class":170},[160,4777,4778],{"class":216}," // or '30m', '2 days', 3600000, etc.\n",[160,4780,4781,4783,4785,4787,4789,4791,4793,4795],{"class":162,"line":337},[160,4782,340],{"class":236},[160,4784,252],{"class":170},[160,4786,346],{"class":345},[160,4788,349],{"class":170},[160,4790,2875],{"class":352},[160,4792,356],{"class":170},[160,4794,359],{"class":345},[160,4796,290],{"class":170},[160,4798,4799,4801,4803,4805,4807,4810,4812,4814],{"class":162,"line":364},[160,4800,1958],{"class":345},[160,4802,3214],{"class":174},[160,4804,1964],{"class":170},[160,4806,2917],{"class":166},[160,4808,4809],{"class":236}," fetchExpensiveData",[160,4811,239],{"class":248},[160,4813,2925],{"class":174},[160,4815,455],{"class":248},[160,4817,4818,4820],{"class":162,"line":372},[160,4819,367],{"class":166},[160,4821,290],{"class":170},[160,4823,4824,4826,4828,4830,4832,4835,4837,4839,4841,4843,4845,4848,4850,4853,4855,4858,4860,4862,4864,4866,4868],{"class":162,"line":385},[160,4825,375],{"class":248},[160,4827,252],{"class":170},[160,4829,380],{"class":248},[160,4831,925],{"class":170},[160,4833,4834],{"class":248}," type",[160,4836,252],{"class":170},[160,4838,184],{"class":170},[160,4840,395],{"class":187},[160,4842,213],{"class":170},[160,4844,695],{"class":170},[160,4846,4847],{"class":248}," text",[160,4849,252],{"class":170},[160,4851,4852],{"class":174}," JSON",[160,4854,303],{"class":170},[160,4856,4857],{"class":236},"stringify",[160,4859,239],{"class":248},[160,4861,3270],{"class":174},[160,4863,2018],{"class":248},[160,4865,452],{"class":170},[160,4867,433],{"class":248},[160,4869,262],{"class":170},[160,4871,4872],{"class":162,"line":402},[160,4873,441],{"class":170},[160,4875,4876],{"class":162,"line":427},[160,4877,334],{"class":170},[160,4879,4880,4882],{"class":162,"line":438},[160,4881,452],{"class":170},[160,4883,455],{"class":174},[1559,4885,4887],{"id":4886},"full-cache-options","Full Cache Options",[138,4889,4890],{},"For more control, use an object with all Nitro cache options:",[149,4892,4895],{"className":151,"code":4893,"filename":4894,"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,4896,4897,4915,4935,4939,4951,4966,4974,4991,4995,5003,5018,5048,5062,5066,5085,5089,5093],{"__ignoreMap":155},[160,4898,4899,4901,4903,4905,4907,4909,4911,4913],{"class":162,"line":163},[160,4900,167],{"class":166},[160,4902,171],{"class":170},[160,4904,175],{"class":174},[160,4906,178],{"class":170},[160,4908,181],{"class":166},[160,4910,184],{"class":170},[160,4912,188],{"class":187},[160,4914,191],{"class":170},[160,4916,4917,4919,4921,4923,4925,4927,4929,4931,4933],{"class":162,"line":194},[160,4918,167],{"class":166},[160,4920,171],{"class":170},[160,4922,201],{"class":174},[160,4924,178],{"class":170},[160,4926,181],{"class":166},[160,4928,184],{"class":170},[160,4930,210],{"class":187},[160,4932,213],{"class":170},[160,4934,217],{"class":216},[160,4936,4937],{"class":162,"line":220},[160,4938,224],{"emptyLinePlaceholder":223},[160,4940,4941,4943,4945,4947,4949],{"class":162,"line":227},[160,4942,230],{"class":166},[160,4944,233],{"class":166},[160,4946,201],{"class":236},[160,4948,239],{"class":174},[160,4950,242],{"class":170},[160,4952,4953,4955,4957,4959,4962,4964],{"class":162,"line":245},[160,4954,268],{"class":248},[160,4956,252],{"class":170},[160,4958,184],{"class":170},[160,4960,4961],{"class":187},"Get page with custom cache key",[160,4963,213],{"class":170},[160,4965,262],{"class":170},[160,4967,4968,4970,4972],{"class":162,"line":265},[160,4969,285],{"class":248},[160,4971,252],{"class":170},[160,4973,290],{"class":170},[160,4975,4976,4979,4981,4983,4985,4987,4989],{"class":162,"line":282},[160,4977,4978],{"class":248},"    path",[160,4980,252],{"class":170},[160,4982,175],{"class":174},[160,4984,303],{"class":170},[160,4986,306],{"class":236},[160,4988,309],{"class":174},[160,4990,262],{"class":170},[160,4992,4993],{"class":162,"line":293},[160,4994,334],{"class":170},[160,4996,4997,4999,5001],{"class":162,"line":331},[160,4998,4764],{"class":248},[160,5000,252],{"class":170},[160,5002,290],{"class":170},[160,5004,5005,5008,5010,5012,5014,5016],{"class":162,"line":337},[160,5006,5007],{"class":248},"    maxAge",[160,5009,252],{"class":170},[160,5011,184],{"class":170},[160,5013,4771],{"class":187},[160,5015,213],{"class":170},[160,5017,262],{"class":170},[160,5019,5020,5023,5025,5028,5030,5032,5035,5037,5039,5041,5044,5046],{"class":162,"line":364},[160,5021,5022],{"class":236},"    getKey",[160,5024,252],{"class":170},[160,5026,5027],{"class":352}," args",[160,5029,359],{"class":345},[160,5031,410],{"class":170},[160,5033,5034],{"class":187},"page-",[160,5036,416],{"class":170},[160,5038,729],{"class":174},[160,5040,303],{"class":170},[160,5042,5043],{"class":174},"path",[160,5045,422],{"class":170},[160,5047,262],{"class":170},[160,5049,5050,5053,5055,5057,5059],{"class":162,"line":372},[160,5051,5052],{"class":248},"    swr",[160,5054,252],{"class":170},[160,5056,3553],{"class":3537},[160,5058,695],{"class":170},[160,5060,5061],{"class":216}," // stale-while-revalidate\n",[160,5063,5064],{"class":162,"line":385},[160,5065,334],{"class":170},[160,5067,5068,5070,5072,5074,5076,5079,5081,5083],{"class":162,"line":402},[160,5069,340],{"class":236},[160,5071,252],{"class":170},[160,5073,346],{"class":345},[160,5075,349],{"class":170},[160,5077,5078],{"class":352}," path",[160,5080,356],{"class":170},[160,5082,359],{"class":345},[160,5084,290],{"class":170},[160,5086,5087],{"class":162,"line":427},[160,5088,580],{"class":216},[160,5090,5091],{"class":162,"line":438},[160,5092,334],{"class":170},[160,5094,5095,5097],{"class":162,"line":444},[160,5096,452],{"class":170},[160,5098,455],{"class":174},[1559,5100,5102],{"id":5101},"cache-options-reference","Cache Options Reference",[1567,5104,5105,5119],{},[1570,5106,5107],{},[1573,5108,5109,5112,5114,5117],{},[1576,5110,5111],{},"Option",[1576,5113,3639],{},[1576,5115,5116],{},"Required",[1576,5118,1584],{},[1586,5120,5121,5145,5163,5179,5195,5210],{},[1573,5122,5123,5128,5133,5136],{},[1591,5124,5125],{},[157,5126,5127],{},"maxAge",[1591,5129,5130],{},[157,5131,5132],{},"string | number",[1591,5134,5135],{},"Yes",[1591,5137,5138,5139,3350,5142,326],{},"Cache duration (e.g., ",[157,5140,5141],{},"'1h'",[157,5143,5144],{},"3600000",[1573,5146,5147,5152,5157,5160],{},[1591,5148,5149],{},[157,5150,5151],{},"getKey",[1591,5153,5154],{},[157,5155,5156],{},"(args) => string",[1591,5158,5159],{},"No",[1591,5161,5162],{},"Custom cache key generator",[1573,5164,5165,5170,5174,5176],{},[1591,5166,5167],{},[157,5168,5169],{},"staleMaxAge",[1591,5171,5172],{},[157,5173,1275],{},[1591,5175,5159],{},[1591,5177,5178],{},"Duration for stale-while-revalidate",[1573,5180,5181,5186,5190,5192],{},[1591,5182,5183],{},[157,5184,5185],{},"swr",[1591,5187,5188],{},[157,5189,3658],{},[1591,5191,5159],{},[1591,5193,5194],{},"Enable stale-while-revalidate",[1573,5196,5197,5201,5205,5207],{},[1591,5198,5199],{},[157,5200,465],{},[1591,5202,5203],{},[157,5204,306],{},[1591,5206,5159],{},[1591,5208,5209],{},"Cache name (auto-generated from tool name)",[1573,5211,5212,5217,5221,5223],{},[1591,5213,5214],{},[157,5215,5216],{},"group",[1591,5218,5219],{},[157,5220,306],{},[1591,5222,5159],{},[1591,5224,5225,5226,326],{},"Cache group (default: ",[157,5227,5228],{},"'mcp'",[3995,5230,5231,5232,5237],{"color":3997,"icon":3998},"See the ",[4647,5233,5236],{"href":5234,"rel":5235},"https://nitro.build/guide/cache#options",[4651],"Nitro Cache documentation"," for all available options.",[133,5239,5241],{"id":5240},"advanced-examples","Advanced Examples",[1559,5243,5245],{"id":5244},"tool-with-error-handling","Tool with Error Handling",[138,5247,5248],{},"Here's an example showing proper error handling:",[149,5250,5253],{"className":151,"code":5251,"filename":5252,"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,5254,5255,5273,5293,5297,5309,5324,5339,5347,5379,5383,5402,5409,5414,5433,5437,5443,5453,5467,5485,5493,5497,5501,5515,5521,5531,5545,5590,5598,5608,5612,5616,5620],{"__ignoreMap":155},[160,5256,5257,5259,5261,5263,5265,5267,5269,5271],{"class":162,"line":163},[160,5258,167],{"class":166},[160,5260,171],{"class":170},[160,5262,175],{"class":174},[160,5264,178],{"class":170},[160,5266,181],{"class":166},[160,5268,184],{"class":170},[160,5270,188],{"class":187},[160,5272,191],{"class":170},[160,5274,5275,5277,5279,5281,5283,5285,5287,5289,5291],{"class":162,"line":194},[160,5276,167],{"class":166},[160,5278,171],{"class":170},[160,5280,201],{"class":174},[160,5282,178],{"class":170},[160,5284,181],{"class":166},[160,5286,184],{"class":170},[160,5288,210],{"class":187},[160,5290,213],{"class":170},[160,5292,217],{"class":216},[160,5294,5295],{"class":162,"line":220},[160,5296,224],{"emptyLinePlaceholder":223},[160,5298,5299,5301,5303,5305,5307],{"class":162,"line":227},[160,5300,230],{"class":166},[160,5302,233],{"class":166},[160,5304,201],{"class":236},[160,5306,239],{"class":174},[160,5308,242],{"class":170},[160,5310,5311,5313,5315,5317,5320,5322],{"class":162,"line":245},[160,5312,249],{"class":248},[160,5314,252],{"class":170},[160,5316,184],{"class":170},[160,5318,5319],{"class":187},"safe-operation",[160,5321,213],{"class":170},[160,5323,262],{"class":170},[160,5325,5326,5328,5330,5332,5335,5337],{"class":162,"line":265},[160,5327,268],{"class":248},[160,5329,252],{"class":170},[160,5331,184],{"class":170},[160,5333,5334],{"class":187},"Perform an operation with error handling",[160,5336,213],{"class":170},[160,5338,262],{"class":170},[160,5340,5341,5343,5345],{"class":162,"line":282},[160,5342,285],{"class":248},[160,5344,252],{"class":170},[160,5346,290],{"class":170},[160,5348,5349,5352,5354,5356,5358,5360,5362,5364,5366,5368,5370,5373,5375,5377],{"class":162,"line":293},[160,5350,5351],{"class":248},"    value",[160,5353,252],{"class":170},[160,5355,175],{"class":174},[160,5357,303],{"class":170},[160,5359,306],{"class":236},[160,5361,309],{"class":174},[160,5363,303],{"class":170},[160,5365,314],{"class":236},[160,5367,239],{"class":174},[160,5369,213],{"class":170},[160,5371,5372],{"class":187},"Input value",[160,5374,213],{"class":170},[160,5376,326],{"class":174},[160,5378,262],{"class":170},[160,5380,5381],{"class":162,"line":331},[160,5382,334],{"class":170},[160,5384,5385,5387,5389,5391,5393,5396,5398,5400],{"class":162,"line":337},[160,5386,340],{"class":236},[160,5388,252],{"class":170},[160,5390,346],{"class":345},[160,5392,349],{"class":170},[160,5394,5395],{"class":352}," value",[160,5397,356],{"class":170},[160,5399,359],{"class":345},[160,5401,290],{"class":170},[160,5403,5404,5407],{"class":162,"line":364},[160,5405,5406],{"class":166},"    try",[160,5408,290],{"class":170},[160,5410,5411],{"class":162,"line":372},[160,5412,5413],{"class":216},"      // Your operation here\n",[160,5415,5416,5419,5421,5423,5425,5427,5430],{"class":162,"line":385},[160,5417,5418],{"class":345},"      const",[160,5420,4546],{"class":174},[160,5422,1964],{"class":170},[160,5424,5395],{"class":174},[160,5426,303],{"class":170},[160,5428,5429],{"class":236},"toUpperCase",[160,5431,5432],{"class":248},"()\n",[160,5434,5435],{"class":162,"line":402},[160,5436,224],{"emptyLinePlaceholder":223},[160,5438,5439,5441],{"class":162,"line":427},[160,5440,4462],{"class":166},[160,5442,290],{"class":170},[160,5444,5445,5447,5449,5451],{"class":162,"line":438},[160,5446,4469],{"class":248},[160,5448,252],{"class":170},[160,5450,380],{"class":248},[160,5452,242],{"class":170},[160,5454,5455,5457,5459,5461,5463,5465],{"class":162,"line":444},[160,5456,4480],{"class":248},[160,5458,252],{"class":170},[160,5460,184],{"class":170},[160,5462,395],{"class":187},[160,5464,213],{"class":170},[160,5466,262],{"class":170},[160,5468,5469,5471,5473,5475,5477,5479,5481,5483],{"class":162,"line":449},[160,5470,4495],{"class":248},[160,5472,252],{"class":170},[160,5474,410],{"class":170},[160,5476,4596],{"class":187},[160,5478,416],{"class":170},[160,5480,4601],{"class":174},[160,5482,422],{"class":170},[160,5484,262],{"class":170},[160,5486,5487,5489,5491],{"class":162,"line":1439},[160,5488,4511],{"class":170},[160,5490,433],{"class":248},[160,5492,262],{"class":170},[160,5494,5495],{"class":162,"line":1444},[160,5496,4531],{"class":170},[160,5498,5499],{"class":162,"line":1450},[160,5500,441],{"class":170},[160,5502,5503,5506,5508,5511,5513],{"class":162,"line":1492},[160,5504,5505],{"class":166},"    catch",[160,5507,726],{"class":248},[160,5509,5510],{"class":174},"error",[160,5512,2018],{"class":248},[160,5514,242],{"class":170},[160,5516,5517,5519],{"class":162,"line":1497},[160,5518,4462],{"class":166},[160,5520,290],{"class":170},[160,5522,5523,5525,5527,5529],{"class":162,"line":1542},[160,5524,4469],{"class":248},[160,5526,252],{"class":170},[160,5528,380],{"class":248},[160,5530,242],{"class":170},[160,5532,5533,5535,5537,5539,5541,5543],{"class":162,"line":1548},[160,5534,4480],{"class":248},[160,5536,252],{"class":170},[160,5538,184],{"class":170},[160,5540,395],{"class":187},[160,5542,213],{"class":170},[160,5544,262],{"class":170},[160,5546,5547,5549,5551,5553,5556,5558,5561,5564,5567,5570,5573,5575,5578,5580,5583,5586,5588],{"class":162,"line":1553},[160,5548,4495],{"class":248},[160,5550,252],{"class":170},[160,5552,410],{"class":170},[160,5554,5555],{"class":187},"Error: ",[160,5557,416],{"class":170},[160,5559,5560],{"class":174},"error ",[160,5562,5563],{"class":170},"instanceof",[160,5565,5566],{"class":2276}," Error",[160,5568,5569],{"class":170}," ?",[160,5571,5572],{"class":174}," error",[160,5574,303],{"class":170},[160,5576,5577],{"class":174},"message ",[160,5579,252],{"class":170},[160,5581,5582],{"class":236}," String",[160,5584,5585],{"class":174},"(error)",[160,5587,422],{"class":170},[160,5589,262],{"class":170},[160,5591,5592,5594,5596],{"class":162,"line":2178},[160,5593,4511],{"class":170},[160,5595,433],{"class":248},[160,5597,262],{"class":170},[160,5599,5600,5602,5604,5606],{"class":162,"line":2188},[160,5601,4520],{"class":248},[160,5603,252],{"class":170},[160,5605,3553],{"class":3537},[160,5607,262],{"class":170},[160,5609,5610],{"class":162,"line":2222},[160,5611,4531],{"class":170},[160,5613,5614],{"class":162,"line":2230},[160,5615,441],{"class":170},[160,5617,5618],{"class":162,"line":2236},[160,5619,334],{"class":170},[160,5621,5622,5624],{"class":162,"line":2241},[160,5623,452],{"class":170},[160,5625,455],{"class":174},[133,5627,5629],{"id":5628},"file-organization","File Organization",[138,5631,5632,5633,5636],{},"Organize your tools in the ",[157,5634,5635],{},"server/mcp/tools/"," directory:",[149,5638,5642],{"className":5639,"code":5641,"language":395},[5640],"language-text","server/\n└── mcp/\n    └── tools/\n        ├── echo.ts\n        ├── calculator.ts\n        ├── bmi.ts\n        └── text-processor.ts\n",[157,5643,5641],{"__ignoreMap":155},[138,5645,5646],{},"Each file should export a default tool definition.",[133,5648,5650],{"id":5649},"type-safety","Type Safety",[138,5652,5653],{},"The module provides full TypeScript type inference:",[149,5655,5657],{"className":151,"code":5656,"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,5658,5659,5664,5682,5687,5691,5695,5700,5713,5722,5736,5753,5757],{"__ignoreMap":155},[160,5660,5661],{"class":162,"line":163},[160,5662,5663],{"class":216},"// Input types are inferred from inputSchema\n",[160,5665,5666,5668,5670,5672,5674,5676,5678,5680],{"class":162,"line":194},[160,5667,2277],{"class":2276},[160,5669,252],{"class":170},[160,5671,346],{"class":345},[160,5673,349],{"class":170},[160,5675,353],{"class":352},[160,5677,356],{"class":170},[160,5679,359],{"class":345},[160,5681,290],{"class":170},[160,5683,5684],{"class":162,"line":220},[160,5685,5686],{"class":216},"  // message is typed as string\n",[160,5688,5689],{"class":162,"line":227},[160,5690,760],{"class":170},[160,5692,5693],{"class":162,"line":245},[160,5694,224],{"emptyLinePlaceholder":223},[160,5696,5697],{"class":162,"line":265},[160,5698,5699],{"class":216},"// Output types are inferred from outputSchema\n",[160,5701,5702,5705,5708,5711],{"class":162,"line":282},[160,5703,5704],{"class":345},"const",[160,5706,5707],{"class":174}," result ",[160,5709,5710],{"class":170},"=",[160,5712,290],{"class":170},[160,5714,5715,5718,5720],{"class":162,"line":293},[160,5716,5717],{"class":248},"  structuredContent",[160,5719,252],{"class":170},[160,5721,290],{"class":170},[160,5723,5724,5726,5728,5731,5733],{"class":162,"line":331},[160,5725,1896],{"class":248},[160,5727,252],{"class":170},[160,5729,5730],{"class":2014}," 25.5",[160,5732,695],{"class":170},[160,5734,5735],{"class":216},"      // number\n",[160,5737,5738,5740,5742,5744,5746,5748,5750],{"class":162,"line":337},[160,5739,1913],{"class":248},[160,5741,252],{"class":170},[160,5743,184],{"class":170},[160,5745,754],{"class":187},[160,5747,213],{"class":170},[160,5749,695],{"class":170},[160,5751,5752],{"class":216}," // string\n",[160,5754,5755],{"class":162,"line":364},[160,5756,334],{"class":170},[160,5758,5759],{"class":162,"line":372},[160,5760,760],{"class":170},[133,5762,5764],{"id":5763},"next-steps","Next Steps",[599,5766,5767,5772,5777,5782],{},[602,5768,5769,5771],{},[4647,5770,54],{"href":55}," - Create resources to expose data",[602,5773,5774,5776],{},[4647,5775,59],{"href":60}," - Create reusable prompts",[602,5778,5779,5781],{},[4647,5780,64],{"href":65}," - Create custom MCP endpoints",[602,5783,5784,5786],{},[4647,5785,99],{"href":115}," - See more tool examples",[5788,5789,5790],"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":5792},[5793,5794,5795,5796,5797,5800,5801,5805,5808,5809,5810,5815,5818,5819,5820],{"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":968,"depth":194,"text":969,"children":5798},[5799],{"id":1561,"depth":220,"text":1562},{"id":1710,"depth":194,"text":1711},{"id":2262,"depth":194,"text":2263,"children":5802},[5803,5804],{"id":2396,"depth":220,"text":2397},{"id":2660,"depth":220,"text":2661},{"id":3396,"depth":194,"text":3397,"children":5806},[5807],{"id":3626,"depth":220,"text":3627},{"id":4007,"depth":194,"text":4008},{"id":4293,"depth":194,"text":4294},{"id":4630,"depth":194,"text":4631,"children":5811},[5812,5813,5814],{"id":4641,"depth":220,"text":4642},{"id":4886,"depth":220,"text":4887},{"id":5101,"depth":220,"text":5102},{"id":5240,"depth":194,"text":5241,"children":5816},[5817],{"id":5244,"depth":220,"text":5245},{"id":5628,"depth":194,"text":5629},{"id":5649,"depth":194,"text":5650},{"id":5763,"depth":194,"text":5764},"Create MCP tools with Zod validation and type safety.","md",null,{},{"icon":52},{"title":49,"description":5827},"Create MCP tools with Zod validation and full TypeScript support.","6DOdsGeA9hEQz9pBC7tJlnBvRc2YMsBQaSqkdefQb_g",[5830,5832],{"title":20,"path":46,"stem":47,"description":5831,"icon":23,"children":-1},"Configure the Nuxt MCP module to fit your needs.",{"title":54,"path":55,"stem":56,"description":5833,"icon":57,"children":-1},"Expose read-only data sources as MCP resources to provide context to AI models.",1773221529934]