[{"data":1,"prerenderedAt":2424},["ShallowReactive",2],{"navigation_docs":3,"-tools-schema-handler":282,"-tools-schema-handler-surround":2419},[4,40,70,99,122,156,189,253],{"title":5,"path":6,"stem":7,"children":8,"page":39},"Getting Started","\u002Fgetting-started","1.getting-started",[9,14,19,24,29,34],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-book-open",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F3.configuration","i-lucide-settings",{"title":25,"path":26,"stem":27,"icon":28},"Inspector","\u002Fgetting-started\u002Finspector","1.getting-started\u002F4.inspector","i-lucide-circuit-board",{"title":30,"path":31,"stem":32,"icon":33},"Connection","\u002Fgetting-started\u002Fconnection","1.getting-started\u002F5.connection","i-lucide-plug",{"title":35,"path":36,"stem":37,"icon":38},"Agent Skills","\u002Fgetting-started\u002Fagent-skills","1.getting-started\u002F6.agent-skills","i-lucide-sparkles",false,{"title":41,"path":42,"stem":43,"children":44,"page":39},"Tools","\u002Ftools","2.tools",[45,50,55,60,65],{"title":46,"path":47,"stem":48,"icon":49},"Overview","\u002Ftools\u002Foverview","2.tools\u002F0.overview","i-lucide-wrench",{"title":51,"path":52,"stem":53,"icon":54},"Schema, handler & returns","\u002Ftools\u002Fschema-handler","2.tools\u002F1.schema-handler","i-lucide-braces",{"title":56,"path":57,"stem":58,"icon":59},"Annotations & input examples","\u002Ftools\u002Fannotations","2.tools\u002F2.annotations","i-lucide-badge-info",{"title":61,"path":62,"stem":63,"icon":64},"Errors & caching","\u002Ftools\u002Ferrors-caching","2.tools\u002F3.errors-caching","i-lucide-shield",{"title":66,"path":67,"stem":68,"icon":69},"Groups, files & dynamic registration","\u002Ftools\u002Fgroups-organization","2.tools\u002F4.groups-organization","i-lucide-tags",{"title":71,"path":72,"stem":73,"children":74,"page":39},"Resources","\u002Fresources","3.resources",[75,79,84,89,94],{"title":46,"path":76,"stem":77,"icon":78},"\u002Fresources\u002Foverview","3.resources\u002F0.overview","i-lucide-package",{"title":80,"path":81,"stem":82,"icon":83},"Static resources & structure","\u002Fresources\u002Fstatic-and-structure","3.resources\u002F1.static-and-structure","i-lucide-file-stack",{"title":85,"path":86,"stem":87,"icon":88},"Templates & handlers","\u002Fresources\u002Ftemplates-and-handlers","3.resources\u002F2.templates-and-handlers","i-lucide-git-branch",{"title":90,"path":91,"stem":92,"icon":93},"Metadata, content & errors","\u002Fresources\u002Fcontent-metadata-errors","3.resources\u002F3.content-metadata-errors","i-lucide-layers",{"title":95,"path":96,"stem":97,"icon":98},"Groups & organization","\u002Fresources\u002Forganization","3.resources\u002F4.organization","i-lucide-folder-tree",{"title":100,"path":101,"stem":102,"children":103,"page":39},"Prompts","\u002Fprompts","4.prompts",[104,108,113,117],{"title":46,"path":105,"stem":106,"icon":107},"\u002Fprompts\u002Foverview","4.prompts\u002F0.overview","i-lucide-message-square",{"title":109,"path":110,"stem":111,"icon":112},"Authoring & structure","\u002Fprompts\u002Fauthoring","4.prompts\u002F1.authoring","i-lucide-pen-line",{"title":114,"path":115,"stem":116,"icon":93},"Input, handler & messages","\u002Fprompts\u002Finput-handler-messages","4.prompts\u002F2.input-handler-messages",{"title":118,"path":119,"stem":120,"icon":121},"Patterns & advanced","\u002Fprompts\u002Fpatterns-advanced","4.prompts\u002F3.patterns-advanced","i-lucide-line-chart",{"title":123,"path":124,"stem":125,"children":126,"page":39},"Handlers","\u002Fhandlers","5.handlers",[127,131,136,141,146,151],{"title":46,"path":128,"stem":129,"icon":130},"\u002Fhandlers\u002Foverview","5.handlers\u002F0.overview","i-lucide-server",{"title":132,"path":133,"stem":134,"icon":135},"Default & custom handlers","\u002Fhandlers\u002Fdefault-and-custom","5.handlers\u002F1.default-and-custom","i-lucide-toggle-left",{"title":137,"path":138,"stem":139,"icon":140},"Structure & options","\u002Fhandlers\u002Fstructure-and-options","5.handlers\u002F2.structure-and-options","i-lucide-sliders-horizontal",{"title":142,"path":143,"stem":144,"icon":145},"Examples & routing","\u002Fhandlers\u002Fexamples-routing","5.handlers\u002F3.examples-routing","i-lucide-route",{"title":147,"path":148,"stem":149,"icon":150},"Sharing & practices","\u002Fhandlers\u002Fsharing-practices","5.handlers\u002F4.sharing-practices","i-lucide-share-2",{"title":152,"path":153,"stem":154,"icon":155},"Multi-handler organization","\u002Fhandlers\u002Forganization","5.handlers\u002F5.organization","i-lucide-network",{"title":157,"path":158,"stem":159,"children":160,"page":39},"Apps","\u002Fapps","6.apps",[161,165,170,175,179,184],{"title":46,"path":162,"stem":163,"icon":164},"\u002Fapps\u002Foverview","6.apps\u002F0.overview","i-lucide-app-window",{"title":166,"path":167,"stem":168,"icon":169},"Authoring & defineMcpApp","\u002Fapps\u002Fauthoring","6.apps\u002F1.authoring","i-lucide-code-2",{"title":171,"path":172,"stem":173,"icon":174},"useMcpApp() bridge","\u002Fapps\u002Fuse-mcp-app","6.apps\u002F2.use-mcp-app","i-lucide-message-circle",{"title":176,"path":177,"stem":178,"icon":64},"CSP & build pipeline","\u002Fapps\u002Fcsp-and-wiring","6.apps\u002F3.csp-and-wiring",{"title":180,"path":181,"stem":182,"icon":183},"Testing & publishing","\u002Fapps\u002Ftesting-publishing","6.apps\u002F4.testing-publishing","i-lucide-rocket",{"title":185,"path":186,"stem":187,"icon":188},"Patterns & limits","\u002Fapps\u002Fpatterns-reference","6.apps\u002F5.patterns-reference","i-lucide-book-marked",{"title":190,"path":191,"stem":192,"children":193,"page":39},"Advanced Topics","\u002Fadvanced","7.advanced",[194,199,204,209,214,218,223,228,233,238,243,248],{"title":195,"path":196,"stem":197,"icon":198},"Custom Paths","\u002Fadvanced\u002Fcustom-paths","7.advanced\u002F1.custom-paths","i-lucide-folder",{"title":200,"path":201,"stem":202,"icon":203},"Logging","\u002Fadvanced\u002Flogging","7.advanced\u002F10.logging","i-lucide-scroll-text",{"title":205,"path":206,"stem":207,"icon":208},"MCP Apps Internals","\u002Fadvanced\u002Fmcp-apps-internals","7.advanced\u002F11.mcp-apps-internals","i-lucide-cog",{"title":210,"path":211,"stem":212,"icon":213},"Listing Definitions","\u002Fadvanced\u002Flisting-definitions","7.advanced\u002F12.listing-definitions","i-lucide-list",{"title":215,"path":216,"stem":217,"icon":64},"Middleware","\u002Fadvanced\u002Fmiddleware","7.advanced\u002F2.middleware",{"title":219,"path":220,"stem":221,"icon":222},"TypeScript","\u002Fadvanced\u002Ftypescript","7.advanced\u002F3.typescript","i-lucide-type",{"title":224,"path":225,"stem":226,"icon":227},"Hooks","\u002Fadvanced\u002Fhooks","7.advanced\u002F4.hooks","i-lucide-webhook",{"title":229,"path":230,"stem":231,"icon":232},"MCP Evals","\u002Fadvanced\u002Fevals","7.advanced\u002F5.evals","i-lucide-flask-conical",{"title":234,"path":235,"stem":236,"icon":237},"Sessions","\u002Fadvanced\u002Fsessions","7.advanced\u002F6.sessions","i-lucide-database",{"title":239,"path":240,"stem":241,"icon":242},"Dynamic Definitions","\u002Fadvanced\u002Fdynamic-definitions","7.advanced\u002F7.dynamic-definitions","i-lucide-toggle-right",{"title":244,"path":245,"stem":246,"icon":247},"Code Mode","\u002Fadvanced\u002Fcode-mode","7.advanced\u002F8.code-mode","i-lucide-code",{"title":249,"path":250,"stem":251,"icon":252},"Elicitation","\u002Fadvanced\u002Felicitation","7.advanced\u002F9.elicitation","i-lucide-message-square-quote",{"title":254,"path":255,"stem":256,"children":257,"page":39},"Examples","\u002Fexamples","8.examples",[258,263,268,273,278],{"title":259,"path":260,"stem":261,"icon":262},"Authentication","\u002Fexamples\u002Fauthentication","8.examples\u002F1.authentication","i-lucide-shield-check",{"title":264,"path":265,"stem":266,"icon":267},"API Integration","\u002Fexamples\u002Fapi-integration","8.examples\u002F2.api-integration","i-lucide-globe",{"title":269,"path":270,"stem":271,"icon":272},"Common Patterns","\u002Fexamples\u002Fcommon-patterns","8.examples\u002F3.common-patterns","i-lucide-lightbulb",{"title":274,"path":275,"stem":276,"icon":277},"File Operations","\u002Fexamples\u002Ffile-operations","8.examples\u002F4.file-operations","i-lucide-file",{"title":279,"path":280,"stem":281,"icon":107},"Prompt Examples","\u002Fexamples\u002Fprompt-examples","8.examples\u002F5.prompt-examples",{"id":283,"title":51,"body":284,"description":2410,"extension":2411,"links":2412,"meta":2413,"navigation":2414,"path":52,"seo":2415,"stem":53,"__hash__":2418},"docs\u002F2.tools\u002F1.schema-handler.md",{"type":285,"value":286,"toc":2399},"minimark",[287,292,304,446,449,898,903,1045,1049,1055,1510,1519,1523,1530,1534,1546,1735,1744,1748,1754,2009,2013,2024,2207,2376,2395],[288,289,291],"h2",{"id":290},"input-schema","Input Schema",[293,294,295,296,300,301,303],"p",{},"The ",[297,298,299],"code",{},"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 ",[297,302,299],{}," entirely:",[305,306,312],"pre",{"className":307,"code":308,"filename":309,"language":310,"meta":311,"style":311},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defineMcpTool } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpTool({\n  name: 'echo',\n  description: 'Echo back a message',\n  handler: async () => 'Echo: test',\n})\n","server\u002Fmcp\u002Ftools\u002Fecho.ts","typescript","",[297,313,314,347,354,372,393,410,437],{"__ignoreMap":311},[315,316,319,323,327,331,334,337,340,344],"span",{"class":317,"line":318},"line",1,[315,320,322],{"class":321},"s7zQu","import",[315,324,326],{"class":325},"sMK4o"," {",[315,328,330],{"class":329},"sTEyZ"," defineMcpTool",[315,332,333],{"class":325}," }",[315,335,336],{"class":321}," from",[315,338,339],{"class":325}," '",[315,341,343],{"class":342},"sfazB","@nuxtjs\u002Fmcp-toolkit\u002Fserver",[315,345,346],{"class":325},"'\n",[315,348,350],{"class":317,"line":349},2,[315,351,353],{"emptyLinePlaceholder":352},true,"\n",[315,355,357,360,363,366,369],{"class":317,"line":356},3,[315,358,359],{"class":321},"export",[315,361,362],{"class":321}," default",[315,364,330],{"class":365},"s2Zo4",[315,367,368],{"class":329},"(",[315,370,371],{"class":325},"{\n",[315,373,375,379,382,384,387,390],{"class":317,"line":374},4,[315,376,378],{"class":377},"swJcz","  name",[315,380,381],{"class":325},":",[315,383,339],{"class":325},[315,385,386],{"class":342},"echo",[315,388,389],{"class":325},"'",[315,391,392],{"class":325},",\n",[315,394,396,399,401,403,406,408],{"class":317,"line":395},5,[315,397,398],{"class":377},"  description",[315,400,381],{"class":325},[315,402,339],{"class":325},[315,404,405],{"class":342},"Echo back a message",[315,407,389],{"class":325},[315,409,392],{"class":325},[315,411,413,416,418,422,425,428,430,433,435],{"class":317,"line":412},6,[315,414,415],{"class":365},"  handler",[315,417,381],{"class":325},[315,419,421],{"class":420},"spNyl"," async",[315,423,424],{"class":325}," ()",[315,426,427],{"class":420}," =>",[315,429,339],{"class":325},[315,431,432],{"class":342},"Echo: test",[315,434,389],{"class":325},[315,436,392],{"class":325},[315,438,440,443],{"class":317,"line":439},7,[315,441,442],{"class":325},"}",[315,444,445],{"class":329},")\n",[293,447,448],{},"For tools with parameters, define them using Zod schemas:",[305,450,453],{"className":307,"code":451,"filename":452,"language":310,"meta":311,"style":311},"import { z } from 'zod'\nimport { defineMcpTool } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpTool({\n  name: 'calculator',\n  inputSchema: {\n    \u002F\u002F String input\n    operation: z.string().describe('Operation to perform'),\n\n    \u002F\u002F Number input\n    a: z.number().describe('First number'),\n    b: z.number().describe('Second number'),\n\n    \u002F\u002F Optional field\n    precision: z.number().optional().describe('Decimal precision'),\n\n    \u002F\u002F Enum input\n    format: z.enum(['decimal', 'fraction']).describe('Output format'),\n\n    \u002F\u002F Array input\n    numbers: z.array(z.number()).describe('List of numbers'),\n  },\n  handler: async ({ operation, a, b, precision, format, numbers }) => {\n    \u002F\u002F Handler implementation\n  },\n})\n","server\u002Fmcp\u002Ftools\u002Fcalculator.ts",[297,454,455,475,493,497,509,524,534,540,578,583,589,623,656,661,667,707,712,718,773,778,784,826,832,880,886,891],{"__ignoreMap":311},[315,456,457,459,461,464,466,468,470,473],{"class":317,"line":318},[315,458,322],{"class":321},[315,460,326],{"class":325},[315,462,463],{"class":329}," z",[315,465,333],{"class":325},[315,467,336],{"class":321},[315,469,339],{"class":325},[315,471,472],{"class":342},"zod",[315,474,346],{"class":325},[315,476,477,479,481,483,485,487,489,491],{"class":317,"line":349},[315,478,322],{"class":321},[315,480,326],{"class":325},[315,482,330],{"class":329},[315,484,333],{"class":325},[315,486,336],{"class":321},[315,488,339],{"class":325},[315,490,343],{"class":342},[315,492,346],{"class":325},[315,494,495],{"class":317,"line":356},[315,496,353],{"emptyLinePlaceholder":352},[315,498,499,501,503,505,507],{"class":317,"line":374},[315,500,359],{"class":321},[315,502,362],{"class":321},[315,504,330],{"class":365},[315,506,368],{"class":329},[315,508,371],{"class":325},[315,510,511,513,515,517,520,522],{"class":317,"line":395},[315,512,378],{"class":377},[315,514,381],{"class":325},[315,516,339],{"class":325},[315,518,519],{"class":342},"calculator",[315,521,389],{"class":325},[315,523,392],{"class":325},[315,525,526,529,531],{"class":317,"line":412},[315,527,528],{"class":377},"  inputSchema",[315,530,381],{"class":325},[315,532,533],{"class":325}," {\n",[315,535,536],{"class":317,"line":439},[315,537,539],{"class":538},"sHwdD","    \u002F\u002F String input\n",[315,541,543,546,548,550,553,556,559,561,564,566,568,571,573,576],{"class":317,"line":542},8,[315,544,545],{"class":377},"    operation",[315,547,381],{"class":325},[315,549,463],{"class":329},[315,551,552],{"class":325},".",[315,554,555],{"class":365},"string",[315,557,558],{"class":329},"()",[315,560,552],{"class":325},[315,562,563],{"class":365},"describe",[315,565,368],{"class":329},[315,567,389],{"class":325},[315,569,570],{"class":342},"Operation to perform",[315,572,389],{"class":325},[315,574,575],{"class":329},")",[315,577,392],{"class":325},[315,579,581],{"class":317,"line":580},9,[315,582,353],{"emptyLinePlaceholder":352},[315,584,586],{"class":317,"line":585},10,[315,587,588],{"class":538},"    \u002F\u002F Number input\n",[315,590,592,595,597,599,601,604,606,608,610,612,614,617,619,621],{"class":317,"line":591},11,[315,593,594],{"class":377},"    a",[315,596,381],{"class":325},[315,598,463],{"class":329},[315,600,552],{"class":325},[315,602,603],{"class":365},"number",[315,605,558],{"class":329},[315,607,552],{"class":325},[315,609,563],{"class":365},[315,611,368],{"class":329},[315,613,389],{"class":325},[315,615,616],{"class":342},"First number",[315,618,389],{"class":325},[315,620,575],{"class":329},[315,622,392],{"class":325},[315,624,626,629,631,633,635,637,639,641,643,645,647,650,652,654],{"class":317,"line":625},12,[315,627,628],{"class":377},"    b",[315,630,381],{"class":325},[315,632,463],{"class":329},[315,634,552],{"class":325},[315,636,603],{"class":365},[315,638,558],{"class":329},[315,640,552],{"class":325},[315,642,563],{"class":365},[315,644,368],{"class":329},[315,646,389],{"class":325},[315,648,649],{"class":342},"Second number",[315,651,389],{"class":325},[315,653,575],{"class":329},[315,655,392],{"class":325},[315,657,659],{"class":317,"line":658},13,[315,660,353],{"emptyLinePlaceholder":352},[315,662,664],{"class":317,"line":663},14,[315,665,666],{"class":538},"    \u002F\u002F Optional field\n",[315,668,670,673,675,677,679,681,683,685,688,690,692,694,696,698,701,703,705],{"class":317,"line":669},15,[315,671,672],{"class":377},"    precision",[315,674,381],{"class":325},[315,676,463],{"class":329},[315,678,552],{"class":325},[315,680,603],{"class":365},[315,682,558],{"class":329},[315,684,552],{"class":325},[315,686,687],{"class":365},"optional",[315,689,558],{"class":329},[315,691,552],{"class":325},[315,693,563],{"class":365},[315,695,368],{"class":329},[315,697,389],{"class":325},[315,699,700],{"class":342},"Decimal precision",[315,702,389],{"class":325},[315,704,575],{"class":329},[315,706,392],{"class":325},[315,708,710],{"class":317,"line":709},16,[315,711,353],{"emptyLinePlaceholder":352},[315,713,715],{"class":317,"line":714},17,[315,716,717],{"class":538},"    \u002F\u002F Enum input\n",[315,719,721,724,726,728,730,733,736,738,741,743,746,748,751,753,756,758,760,762,764,767,769,771],{"class":317,"line":720},18,[315,722,723],{"class":377},"    format",[315,725,381],{"class":325},[315,727,463],{"class":329},[315,729,552],{"class":325},[315,731,732],{"class":365},"enum",[315,734,735],{"class":329},"([",[315,737,389],{"class":325},[315,739,740],{"class":342},"decimal",[315,742,389],{"class":325},[315,744,745],{"class":325},",",[315,747,339],{"class":325},[315,749,750],{"class":342},"fraction",[315,752,389],{"class":325},[315,754,755],{"class":329},"])",[315,757,552],{"class":325},[315,759,563],{"class":365},[315,761,368],{"class":329},[315,763,389],{"class":325},[315,765,766],{"class":342},"Output format",[315,768,389],{"class":325},[315,770,575],{"class":329},[315,772,392],{"class":325},[315,774,776],{"class":317,"line":775},19,[315,777,353],{"emptyLinePlaceholder":352},[315,779,781],{"class":317,"line":780},20,[315,782,783],{"class":538},"    \u002F\u002F Array input\n",[315,785,787,790,792,794,796,799,802,804,806,809,811,813,815,817,820,822,824],{"class":317,"line":786},21,[315,788,789],{"class":377},"    numbers",[315,791,381],{"class":325},[315,793,463],{"class":329},[315,795,552],{"class":325},[315,797,798],{"class":365},"array",[315,800,801],{"class":329},"(z",[315,803,552],{"class":325},[315,805,603],{"class":365},[315,807,808],{"class":329},"())",[315,810,552],{"class":325},[315,812,563],{"class":365},[315,814,368],{"class":329},[315,816,389],{"class":325},[315,818,819],{"class":342},"List of numbers",[315,821,389],{"class":325},[315,823,575],{"class":329},[315,825,392],{"class":325},[315,827,829],{"class":317,"line":828},22,[315,830,831],{"class":325},"  },\n",[315,833,835,837,839,841,844,848,850,853,855,858,860,863,865,868,870,873,876,878],{"class":317,"line":834},23,[315,836,415],{"class":365},[315,838,381],{"class":325},[315,840,421],{"class":420},[315,842,843],{"class":325}," ({",[315,845,847],{"class":846},"sHdIc"," operation",[315,849,745],{"class":325},[315,851,852],{"class":846}," a",[315,854,745],{"class":325},[315,856,857],{"class":846}," b",[315,859,745],{"class":325},[315,861,862],{"class":846}," precision",[315,864,745],{"class":325},[315,866,867],{"class":846}," format",[315,869,745],{"class":325},[315,871,872],{"class":846}," numbers",[315,874,875],{"class":325}," })",[315,877,427],{"class":420},[315,879,533],{"class":325},[315,881,883],{"class":317,"line":882},24,[315,884,885],{"class":538},"    \u002F\u002F Handler implementation\n",[315,887,889],{"class":317,"line":888},25,[315,890,831],{"class":325},[315,892,894,896],{"class":317,"line":893},26,[315,895,442],{"class":325},[315,897,445],{"class":329},[899,900,902],"h3",{"id":901},"common-zod-types","Common Zod Types",[904,905,906,922],"table",{},[907,908,909],"thead",{},[910,911,912,916,919],"tr",{},[913,914,915],"th",{},"Zod Type",[913,917,918],{},"Example",[913,920,921],{},"Description",[923,924,925,941,956,970,985,1000,1015,1030],"tbody",{},[910,926,927,933,938],{},[928,929,930],"td",{},[297,931,932],{},"z.string()",[928,934,935],{},[297,936,937],{},"z.string().min(1).max(100)",[928,939,940],{},"String with validation",[910,942,943,948,953],{},[928,944,945],{},[297,946,947],{},"z.number()",[928,949,950],{},[297,951,952],{},"z.number().min(0).max(100)",[928,954,955],{},"Number with validation",[910,957,958,963,967],{},[928,959,960],{},[297,961,962],{},"z.boolean()",[928,964,965],{},[297,966,962],{},[928,968,969],{},"Boolean value",[910,971,972,977,982],{},[928,973,974],{},[297,975,976],{},"z.array()",[928,978,979],{},[297,980,981],{},"z.array(z.string())",[928,983,984],{},"Array of values",[910,986,987,992,997],{},[928,988,989],{},[297,990,991],{},"z.object()",[928,993,994],{},[297,995,996],{},"z.object({ ... })",[928,998,999],{},"Nested object",[910,1001,1002,1007,1012],{},[928,1003,1004],{},[297,1005,1006],{},"z.enum()",[928,1008,1009],{},[297,1010,1011],{},"z.enum(['a', 'b'])",[928,1013,1014],{},"Enumeration",[910,1016,1017,1022,1027],{},[928,1018,1019],{},[297,1020,1021],{},"z.optional()",[928,1023,1024],{},[297,1025,1026],{},"z.string().optional()",[928,1028,1029],{},"Optional field",[910,1031,1032,1037,1042],{},[928,1033,1034],{},[297,1035,1036],{},"z.default()",[928,1038,1039],{},[297,1040,1041],{},"z.string().default('value')",[928,1043,1044],{},"Field with default",[288,1046,1048],{"id":1047},"output-schema","Output Schema",[293,1050,1051,1052,381],{},"Define structured output using ",[297,1053,1054],{},"outputSchema",[305,1056,1059],{"className":307,"code":1057,"filename":1058,"language":310,"meta":311,"style":311},"import { z } from 'zod'\nimport { defineMcpTool } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\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 \u002F (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      structuredContent: {\n        bmi: Math.round(bmi * 100) \u002F 100,\n        category,\n      },\n    }\n  },\n})\n","server\u002Fmcp\u002Ftools\u002Fbmi.ts",[297,1060,1061,1079,1097,1101,1113,1128,1143,1151,1183,1215,1219,1228,1245,1262,1266,1290,1319,1336,1368,1399,1427,1431,1438,1447,1480,1487,1492,1498,1503],{"__ignoreMap":311},[315,1062,1063,1065,1067,1069,1071,1073,1075,1077],{"class":317,"line":318},[315,1064,322],{"class":321},[315,1066,326],{"class":325},[315,1068,463],{"class":329},[315,1070,333],{"class":325},[315,1072,336],{"class":321},[315,1074,339],{"class":325},[315,1076,472],{"class":342},[315,1078,346],{"class":325},[315,1080,1081,1083,1085,1087,1089,1091,1093,1095],{"class":317,"line":349},[315,1082,322],{"class":321},[315,1084,326],{"class":325},[315,1086,330],{"class":329},[315,1088,333],{"class":325},[315,1090,336],{"class":321},[315,1092,339],{"class":325},[315,1094,343],{"class":342},[315,1096,346],{"class":325},[315,1098,1099],{"class":317,"line":356},[315,1100,353],{"emptyLinePlaceholder":352},[315,1102,1103,1105,1107,1109,1111],{"class":317,"line":374},[315,1104,359],{"class":321},[315,1106,362],{"class":321},[315,1108,330],{"class":365},[315,1110,368],{"class":329},[315,1112,371],{"class":325},[315,1114,1115,1117,1119,1121,1124,1126],{"class":317,"line":395},[315,1116,378],{"class":377},[315,1118,381],{"class":325},[315,1120,339],{"class":325},[315,1122,1123],{"class":342},"calculate-bmi",[315,1125,389],{"class":325},[315,1127,392],{"class":325},[315,1129,1130,1132,1134,1136,1139,1141],{"class":317,"line":412},[315,1131,398],{"class":377},[315,1133,381],{"class":325},[315,1135,339],{"class":325},[315,1137,1138],{"class":342},"Calculate Body Mass Index",[315,1140,389],{"class":325},[315,1142,392],{"class":325},[315,1144,1145,1147,1149],{"class":317,"line":439},[315,1146,528],{"class":377},[315,1148,381],{"class":325},[315,1150,533],{"class":325},[315,1152,1153,1156,1158,1160,1162,1164,1166,1168,1170,1172,1174,1177,1179,1181],{"class":317,"line":542},[315,1154,1155],{"class":377},"    weightKg",[315,1157,381],{"class":325},[315,1159,463],{"class":329},[315,1161,552],{"class":325},[315,1163,603],{"class":365},[315,1165,558],{"class":329},[315,1167,552],{"class":325},[315,1169,563],{"class":365},[315,1171,368],{"class":329},[315,1173,389],{"class":325},[315,1175,1176],{"class":342},"Weight in kilograms",[315,1178,389],{"class":325},[315,1180,575],{"class":329},[315,1182,392],{"class":325},[315,1184,1185,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1209,1211,1213],{"class":317,"line":580},[315,1186,1187],{"class":377},"    heightM",[315,1189,381],{"class":325},[315,1191,463],{"class":329},[315,1193,552],{"class":325},[315,1195,603],{"class":365},[315,1197,558],{"class":329},[315,1199,552],{"class":325},[315,1201,563],{"class":365},[315,1203,368],{"class":329},[315,1205,389],{"class":325},[315,1207,1208],{"class":342},"Height in meters",[315,1210,389],{"class":325},[315,1212,575],{"class":329},[315,1214,392],{"class":325},[315,1216,1217],{"class":317,"line":585},[315,1218,831],{"class":325},[315,1220,1221,1224,1226],{"class":317,"line":591},[315,1222,1223],{"class":377},"  outputSchema",[315,1225,381],{"class":325},[315,1227,533],{"class":325},[315,1229,1230,1233,1235,1237,1239,1241,1243],{"class":317,"line":625},[315,1231,1232],{"class":377},"    bmi",[315,1234,381],{"class":325},[315,1236,463],{"class":329},[315,1238,552],{"class":325},[315,1240,603],{"class":365},[315,1242,558],{"class":329},[315,1244,392],{"class":325},[315,1246,1247,1250,1252,1254,1256,1258,1260],{"class":317,"line":658},[315,1248,1249],{"class":377},"    category",[315,1251,381],{"class":325},[315,1253,463],{"class":329},[315,1255,552],{"class":325},[315,1257,555],{"class":365},[315,1259,558],{"class":329},[315,1261,392],{"class":325},[315,1263,1264],{"class":317,"line":663},[315,1265,831],{"class":325},[315,1267,1268,1270,1272,1274,1276,1279,1281,1284,1286,1288],{"class":317,"line":669},[315,1269,415],{"class":365},[315,1271,381],{"class":325},[315,1273,421],{"class":420},[315,1275,843],{"class":325},[315,1277,1278],{"class":846}," weightKg",[315,1280,745],{"class":325},[315,1282,1283],{"class":846}," heightM",[315,1285,875],{"class":325},[315,1287,427],{"class":420},[315,1289,533],{"class":325},[315,1291,1292,1295,1298,1301,1303,1306,1309,1312,1315,1317],{"class":317,"line":709},[315,1293,1294],{"class":420},"    const",[315,1296,1297],{"class":329}," bmi",[315,1299,1300],{"class":325}," =",[315,1302,1278],{"class":329},[315,1304,1305],{"class":325}," \u002F",[315,1307,1308],{"class":377}," (",[315,1310,1311],{"class":329},"heightM",[315,1313,1314],{"class":325}," *",[315,1316,1283],{"class":329},[315,1318,445],{"class":377},[315,1320,1321,1324,1327,1329,1331,1334],{"class":317,"line":714},[315,1322,1323],{"class":420},"    let",[315,1325,1326],{"class":329}," category",[315,1328,1300],{"class":325},[315,1330,339],{"class":325},[315,1332,1333],{"class":342},"Normal",[315,1335,346],{"class":325},[315,1337,1338,1341,1343,1346,1349,1353,1356,1359,1361,1363,1366],{"class":317,"line":720},[315,1339,1340],{"class":321},"    if",[315,1342,1308],{"class":377},[315,1344,1345],{"class":329},"bmi",[315,1347,1348],{"class":325}," \u003C",[315,1350,1352],{"class":1351},"sbssI"," 18.5",[315,1354,1355],{"class":377},") ",[315,1357,1358],{"class":329},"category",[315,1360,1300],{"class":325},[315,1362,339],{"class":325},[315,1364,1365],{"class":342},"Underweight",[315,1367,346],{"class":325},[315,1369,1370,1373,1376,1378,1380,1383,1386,1388,1390,1392,1394,1397],{"class":317,"line":775},[315,1371,1372],{"class":321},"    else",[315,1374,1375],{"class":321}," if",[315,1377,1308],{"class":377},[315,1379,1345],{"class":329},[315,1381,1382],{"class":325}," >=",[315,1384,1385],{"class":1351}," 25",[315,1387,1355],{"class":377},[315,1389,1358],{"class":329},[315,1391,1300],{"class":325},[315,1393,339],{"class":325},[315,1395,1396],{"class":342},"Overweight",[315,1398,346],{"class":325},[315,1400,1401,1403,1405,1407,1409,1411,1414,1416,1418,1420,1422,1425],{"class":317,"line":780},[315,1402,1372],{"class":321},[315,1404,1375],{"class":321},[315,1406,1308],{"class":377},[315,1408,1345],{"class":329},[315,1410,1382],{"class":325},[315,1412,1413],{"class":1351}," 30",[315,1415,1355],{"class":377},[315,1417,1358],{"class":329},[315,1419,1300],{"class":325},[315,1421,339],{"class":325},[315,1423,1424],{"class":342},"Obese",[315,1426,346],{"class":325},[315,1428,1429],{"class":317,"line":786},[315,1430,353],{"emptyLinePlaceholder":352},[315,1432,1433,1436],{"class":317,"line":828},[315,1434,1435],{"class":321},"    return",[315,1437,533],{"class":325},[315,1439,1440,1443,1445],{"class":317,"line":834},[315,1441,1442],{"class":377},"      structuredContent",[315,1444,381],{"class":325},[315,1446,533],{"class":325},[315,1448,1449,1452,1454,1457,1459,1462,1464,1466,1468,1471,1473,1476,1478],{"class":317,"line":882},[315,1450,1451],{"class":377},"        bmi",[315,1453,381],{"class":325},[315,1455,1456],{"class":329}," Math",[315,1458,552],{"class":325},[315,1460,1461],{"class":365},"round",[315,1463,368],{"class":377},[315,1465,1345],{"class":329},[315,1467,1314],{"class":325},[315,1469,1470],{"class":1351}," 100",[315,1472,1355],{"class":377},[315,1474,1475],{"class":325},"\u002F",[315,1477,1470],{"class":1351},[315,1479,392],{"class":325},[315,1481,1482,1485],{"class":317,"line":888},[315,1483,1484],{"class":329},"        category",[315,1486,392],{"class":325},[315,1488,1489],{"class":317,"line":893},[315,1490,1491],{"class":325},"      },\n",[315,1493,1495],{"class":317,"line":1494},27,[315,1496,1497],{"class":325},"    }\n",[315,1499,1501],{"class":317,"line":1500},28,[315,1502,831],{"class":325},[315,1504,1506,1508],{"class":317,"line":1505},29,[315,1507,442],{"class":325},[315,1509,445],{"class":329},[293,1511,295,1512,1515,1516,1518],{},[297,1513,1514],{},"structuredContent"," field provides structured data that matches your ",[297,1517,1054],{},", making it easier for AI assistants to work with the results.",[288,1520,1522],{"id":1521},"handler-function","Handler Function",[293,1524,1525,1526,1529],{},"The handler is an async function that receives validated input and returns results. You can return simplified values directly — they are automatically wrapped into the MCP ",[297,1527,1528],{},"CallToolResult"," format.",[899,1531,1533],{"id":1532},"simplified-returns","Simplified Returns",[293,1535,1536,1537,1539,1540,1539,1542,1545],{},"Return a ",[297,1538,555],{},", ",[297,1541,603],{},[297,1543,1544],{},"boolean",", object, or array directly from your handler:",[1547,1548,1549,1594,1634,1700],"code-group",{},[305,1550,1553],{"className":307,"code":1551,"filename":1552,"language":310,"meta":311,"style":311},"handler: async ({ name }) => `Hello ${name}`\n\u002F\u002F → { content: [{ type: 'text', text: 'Hello World' }] }\n","String",[297,1554,1555,1589],{"__ignoreMap":311},[315,1556,1557,1561,1563,1565,1567,1570,1572,1574,1577,1580,1583,1586],{"class":317,"line":318},[315,1558,1560],{"class":1559},"sBMFI","handler",[315,1562,381],{"class":325},[315,1564,421],{"class":420},[315,1566,843],{"class":325},[315,1568,1569],{"class":846}," name",[315,1571,875],{"class":325},[315,1573,427],{"class":420},[315,1575,1576],{"class":325}," `",[315,1578,1579],{"class":342},"Hello ",[315,1581,1582],{"class":325},"${",[315,1584,1585],{"class":329},"name",[315,1587,1588],{"class":325},"}`\n",[315,1590,1591],{"class":317,"line":349},[315,1592,1593],{"class":538},"\u002F\u002F → { content: [{ type: 'text', text: 'Hello World' }] }\n",[305,1595,1598],{"className":307,"code":1596,"filename":1597,"language":310,"meta":311,"style":311},"handler: async ({ a, b }) => a + b\n\u002F\u002F → { content: [{ type: 'text', text: '10' }] }\n","Number",[297,1599,1600,1629],{"__ignoreMap":311},[315,1601,1602,1604,1606,1608,1610,1612,1614,1616,1618,1620,1623,1626],{"class":317,"line":318},[315,1603,1560],{"class":1559},[315,1605,381],{"class":325},[315,1607,421],{"class":420},[315,1609,843],{"class":325},[315,1611,852],{"class":846},[315,1613,745],{"class":325},[315,1615,857],{"class":846},[315,1617,875],{"class":325},[315,1619,427],{"class":420},[315,1621,1622],{"class":329}," a ",[315,1624,1625],{"class":325},"+",[315,1627,1628],{"class":329}," b\n",[315,1630,1631],{"class":317,"line":349},[315,1632,1633],{"class":538},"\u002F\u002F → { content: [{ type: 'text', text: '10' }] }\n",[305,1635,1638],{"className":307,"code":1636,"filename":1637,"language":310,"meta":311,"style":311},"handler: async ({ id }) => {\n  const user = await getUser(id)\n  return user\n}\n\u002F\u002F → { content: [{ type: 'text', text: '{ \"id\": ... }' }] }\n","Object \u002F Array",[297,1639,1640,1659,1682,1690,1695],{"__ignoreMap":311},[315,1641,1642,1644,1646,1648,1650,1653,1655,1657],{"class":317,"line":318},[315,1643,1560],{"class":1559},[315,1645,381],{"class":325},[315,1647,421],{"class":420},[315,1649,843],{"class":325},[315,1651,1652],{"class":846}," id",[315,1654,875],{"class":325},[315,1656,427],{"class":420},[315,1658,533],{"class":325},[315,1660,1661,1664,1667,1669,1672,1675,1677,1680],{"class":317,"line":349},[315,1662,1663],{"class":420},"  const",[315,1665,1666],{"class":329}," user",[315,1668,1300],{"class":325},[315,1670,1671],{"class":321}," await",[315,1673,1674],{"class":365}," getUser",[315,1676,368],{"class":377},[315,1678,1679],{"class":329},"id",[315,1681,445],{"class":377},[315,1683,1684,1687],{"class":317,"line":356},[315,1685,1686],{"class":321},"  return",[315,1688,1689],{"class":329}," user\n",[315,1691,1692],{"class":317,"line":374},[315,1693,1694],{"class":325},"}\n",[315,1696,1697],{"class":317,"line":395},[315,1698,1699],{"class":538},"\u002F\u002F → { content: [{ type: 'text', text: '{ \"id\": ... }' }] }\n",[305,1701,1704],{"className":307,"code":1702,"filename":1703,"language":310,"meta":311,"style":311},"handler: async ({ id }) => await exists(id)\n\u002F\u002F → { content: [{ type: 'text', text: 'true' }] }\n","Boolean",[297,1705,1706,1730],{"__ignoreMap":311},[315,1707,1708,1710,1712,1714,1716,1718,1720,1722,1724,1727],{"class":317,"line":318},[315,1709,1560],{"class":1559},[315,1711,381],{"class":325},[315,1713,421],{"class":420},[315,1715,843],{"class":325},[315,1717,1652],{"class":846},[315,1719,875],{"class":325},[315,1721,427],{"class":420},[315,1723,1671],{"class":321},[315,1725,1726],{"class":365}," exists",[315,1728,1729],{"class":329},"(id)\n",[315,1731,1732],{"class":317,"line":349},[315,1733,1734],{"class":538},"\u002F\u002F → { content: [{ type: 'text', text: 'true' }] }\n",[293,1736,1737,1738,1740,1741,1743],{},"You can also return the full ",[297,1739,1528],{}," format when you need more control (e.g., images, multiple content items, ",[297,1742,1514],{},").",[899,1745,1747],{"id":1746},"content-types","Content Types",[293,1749,1750,1751,1753],{},"For advanced use cases, return a full ",[297,1752,1528],{}," with typed content:",[1547,1755,1756,1839,1898],{},[305,1757,1760],{"className":307,"code":1758,"filename":1759,"language":310,"meta":311,"style":311},"return {\n  content: [{\n    type: 'image',\n    data: base64ImageData,\n    mimeType: 'image\u002Fpng',\n  }],\n}\n","Image Content",[297,1761,1762,1769,1781,1797,1809,1825,1835],{"__ignoreMap":311},[315,1763,1764,1767],{"class":317,"line":318},[315,1765,1766],{"class":321},"return",[315,1768,533],{"class":325},[315,1770,1771,1774,1776,1779],{"class":317,"line":349},[315,1772,1773],{"class":377},"  content",[315,1775,381],{"class":325},[315,1777,1778],{"class":329}," [",[315,1780,371],{"class":325},[315,1782,1783,1786,1788,1790,1793,1795],{"class":317,"line":356},[315,1784,1785],{"class":377},"    type",[315,1787,381],{"class":325},[315,1789,339],{"class":325},[315,1791,1792],{"class":342},"image",[315,1794,389],{"class":325},[315,1796,392],{"class":325},[315,1798,1799,1802,1804,1807],{"class":317,"line":374},[315,1800,1801],{"class":377},"    data",[315,1803,381],{"class":325},[315,1805,1806],{"class":329}," base64ImageData",[315,1808,392],{"class":325},[315,1810,1811,1814,1816,1818,1821,1823],{"class":317,"line":395},[315,1812,1813],{"class":377},"    mimeType",[315,1815,381],{"class":325},[315,1817,339],{"class":325},[315,1819,1820],{"class":342},"image\u002Fpng",[315,1822,389],{"class":325},[315,1824,392],{"class":325},[315,1826,1827,1830,1833],{"class":317,"line":412},[315,1828,1829],{"class":325},"  }",[315,1831,1832],{"class":329},"]",[315,1834,392],{"class":325},[315,1836,1837],{"class":317,"line":439},[315,1838,1694],{"class":325},[305,1840,1843],{"className":307,"code":1841,"filename":1842,"language":310,"meta":311,"style":311},"return {\n  structuredContent: {\n    bmi: 25.5,\n    category: 'Normal',\n  },\n}\n\u002F\u002F text content is auto-generated as fallback for older clients\n","Structured Content",[297,1844,1845,1851,1860,1871,1885,1889,1893],{"__ignoreMap":311},[315,1846,1847,1849],{"class":317,"line":318},[315,1848,1766],{"class":321},[315,1850,533],{"class":325},[315,1852,1853,1856,1858],{"class":317,"line":349},[315,1854,1855],{"class":377},"  structuredContent",[315,1857,381],{"class":325},[315,1859,533],{"class":325},[315,1861,1862,1864,1866,1869],{"class":317,"line":356},[315,1863,1232],{"class":377},[315,1865,381],{"class":325},[315,1867,1868],{"class":1351}," 25.5",[315,1870,392],{"class":325},[315,1872,1873,1875,1877,1879,1881,1883],{"class":317,"line":374},[315,1874,1249],{"class":377},[315,1876,381],{"class":325},[315,1878,339],{"class":325},[315,1880,1333],{"class":342},[315,1882,389],{"class":325},[315,1884,392],{"class":325},[315,1886,1887],{"class":317,"line":395},[315,1888,831],{"class":325},[315,1890,1891],{"class":317,"line":412},[315,1892,1694],{"class":325},[315,1894,1895],{"class":317,"line":439},[315,1896,1897],{"class":538},"\u002F\u002F text content is auto-generated as fallback for older clients\n",[305,1899,1902],{"className":307,"code":1900,"filename":1901,"language":310,"meta":311,"style":311},"return {\n  content: [{\n    type: 'resource',\n    resource: {\n      uri: 'file:\u002F\u002F\u002Fpath\u002Fto\u002Ffile',\n      text: 'File content',\n      mimeType: 'text\u002Fplain',\n    },\n  }],\n}\n","Resource Reference",[297,1903,1904,1910,1920,1935,1944,1960,1976,1992,1997,2005],{"__ignoreMap":311},[315,1905,1906,1908],{"class":317,"line":318},[315,1907,1766],{"class":321},[315,1909,533],{"class":325},[315,1911,1912,1914,1916,1918],{"class":317,"line":349},[315,1913,1773],{"class":377},[315,1915,381],{"class":325},[315,1917,1778],{"class":329},[315,1919,371],{"class":325},[315,1921,1922,1924,1926,1928,1931,1933],{"class":317,"line":356},[315,1923,1785],{"class":377},[315,1925,381],{"class":325},[315,1927,339],{"class":325},[315,1929,1930],{"class":342},"resource",[315,1932,389],{"class":325},[315,1934,392],{"class":325},[315,1936,1937,1940,1942],{"class":317,"line":374},[315,1938,1939],{"class":377},"    resource",[315,1941,381],{"class":325},[315,1943,533],{"class":325},[315,1945,1946,1949,1951,1953,1956,1958],{"class":317,"line":395},[315,1947,1948],{"class":377},"      uri",[315,1950,381],{"class":325},[315,1952,339],{"class":325},[315,1954,1955],{"class":342},"file:\u002F\u002F\u002Fpath\u002Fto\u002Ffile",[315,1957,389],{"class":325},[315,1959,392],{"class":325},[315,1961,1962,1965,1967,1969,1972,1974],{"class":317,"line":412},[315,1963,1964],{"class":377},"      text",[315,1966,381],{"class":325},[315,1968,339],{"class":325},[315,1970,1971],{"class":342},"File content",[315,1973,389],{"class":325},[315,1975,392],{"class":325},[315,1977,1978,1981,1983,1985,1988,1990],{"class":317,"line":439},[315,1979,1980],{"class":377},"      mimeType",[315,1982,381],{"class":325},[315,1984,339],{"class":325},[315,1986,1987],{"class":342},"text\u002Fplain",[315,1989,389],{"class":325},[315,1991,392],{"class":325},[315,1993,1994],{"class":317,"line":542},[315,1995,1996],{"class":325},"    },\n",[315,1998,1999,2001,2003],{"class":317,"line":580},[315,2000,1829],{"class":325},[315,2002,1832],{"class":329},[315,2004,392],{"class":325},[315,2006,2007],{"class":317,"line":585},[315,2008,1694],{"class":325},[899,2010,2012],{"id":2011},"result-helpers","Result Helpers",[293,2014,2015,2016,2019,2020,2023],{},"The module provides ",[297,2017,2018],{},"imageResult"," and ",[297,2021,2022],{},"audioResult"," helpers for binary media in tool responses (base64-encoded data plus MIME type):",[305,2025,2027],{"className":307,"code":2026,"language":310,"meta":311,"style":311},"import { z } from 'zod'\nimport { defineMcpTool, imageResult, audioResult } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\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\u002Fpng')\n  },\n})\n",[297,2028,2029,2047,2075,2079,2091,2106,2137,2155,2176,2197,2201],{"__ignoreMap":311},[315,2030,2031,2033,2035,2037,2039,2041,2043,2045],{"class":317,"line":318},[315,2032,322],{"class":321},[315,2034,326],{"class":325},[315,2036,463],{"class":329},[315,2038,333],{"class":325},[315,2040,336],{"class":321},[315,2042,339],{"class":325},[315,2044,472],{"class":342},[315,2046,346],{"class":325},[315,2048,2049,2051,2053,2055,2057,2060,2062,2065,2067,2069,2071,2073],{"class":317,"line":349},[315,2050,322],{"class":321},[315,2052,326],{"class":325},[315,2054,330],{"class":329},[315,2056,745],{"class":325},[315,2058,2059],{"class":329}," imageResult",[315,2061,745],{"class":325},[315,2063,2064],{"class":329}," audioResult",[315,2066,333],{"class":325},[315,2068,336],{"class":321},[315,2070,339],{"class":325},[315,2072,343],{"class":342},[315,2074,346],{"class":325},[315,2076,2077],{"class":317,"line":356},[315,2078,353],{"emptyLinePlaceholder":352},[315,2080,2081,2083,2085,2087,2089],{"class":317,"line":374},[315,2082,359],{"class":321},[315,2084,362],{"class":321},[315,2086,330],{"class":365},[315,2088,368],{"class":329},[315,2090,371],{"class":325},[315,2092,2093,2095,2097,2099,2102,2104],{"class":317,"line":395},[315,2094,398],{"class":377},[315,2096,381],{"class":325},[315,2098,339],{"class":325},[315,2100,2101],{"class":342},"Generate chart",[315,2103,389],{"class":325},[315,2105,392],{"class":325},[315,2107,2108,2110,2112,2114,2117,2119,2121,2123,2125,2127,2129,2131,2134],{"class":317,"line":412},[315,2109,528],{"class":377},[315,2111,381],{"class":325},[315,2113,326],{"class":325},[315,2115,2116],{"class":377}," data",[315,2118,381],{"class":325},[315,2120,463],{"class":329},[315,2122,552],{"class":325},[315,2124,798],{"class":365},[315,2126,801],{"class":329},[315,2128,552],{"class":325},[315,2130,603],{"class":365},[315,2132,2133],{"class":329},"()) ",[315,2135,2136],{"class":325},"},\n",[315,2138,2139,2141,2143,2145,2147,2149,2151,2153],{"class":317,"line":439},[315,2140,415],{"class":365},[315,2142,381],{"class":325},[315,2144,421],{"class":420},[315,2146,843],{"class":325},[315,2148,2116],{"class":846},[315,2150,875],{"class":325},[315,2152,427],{"class":420},[315,2154,533],{"class":325},[315,2156,2157,2159,2162,2164,2166,2169,2171,2174],{"class":317,"line":542},[315,2158,1294],{"class":420},[315,2160,2161],{"class":329}," base64",[315,2163,1300],{"class":325},[315,2165,1671],{"class":321},[315,2167,2168],{"class":365}," generateChart",[315,2170,368],{"class":377},[315,2172,2173],{"class":329},"data",[315,2175,445],{"class":377},[315,2177,2178,2180,2182,2184,2187,2189,2191,2193,2195],{"class":317,"line":580},[315,2179,1435],{"class":321},[315,2181,2059],{"class":365},[315,2183,368],{"class":377},[315,2185,2186],{"class":329},"base64",[315,2188,745],{"class":325},[315,2190,339],{"class":325},[315,2192,1820],{"class":342},[315,2194,389],{"class":325},[315,2196,445],{"class":377},[315,2198,2199],{"class":317,"line":585},[315,2200,831],{"class":325},[315,2202,2203,2205],{"class":317,"line":591},[315,2204,442],{"class":325},[315,2206,445],{"class":329},[305,2208,2210],{"className":307,"code":2209,"language":310,"meta":311,"style":311},"import { z } from 'zod'\nimport { defineMcpTool, audioResult } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpTool({\n  description: 'Text to speech',\n  inputSchema: { text: z.string() },\n  handler: async ({ text }) => {\n    const base64 = await synthesizeSpeech(text)\n    return audioResult(base64, 'audio\u002Fmp3')\n  },\n})\n",[297,2211,2212,2230,2252,2256,2268,2283,2307,2325,2345,2366,2370],{"__ignoreMap":311},[315,2213,2214,2216,2218,2220,2222,2224,2226,2228],{"class":317,"line":318},[315,2215,322],{"class":321},[315,2217,326],{"class":325},[315,2219,463],{"class":329},[315,2221,333],{"class":325},[315,2223,336],{"class":321},[315,2225,339],{"class":325},[315,2227,472],{"class":342},[315,2229,346],{"class":325},[315,2231,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250],{"class":317,"line":349},[315,2233,322],{"class":321},[315,2235,326],{"class":325},[315,2237,330],{"class":329},[315,2239,745],{"class":325},[315,2241,2064],{"class":329},[315,2243,333],{"class":325},[315,2245,336],{"class":321},[315,2247,339],{"class":325},[315,2249,343],{"class":342},[315,2251,346],{"class":325},[315,2253,2254],{"class":317,"line":356},[315,2255,353],{"emptyLinePlaceholder":352},[315,2257,2258,2260,2262,2264,2266],{"class":317,"line":374},[315,2259,359],{"class":321},[315,2261,362],{"class":321},[315,2263,330],{"class":365},[315,2265,368],{"class":329},[315,2267,371],{"class":325},[315,2269,2270,2272,2274,2276,2279,2281],{"class":317,"line":395},[315,2271,398],{"class":377},[315,2273,381],{"class":325},[315,2275,339],{"class":325},[315,2277,2278],{"class":342},"Text to speech",[315,2280,389],{"class":325},[315,2282,392],{"class":325},[315,2284,2285,2287,2289,2291,2294,2296,2298,2300,2302,2305],{"class":317,"line":412},[315,2286,528],{"class":377},[315,2288,381],{"class":325},[315,2290,326],{"class":325},[315,2292,2293],{"class":377}," text",[315,2295,381],{"class":325},[315,2297,463],{"class":329},[315,2299,552],{"class":325},[315,2301,555],{"class":365},[315,2303,2304],{"class":329},"() ",[315,2306,2136],{"class":325},[315,2308,2309,2311,2313,2315,2317,2319,2321,2323],{"class":317,"line":439},[315,2310,415],{"class":365},[315,2312,381],{"class":325},[315,2314,421],{"class":420},[315,2316,843],{"class":325},[315,2318,2293],{"class":846},[315,2320,875],{"class":325},[315,2322,427],{"class":420},[315,2324,533],{"class":325},[315,2326,2327,2329,2331,2333,2335,2338,2340,2343],{"class":317,"line":542},[315,2328,1294],{"class":420},[315,2330,2161],{"class":329},[315,2332,1300],{"class":325},[315,2334,1671],{"class":321},[315,2336,2337],{"class":365}," synthesizeSpeech",[315,2339,368],{"class":377},[315,2341,2342],{"class":329},"text",[315,2344,445],{"class":377},[315,2346,2347,2349,2351,2353,2355,2357,2359,2362,2364],{"class":317,"line":580},[315,2348,1435],{"class":321},[315,2350,2064],{"class":365},[315,2352,368],{"class":377},[315,2354,2186],{"class":329},[315,2356,745],{"class":325},[315,2358,339],{"class":325},[315,2360,2361],{"class":342},"audio\u002Fmp3",[315,2363,389],{"class":325},[315,2365,445],{"class":377},[315,2367,2368],{"class":317,"line":585},[315,2369,831],{"class":325},[315,2371,2372,2374],{"class":317,"line":591},[315,2373,442],{"class":325},[315,2375,445],{"class":329},[2377,2378,295,2381,1539,2384,2387,2388,2391,2392,1743],"callout",{"color":2379,"icon":2380},"info","i-lucide-info",[297,2382,2383],{},"textResult",[297,2385,2386],{},"jsonResult",", and ",[297,2389,2390],{},"errorResult"," helpers are deprecated. Return values directly from your handler instead, and throw errors for error cases (see ",[2393,2394,61],"a",{"href":62},[2396,2397,2398],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}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 .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 .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .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}",{"title":311,"searchDepth":349,"depth":349,"links":2400},[2401,2404,2405],{"id":290,"depth":349,"text":291,"children":2402},[2403],{"id":901,"depth":356,"text":902},{"id":1047,"depth":349,"text":1048},{"id":1521,"depth":349,"text":1522,"children":2406},[2407,2408,2409],{"id":1532,"depth":356,"text":1533},{"id":1746,"depth":356,"text":1747},{"id":2011,"depth":356,"text":2012},"Define tool inputs and outputs with Zod, and return text, structured data, or media from handlers.","md",null,{},{"icon":54},{"title":2416,"description":2417},"Tool schema & handler","Zod input and output schemas, handler return types, image and audio helpers for MCP tools.","y_J0oF3WTxvfe1sgWGZPALkLKDwWK8Q3QuCqhBDF7qg",[2420,2422],{"title":46,"path":47,"stem":48,"description":2421,"icon":49,"children":-1},"Create MCP tools with Zod validation and type safety.",{"title":56,"path":57,"stem":58,"description":2423,"icon":59,"children":-1},"Behavioral hints for MCP clients and concrete inputExamples for complex tools.",1777888636365]