[{"data":1,"prerenderedAt":2165},["ShallowReactive",2],{"navigation_docs":3,"-advanced-elicitation":282,"-advanced-elicitation-surround":2160},[4,40,70,99,122,156,189,253],{"title":5,"path":6,"stem":7,"children":8,"page":39},"入门指南","\u002Fgetting-started","1.getting-started",[9,14,19,24,29,34],{"title":10,"path":11,"stem":12,"icon":13},"简介","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-book-open",{"title":15,"path":16,"stem":17,"icon":18},"安装","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"配置","\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},"工具","\u002Ftools","2.tools",[45,50,55,60,65],{"title":46,"path":47,"stem":48,"icon":49},"概览","\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},"注释与输入示例","\u002Ftools\u002Fannotations","2.tools\u002F2.annotations","i-lucide-badge-info",{"title":61,"path":62,"stem":63,"icon":64},"错误与缓存","\u002Ftools\u002Ferrors-caching","2.tools\u002F3.errors-caching","i-lucide-shield",{"title":66,"path":67,"stem":68,"icon":69},"分组、文件与动态注册","\u002Ftools\u002Fgroups-organization","2.tools\u002F4.groups-organization","i-lucide-tags",{"title":71,"path":72,"stem":73,"children":74,"page":39},"资源","\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},"静态资源与结构","\u002Fresources\u002Fstatic-and-structure","3.resources\u002F1.static-and-structure","i-lucide-file-stack",{"title":85,"path":86,"stem":87,"icon":88},"模板与处理程序","\u002Fresources\u002Ftemplates-and-handlers","3.resources\u002F2.templates-and-handlers","i-lucide-git-branch",{"title":90,"path":91,"stem":92,"icon":93},"元数据、内容与错误","\u002Fresources\u002Fcontent-metadata-errors","3.resources\u002F3.content-metadata-errors","i-lucide-layers",{"title":95,"path":96,"stem":97,"icon":98},"分组与组织","\u002Fresources\u002Forganization","3.resources\u002F4.organization","i-lucide-folder-tree",{"title":100,"path":101,"stem":102,"children":103,"page":39},"提示词","\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},"编写与结构","\u002Fprompts\u002Fauthoring","4.prompts\u002F1.authoring","i-lucide-pen-line",{"title":114,"path":115,"stem":116,"icon":93},"输入、处理器与消息","\u002Fprompts\u002Finput-handler-messages","4.prompts\u002F2.input-handler-messages",{"title":118,"path":119,"stem":120,"icon":121},"模式与高级用法","\u002Fprompts\u002Fpatterns-advanced","4.prompts\u002F3.patterns-advanced","i-lucide-line-chart",{"title":123,"path":124,"stem":125,"children":126,"page":39},"处理器","\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},"默认与自定义处理器","\u002Fhandlers\u002Fdefault-and-custom","5.handlers\u002F1.default-and-custom","i-lucide-toggle-left",{"title":137,"path":138,"stem":139,"icon":140},"结构与选项","\u002Fhandlers\u002Fstructure-and-options","5.handlers\u002F2.structure-and-options","i-lucide-sliders-horizontal",{"title":142,"path":143,"stem":144,"icon":145},"示例与路由","\u002Fhandlers\u002Fexamples-routing","5.handlers\u002F3.examples-routing","i-lucide-route",{"title":147,"path":148,"stem":149,"icon":150},"分享与实践","\u002Fhandlers\u002Fsharing-practices","5.handlers\u002F4.sharing-practices","i-lucide-share-2",{"title":152,"path":153,"stem":154,"icon":155},"多处理器组织","\u002Fhandlers\u002Forganization","5.handlers\u002F5.organization","i-lucide-network",{"title":157,"path":158,"stem":159,"children":160,"page":39},"应用","\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},"编写与 defineMcpApp","\u002Fapps\u002Fauthoring","6.apps\u002F1.authoring","i-lucide-code-2",{"title":171,"path":172,"stem":173,"icon":174},"useMcpApp() 桥接","\u002Fapps\u002Fuse-mcp-app","6.apps\u002F2.use-mcp-app","i-lucide-message-circle",{"title":176,"path":177,"stem":178,"icon":64},"CSP 与构建流水线","\u002Fapps\u002Fcsp-and-wiring","6.apps\u002F3.csp-and-wiring",{"title":180,"path":181,"stem":182,"icon":183},"测试与发布","\u002Fapps\u002Ftesting-publishing","6.apps\u002F4.testing-publishing","i-lucide-rocket",{"title":185,"path":186,"stem":187,"icon":188},"模式与限制","\u002Fapps\u002Fpatterns-reference","6.apps\u002F5.patterns-reference","i-lucide-book-marked",{"title":190,"path":191,"stem":192,"children":193,"page":39},"进阶主题","\u002Fadvanced","7.advanced",[194,199,204,209,214,218,223,228,233,238,243,248],{"title":195,"path":196,"stem":197,"icon":198},"自定义路径","\u002Fadvanced\u002Fcustom-paths","7.advanced\u002F1.custom-paths","i-lucide-folder",{"title":200,"path":201,"stem":202,"icon":203},"日志","\u002Fadvanced\u002Flogging","7.advanced\u002F10.logging","i-lucide-scroll-text",{"title":205,"path":206,"stem":207,"icon":208},"MCP Apps 内部机制","\u002Fadvanced\u002Fmcp-apps-internals","7.advanced\u002F11.mcp-apps-internals","i-lucide-cog",{"title":210,"path":211,"stem":212,"icon":213},"列出定义","\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 评估","\u002Fadvanced\u002Fevals","7.advanced\u002F5.evals","i-lucide-flask-conical",{"title":234,"path":235,"stem":236,"icon":237},"会话","\u002Fadvanced\u002Fsessions","7.advanced\u002F6.sessions","i-lucide-database",{"title":239,"path":240,"stem":241,"icon":242},"动态定义","\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},"启发式询问","\u002Fadvanced\u002Felicitation","7.advanced\u002F9.elicitation","i-lucide-message-square-quote",{"title":254,"path":255,"stem":256,"children":257,"page":39},"示例","\u002Fexamples","8.examples",[258,263,268,273,278],{"title":259,"path":260,"stem":261,"icon":262},"身份验证","\u002Fexamples\u002Fauthentication","8.examples\u002F1.authentication","i-lucide-shield-check",{"title":264,"path":265,"stem":266,"icon":267},"API 集成","\u002Fexamples\u002Fapi-integration","8.examples\u002F2.api-integration","i-lucide-globe",{"title":269,"path":270,"stem":271,"icon":272},"常见模式","\u002Fexamples\u002Fcommon-patterns","8.examples\u002F3.common-patterns","i-lucide-lightbulb",{"title":274,"path":275,"stem":276,"icon":277},"文件操作","\u002Fexamples\u002Ffile-operations","8.examples\u002F4.file-operations","i-lucide-file",{"title":279,"path":280,"stem":281,"icon":107},"提示词示例","\u002Fexamples\u002Fprompt-examples","8.examples\u002F5.prompt-examples",{"id":283,"title":284,"body":285,"description":2151,"extension":2152,"links":2153,"meta":2154,"navigation":2155,"path":250,"seo":2156,"stem":251,"__hash__":2159},"docs\u002F7.advanced\u002F9.elicitation.md","向用户请求输入：启发式询问",{"type":286,"value":287,"toc":2138},"minimark",[288,293,302,323,388,391,468,478,484,487,1039,1046,1051,1121,1137,1141,1151,1154,1197,1200,1228,1234,1238,1489,1503,1506,1517,1800,1809,1812,1815,1883,1901,2063,2066,2093,2096,2134],[289,290,292],"h2",{"id":291},"什么是启发式询问","什么是启发式询问？",[294,295,296,297,301],"p",{},"启发式询问允许服务器在",[298,299,300],"strong",{},"请求进行中","向已连接的客户端请求额外信息。MCP 规范定义了两种模式：",[303,304,305,312],"ul",{},[306,307,308,311],"li",{},[298,309,310],{},"表单模式"," — 向用户展示一个结构化表单，并根据你定义的 schema 验证响应。",[306,313,314,317,318,322],{},[298,315,316],{},"URL 模式"," ",[319,320,321],"em",{},"(spec 2025-11-25)"," — 将用户重定向到外部页面（登录、支付、账户验证等），并在他们返回后继续。",[324,325,328,331,379],"prompt",{":actions":326,"description":327,"icon":252},"[\"copy\",\"cursor\",\"windsurf\"]","添加 MCP 启发式询问（表单与 URL）",[294,329,330],{},"为我的 Nuxt MCP 服务器（@nuxtjs\u002Fmcp-toolkit）添加启发式询问。",[303,332,333,336,347,350,353,363,369,376],{},[306,334,335],{},"在工具处理器中使用 useMcpElicitation()（自动导入）",[306,337,338,339,343,344],{},"表单模式：通过 ",[340,341,342],"code",{},"schema"," 传入 Zod 原始形状，并传入易于理解的 ",[340,345,346],{},"message",[306,348,349],{},"该形状必须是扁平的 — 仅支持原始类型、单选\u002F多选枚举（规范限制）",[306,351,352],{},"在读取内容之前，始终检查 action: 'accept' | 'decline' | 'cancel'",[306,354,355,356,359,360,362],{},"URL 模式：传入 ",[340,357,358],{},"url"," 和 ",[340,361,346],{},"；客户端打开 URL 并返回结果",[306,364,365,366],{},"对快速的是\u002F否提示，使用 ",[340,367,368],{},"confirm(message)",[306,370,371,372,375],{},"在调用前使用 ",[340,373,374],{},"supports('form' | 'url')"," 进行判断，以便在客户端不支持时优雅降级",[306,377,378],{},"使用 try\u002Fcatch 包裹，并检查 McpElicitationError（codes: 'unsupported', 'invalid-schema', 'invalid-response'）",[294,380,381,382],{},"文档：",[383,384,385],"a",{"href":385,"rel":386},"https:\u002F\u002Fmcp-toolkit.nuxt.dev\u002Fadvanced\u002Felicitation",[387],"nofollow",[289,389,390],{"id":390},"何时使用启发式询问",[392,393,394,407],"table",{},[395,396,397],"thead",{},[398,399,400,404],"tr",{},[401,402,403],"th",{},"使用场景",[401,405,406],{},"模式",[408,409,410,422,432,441,450,459],"tbody",{},[398,411,412,416],{},[413,414,415],"td",{},"消歧输入（“你指的是哪个项目？”）",[413,417,418,419],{},"带枚举的 ",[340,420,421],{},"form",[398,423,424,427],{},[413,425,426],{},"在执行破坏性操作前确认",[413,428,429],{},[340,430,431],{},"confirm",[398,433,434,437],{},[413,435,436],{},"交互式收集缺失的必需参数",[413,438,439],{},[340,440,421],{},[398,442,443,446],{},[413,444,445],{},"在提交前收集可选元数据（优先级、标签等）",[413,447,448],{},[340,449,421],{},[398,451,452,455],{},[413,453,454],{},"通过外部页面提示登录或支付",[413,456,457],{},[340,458,358],{},[398,460,461,464],{},[413,462,463],{},"触发 OAuth 同意流程",[413,465,466],{},[340,467,358],{},[469,470,473,474,477],"callout",{"color":471,"icon":472},"info","i-lucide-info","启发式询问是",[298,475,476],{},"由客户端驱动","的。即使你在服务端调用它，真正渲染表单或打开 URL 的也是客户端。务必处理用户拒绝或客户端不支持所请求模式的情况。",[289,479,481],{"id":480},"usemcpelicitation",[340,482,483],{},"useMcpElicitation()",[294,485,486],{},"自动导入。必须在工具、资源或提示处理器中调用。",[488,489,495],"pre",{"className":490,"code":491,"filename":492,"language":493,"meta":494,"style":494},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { z } from 'zod'\nimport { defineMcpTool } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpTool({\n  name: 'create_release',\n  description: '在询问发布通道后创建一个新版本',\n  inputSchema: {\n    name: z.string(),\n  },\n  handler: async ({ name }) => {\n    const elicit = useMcpElicitation()\n\n    const result = await elicit.form({\n      message: `为 \"${name}\" 选择一个发布通道`,\n      schema: {\n        channel: z.enum(['stable', 'beta', 'canary']).describe('发布通道'),\n        notify: z.boolean().default(true).describe('通知订阅者'),\n      },\n    })\n\n    if (result.action !== 'accept') {\n      return `发布已取消（${result.action}）。`\n    }\n\n    return `已在 ${result.content.channel} 上创建 \"${name}\"（notify=${result.content.notify}）。`\n  },\n})\n","server\u002Fmcp\u002Ftools\u002Frelease.ts","typescript","",[340,496,497,530,551,558,576,597,614,625,646,652,679,697,702,725,756,766,832,879,885,894,899,931,958,964,969,1027,1032],{"__ignoreMap":494},[498,499,502,506,510,514,517,520,523,527],"span",{"class":500,"line":501},"line",1,[498,503,505],{"class":504},"s7zQu","import",[498,507,509],{"class":508},"sMK4o"," {",[498,511,513],{"class":512},"sTEyZ"," z",[498,515,516],{"class":508}," }",[498,518,519],{"class":504}," from",[498,521,522],{"class":508}," '",[498,524,526],{"class":525},"sfazB","zod",[498,528,529],{"class":508},"'\n",[498,531,533,535,537,540,542,544,546,549],{"class":500,"line":532},2,[498,534,505],{"class":504},[498,536,509],{"class":508},[498,538,539],{"class":512}," defineMcpTool",[498,541,516],{"class":508},[498,543,519],{"class":504},[498,545,522],{"class":508},[498,547,548],{"class":525},"@nuxtjs\u002Fmcp-toolkit\u002Fserver",[498,550,529],{"class":508},[498,552,554],{"class":500,"line":553},3,[498,555,557],{"emptyLinePlaceholder":556},true,"\n",[498,559,561,564,567,570,573],{"class":500,"line":560},4,[498,562,563],{"class":504},"export",[498,565,566],{"class":504}," default",[498,568,539],{"class":569},"s2Zo4",[498,571,572],{"class":512},"(",[498,574,575],{"class":508},"{\n",[498,577,579,583,586,588,591,594],{"class":500,"line":578},5,[498,580,582],{"class":581},"swJcz","  name",[498,584,585],{"class":508},":",[498,587,522],{"class":508},[498,589,590],{"class":525},"create_release",[498,592,593],{"class":508},"'",[498,595,596],{"class":508},",\n",[498,598,600,603,605,607,610,612],{"class":500,"line":599},6,[498,601,602],{"class":581},"  description",[498,604,585],{"class":508},[498,606,522],{"class":508},[498,608,609],{"class":525},"在询问发布通道后创建一个新版本",[498,611,593],{"class":508},[498,613,596],{"class":508},[498,615,617,620,622],{"class":500,"line":616},7,[498,618,619],{"class":581},"  inputSchema",[498,621,585],{"class":508},[498,623,624],{"class":508}," {\n",[498,626,628,631,633,635,638,641,644],{"class":500,"line":627},8,[498,629,630],{"class":581},"    name",[498,632,585],{"class":508},[498,634,513],{"class":512},[498,636,637],{"class":508},".",[498,639,640],{"class":569},"string",[498,642,643],{"class":512},"()",[498,645,596],{"class":508},[498,647,649],{"class":500,"line":648},9,[498,650,651],{"class":508},"  },\n",[498,653,655,658,660,664,667,671,674,677],{"class":500,"line":654},10,[498,656,657],{"class":569},"  handler",[498,659,585],{"class":508},[498,661,663],{"class":662},"spNyl"," async",[498,665,666],{"class":508}," ({",[498,668,670],{"class":669},"sHdIc"," name",[498,672,673],{"class":508}," })",[498,675,676],{"class":662}," =>",[498,678,624],{"class":508},[498,680,682,685,688,691,694],{"class":500,"line":681},11,[498,683,684],{"class":662},"    const",[498,686,687],{"class":512}," elicit",[498,689,690],{"class":508}," =",[498,692,693],{"class":569}," useMcpElicitation",[498,695,696],{"class":581},"()\n",[498,698,700],{"class":500,"line":699},12,[498,701,557],{"emptyLinePlaceholder":556},[498,703,705,707,710,712,715,717,719,721,723],{"class":500,"line":704},13,[498,706,684],{"class":662},[498,708,709],{"class":512}," result",[498,711,690],{"class":508},[498,713,714],{"class":504}," await",[498,716,687],{"class":512},[498,718,637],{"class":508},[498,720,421],{"class":569},[498,722,572],{"class":581},[498,724,575],{"class":508},[498,726,728,731,733,736,739,742,745,748,751,754],{"class":500,"line":727},14,[498,729,730],{"class":581},"      message",[498,732,585],{"class":508},[498,734,735],{"class":508}," `",[498,737,738],{"class":525},"为 \"",[498,740,741],{"class":508},"${",[498,743,744],{"class":512},"name",[498,746,747],{"class":508},"}",[498,749,750],{"class":525},"\" 选择一个发布通道",[498,752,753],{"class":508},"`",[498,755,596],{"class":508},[498,757,759,762,764],{"class":500,"line":758},15,[498,760,761],{"class":581},"      schema",[498,763,585],{"class":508},[498,765,624],{"class":508},[498,767,769,772,774,776,778,781,784,786,789,791,794,796,799,801,803,805,808,810,813,815,818,820,822,825,827,830],{"class":500,"line":768},16,[498,770,771],{"class":581},"        channel",[498,773,585],{"class":508},[498,775,513],{"class":512},[498,777,637],{"class":508},[498,779,780],{"class":569},"enum",[498,782,783],{"class":581},"([",[498,785,593],{"class":508},[498,787,788],{"class":525},"stable",[498,790,593],{"class":508},[498,792,793],{"class":508},",",[498,795,522],{"class":508},[498,797,798],{"class":525},"beta",[498,800,593],{"class":508},[498,802,793],{"class":508},[498,804,522],{"class":508},[498,806,807],{"class":525},"canary",[498,809,593],{"class":508},[498,811,812],{"class":581},"])",[498,814,637],{"class":508},[498,816,817],{"class":569},"describe",[498,819,572],{"class":581},[498,821,593],{"class":508},[498,823,824],{"class":525},"发布通道",[498,826,593],{"class":508},[498,828,829],{"class":581},")",[498,831,596],{"class":508},[498,833,835,838,840,842,844,847,849,851,854,856,860,862,864,866,868,870,873,875,877],{"class":500,"line":834},17,[498,836,837],{"class":581},"        notify",[498,839,585],{"class":508},[498,841,513],{"class":512},[498,843,637],{"class":508},[498,845,846],{"class":569},"boolean",[498,848,643],{"class":581},[498,850,637],{"class":508},[498,852,853],{"class":569},"default",[498,855,572],{"class":581},[498,857,859],{"class":858},"sfNiH","true",[498,861,829],{"class":581},[498,863,637],{"class":508},[498,865,817],{"class":569},[498,867,572],{"class":581},[498,869,593],{"class":508},[498,871,872],{"class":525},"通知订阅者",[498,874,593],{"class":508},[498,876,829],{"class":581},[498,878,596],{"class":508},[498,880,882],{"class":500,"line":881},18,[498,883,884],{"class":508},"      },\n",[498,886,888,891],{"class":500,"line":887},19,[498,889,890],{"class":508},"    }",[498,892,893],{"class":581},")\n",[498,895,897],{"class":500,"line":896},20,[498,898,557],{"emptyLinePlaceholder":556},[498,900,902,905,908,911,913,916,919,921,924,926,929],{"class":500,"line":901},21,[498,903,904],{"class":504},"    if",[498,906,907],{"class":581}," (",[498,909,910],{"class":512},"result",[498,912,637],{"class":508},[498,914,915],{"class":512},"action",[498,917,918],{"class":508}," !==",[498,920,522],{"class":508},[498,922,923],{"class":525},"accept",[498,925,593],{"class":508},[498,927,928],{"class":581},") ",[498,930,575],{"class":508},[498,932,934,937,939,942,944,946,948,950,952,955],{"class":500,"line":933},22,[498,935,936],{"class":504},"      return",[498,938,735],{"class":508},[498,940,941],{"class":525},"发布已取消（",[498,943,741],{"class":508},[498,945,910],{"class":512},[498,947,637],{"class":508},[498,949,915],{"class":512},[498,951,747],{"class":508},[498,953,954],{"class":525},"）。",[498,956,957],{"class":508},"`\n",[498,959,961],{"class":500,"line":960},23,[498,962,963],{"class":508},"    }\n",[498,965,967],{"class":500,"line":966},24,[498,968,557],{"emptyLinePlaceholder":556},[498,970,972,975,977,980,982,984,986,989,991,994,996,999,1001,1003,1005,1008,1010,1012,1014,1016,1018,1021,1023,1025],{"class":500,"line":971},25,[498,973,974],{"class":504},"    return",[498,976,735],{"class":508},[498,978,979],{"class":525},"已在 ",[498,981,741],{"class":508},[498,983,910],{"class":512},[498,985,637],{"class":508},[498,987,988],{"class":512},"content",[498,990,637],{"class":508},[498,992,993],{"class":512},"channel",[498,995,747],{"class":508},[498,997,998],{"class":525}," 上创建 \"",[498,1000,741],{"class":508},[498,1002,744],{"class":512},[498,1004,747],{"class":508},[498,1006,1007],{"class":525},"\"（notify=",[498,1009,741],{"class":508},[498,1011,910],{"class":512},[498,1013,637],{"class":508},[498,1015,988],{"class":512},[498,1017,637],{"class":508},[498,1019,1020],{"class":512},"notify",[498,1022,747],{"class":508},[498,1024,954],{"class":525},[498,1026,957],{"class":508},[498,1028,1030],{"class":500,"line":1029},26,[498,1031,651],{"class":508},[498,1033,1035,1037],{"class":500,"line":1034},27,[498,1036,747],{"class":508},[498,1038,893],{"class":512},[294,1040,1041,1042,1045],{},"Zod 形状会被转换为符合规范限制的 JSON Schema，响应会根据相同的形状进行验证，并且 ",[340,1043,1044],{},"result.content"," 的类型是完全推断好的。",[1047,1048,1050],"h3",{"id":1049},"api","API",[392,1052,1053,1063],{},[395,1054,1055],{},[398,1056,1057,1060],{},[401,1058,1059],{},"方法",[401,1061,1062],{},"描述",[408,1064,1065,1086,1099,1113],{},[398,1066,1067,1072],{},[413,1068,1069],{},[340,1070,1071],{},"form({ message, schema })",[413,1073,1074,1075,1077,1078,1081,1082,1085],{},"请求结构化输入。",[340,1076,342],{}," 是一个 Zod 原始形状（与 ",[340,1079,1080],{},"inputSchema"," 格式相同）。返回 ",[340,1083,1084],{},"{ action, content? }","。",[398,1087,1088,1093],{},[413,1089,1090],{},[340,1091,1092],{},"url({ message, url })",[413,1094,1095,1096,1085],{},"打开外部 URL。返回 ",[340,1097,1098],{},"{ action }",[398,1100,1101,1105],{},[413,1102,1103],{},[340,1104,368],{},[413,1106,1107,1108,1110,1111,954],{},"便捷的是\u002F否提示。返回 ",[340,1109,846],{},"（只有用户接受并确认时才为 ",[340,1112,859],{},[398,1114,1115,1118],{},[413,1116,1117],{},"`supports('form'",[413,1119,1120],{},"'url')`",[294,1122,1123,1125,1126,1129,1130,1133,1134,1136],{},[340,1124,915],{}," 的值为 ",[340,1127,1128],{},"'accept' | 'decline' | 'cancel'"," 之一。只有当 ",[340,1131,1132],{},"action === 'accept'"," 时，",[340,1135,988],{}," 字段才会存在。",[289,1138,1140],{"id":1139},"schema-限制表单模式","Schema 限制（表单模式）",[294,1142,1143,1144,1147,1148,1085],{},"MCP 规范将启发式询问请求限制为",[298,1145,1146],{},"仅包含原始属性的扁平对象","，以便任何客户端都能将其渲染为表单。工具包会在请求时强制执行这一限制，并在你违反时抛出 ",[340,1149,1150],{},"McpElicitationError('invalid-schema')",[294,1152,1153],{},"允许：",[303,1155,1156,1174,1180,1186],{},[306,1157,1158,1161,1162,1161,1165,1161,1168,1161,1171],{},[340,1159,1160],{},"z.string()",", ",[340,1163,1164],{},"z.number()",[340,1166,1167],{},"z.boolean()",[340,1169,1170],{},"z.string().email()",[340,1172,1173],{},"z.number().int()",[306,1175,1176,1179],{},[340,1177,1178],{},"z.enum([...])"," — 单选下拉",[306,1181,1182,1185],{},[340,1183,1184],{},"z.array(z.enum([...]))"," — 多选",[306,1187,1188,1161,1191,1161,1194],{},[340,1189,1190],{},".describe(...)",[340,1192,1193],{},".default(...)",[340,1195,1196],{},".optional()",[294,1198,1199],{},"不允许：",[303,1201,1202,1208,1214],{},[306,1203,1204,1205],{},"嵌套的 ",[340,1206,1207],{},"z.object({ ... })",[306,1209,1210,1213],{},[340,1211,1212],{},"z.array(z.number())"," 或任何非字符串枚举数组",[306,1215,1216,1161,1219,1161,1222,1161,1225],{},[340,1217,1218],{},"z.record(...)",[340,1220,1221],{},"z.tuple(...)",[340,1223,1224],{},"z.union(...)",[340,1226,1227],{},"z.discriminatedUnion(...)",[294,1229,1230,1231,1233],{},"需要更丰富的输入？可以拆分为多次启发式询问调用，或者通过常规的 ",[340,1232,1080],{}," 接收数据。",[289,1235,1237],{"id":1236},"confirm-帮助器","Confirm 帮助器",[488,1239,1242],{"className":490,"code":1240,"filename":1241,"language":493,"meta":494,"style":494},"import { z } from 'zod'\nimport { defineMcpTool } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpTool({\n  name: 'delete_project',\n  description: '在与用户确认后删除项目',\n  inputSchema: { id: z.string() },\n  handler: async ({ id }) => {\n    const elicit = useMcpElicitation()\n\n    if (!await elicit.confirm(`永久删除项目 ${id}？`)) {\n      return '已中止。'\n    }\n\n    await deleteProject(id)\n    return `已删除 ${id}。`\n  },\n})\n","server\u002Fmcp\u002Ftools\u002Fdelete-project.ts",[340,1243,1244,1262,1280,1284,1296,1311,1326,1351,1369,1381,1385,1427,1438,1442,1446,1460,1479,1483],{"__ignoreMap":494},[498,1245,1246,1248,1250,1252,1254,1256,1258,1260],{"class":500,"line":501},[498,1247,505],{"class":504},[498,1249,509],{"class":508},[498,1251,513],{"class":512},[498,1253,516],{"class":508},[498,1255,519],{"class":504},[498,1257,522],{"class":508},[498,1259,526],{"class":525},[498,1261,529],{"class":508},[498,1263,1264,1266,1268,1270,1272,1274,1276,1278],{"class":500,"line":532},[498,1265,505],{"class":504},[498,1267,509],{"class":508},[498,1269,539],{"class":512},[498,1271,516],{"class":508},[498,1273,519],{"class":504},[498,1275,522],{"class":508},[498,1277,548],{"class":525},[498,1279,529],{"class":508},[498,1281,1282],{"class":500,"line":553},[498,1283,557],{"emptyLinePlaceholder":556},[498,1285,1286,1288,1290,1292,1294],{"class":500,"line":560},[498,1287,563],{"class":504},[498,1289,566],{"class":504},[498,1291,539],{"class":569},[498,1293,572],{"class":512},[498,1295,575],{"class":508},[498,1297,1298,1300,1302,1304,1307,1309],{"class":500,"line":578},[498,1299,582],{"class":581},[498,1301,585],{"class":508},[498,1303,522],{"class":508},[498,1305,1306],{"class":525},"delete_project",[498,1308,593],{"class":508},[498,1310,596],{"class":508},[498,1312,1313,1315,1317,1319,1322,1324],{"class":500,"line":599},[498,1314,602],{"class":581},[498,1316,585],{"class":508},[498,1318,522],{"class":508},[498,1320,1321],{"class":525},"在与用户确认后删除项目",[498,1323,593],{"class":508},[498,1325,596],{"class":508},[498,1327,1328,1330,1332,1334,1337,1339,1341,1343,1345,1348],{"class":500,"line":616},[498,1329,619],{"class":581},[498,1331,585],{"class":508},[498,1333,509],{"class":508},[498,1335,1336],{"class":581}," id",[498,1338,585],{"class":508},[498,1340,513],{"class":512},[498,1342,637],{"class":508},[498,1344,640],{"class":569},[498,1346,1347],{"class":512},"() ",[498,1349,1350],{"class":508},"},\n",[498,1352,1353,1355,1357,1359,1361,1363,1365,1367],{"class":500,"line":627},[498,1354,657],{"class":569},[498,1356,585],{"class":508},[498,1358,663],{"class":662},[498,1360,666],{"class":508},[498,1362,1336],{"class":669},[498,1364,673],{"class":508},[498,1366,676],{"class":662},[498,1368,624],{"class":508},[498,1370,1371,1373,1375,1377,1379],{"class":500,"line":648},[498,1372,684],{"class":662},[498,1374,687],{"class":512},[498,1376,690],{"class":508},[498,1378,693],{"class":569},[498,1380,696],{"class":581},[498,1382,1383],{"class":500,"line":654},[498,1384,557],{"emptyLinePlaceholder":556},[498,1386,1387,1389,1391,1394,1397,1399,1401,1403,1405,1407,1410,1412,1415,1417,1420,1422,1425],{"class":500,"line":681},[498,1388,904],{"class":504},[498,1390,907],{"class":581},[498,1392,1393],{"class":508},"!",[498,1395,1396],{"class":504},"await",[498,1398,687],{"class":512},[498,1400,637],{"class":508},[498,1402,431],{"class":569},[498,1404,572],{"class":581},[498,1406,753],{"class":508},[498,1408,1409],{"class":525},"永久删除项目 ",[498,1411,741],{"class":508},[498,1413,1414],{"class":512},"id",[498,1416,747],{"class":508},[498,1418,1419],{"class":525},"？",[498,1421,753],{"class":508},[498,1423,1424],{"class":581},")) ",[498,1426,575],{"class":508},[498,1428,1429,1431,1433,1436],{"class":500,"line":699},[498,1430,936],{"class":504},[498,1432,522],{"class":508},[498,1434,1435],{"class":525},"已中止。",[498,1437,529],{"class":508},[498,1439,1440],{"class":500,"line":704},[498,1441,963],{"class":508},[498,1443,1444],{"class":500,"line":727},[498,1445,557],{"emptyLinePlaceholder":556},[498,1447,1448,1451,1454,1456,1458],{"class":500,"line":758},[498,1449,1450],{"class":504},"    await",[498,1452,1453],{"class":569}," deleteProject",[498,1455,572],{"class":581},[498,1457,1414],{"class":512},[498,1459,893],{"class":581},[498,1461,1462,1464,1466,1469,1471,1473,1475,1477],{"class":500,"line":768},[498,1463,974],{"class":504},[498,1465,735],{"class":508},[498,1467,1468],{"class":525},"已删除 ",[498,1470,741],{"class":508},[498,1472,1414],{"class":512},[498,1474,747],{"class":508},[498,1476,1085],{"class":525},[498,1478,957],{"class":508},[498,1480,1481],{"class":500,"line":834},[498,1482,651],{"class":508},[498,1484,1485,1487],{"class":500,"line":881},[498,1486,747],{"class":508},[498,1488,893],{"class":512},[294,1490,1491,1494,1495,1498,1499,1502],{},[340,1492,1493],{},"confirm()"," 基于带有单个 ",[340,1496,1497],{},"confirm: z.boolean()"," 字段的 ",[340,1500,1501],{},"form()"," 构建，因此它继承了相同的能力检查和拒绝处理。",[289,1504,316],{"id":1505},"url-模式",[294,1507,1508,1509,1512,1513,1516],{},"根据规范，URL 模式是可选启用的——客户端必须在其能力中声明 ",[340,1510,1511],{},"elicitation.url","。使用 ",[340,1514,1515],{},"supports('url')"," 进行优雅分支：",[488,1518,1521],{"className":490,"code":1519,"filename":1520,"language":493,"meta":494,"style":494},"import { defineMcpTool } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpTool({\n  name: 'connect_github',\n  description: '连接用户的 GitHub 账户',\n  inputSchema: {},\n  handler: async () => {\n    const elicit = useMcpElicitation()\n\n    if (!elicit.supports('url')) {\n      return '请打开 https:\u002F\u002Fapp.example.com\u002Fsettings\u002Fgithub 连接你的账户，然后再试一次。'\n    }\n\n    const result = await elicit.url({\n      message: '授权该集成',\n      url: 'https:\u002F\u002Fapp.example.com\u002Foauth\u002Fgithub\u002Fstart',\n    })\n\n    return result.action === 'accept'\n      ? 'GitHub 已连接。'\n      : `用户未完成流程（${result.action}）。`\n  },\n})\n","server\u002Fmcp\u002Ftools\u002Fconnect-github.ts",[340,1522,1523,1541,1545,1557,1572,1587,1596,1611,1623,1627,1655,1666,1670,1674,1694,1709,1725,1731,1735,1754,1766,1790,1794],{"__ignoreMap":494},[498,1524,1525,1527,1529,1531,1533,1535,1537,1539],{"class":500,"line":501},[498,1526,505],{"class":504},[498,1528,509],{"class":508},[498,1530,539],{"class":512},[498,1532,516],{"class":508},[498,1534,519],{"class":504},[498,1536,522],{"class":508},[498,1538,548],{"class":525},[498,1540,529],{"class":508},[498,1542,1543],{"class":500,"line":532},[498,1544,557],{"emptyLinePlaceholder":556},[498,1546,1547,1549,1551,1553,1555],{"class":500,"line":553},[498,1548,563],{"class":504},[498,1550,566],{"class":504},[498,1552,539],{"class":569},[498,1554,572],{"class":512},[498,1556,575],{"class":508},[498,1558,1559,1561,1563,1565,1568,1570],{"class":500,"line":560},[498,1560,582],{"class":581},[498,1562,585],{"class":508},[498,1564,522],{"class":508},[498,1566,1567],{"class":525},"connect_github",[498,1569,593],{"class":508},[498,1571,596],{"class":508},[498,1573,1574,1576,1578,1580,1583,1585],{"class":500,"line":578},[498,1575,602],{"class":581},[498,1577,585],{"class":508},[498,1579,522],{"class":508},[498,1581,1582],{"class":525},"连接用户的 GitHub 账户",[498,1584,593],{"class":508},[498,1586,596],{"class":508},[498,1588,1589,1591,1593],{"class":500,"line":599},[498,1590,619],{"class":581},[498,1592,585],{"class":508},[498,1594,1595],{"class":508}," {},\n",[498,1597,1598,1600,1602,1604,1607,1609],{"class":500,"line":616},[498,1599,657],{"class":569},[498,1601,585],{"class":508},[498,1603,663],{"class":662},[498,1605,1606],{"class":508}," ()",[498,1608,676],{"class":662},[498,1610,624],{"class":508},[498,1612,1613,1615,1617,1619,1621],{"class":500,"line":627},[498,1614,684],{"class":662},[498,1616,687],{"class":512},[498,1618,690],{"class":508},[498,1620,693],{"class":569},[498,1622,696],{"class":581},[498,1624,1625],{"class":500,"line":648},[498,1626,557],{"emptyLinePlaceholder":556},[498,1628,1629,1631,1633,1635,1638,1640,1643,1645,1647,1649,1651,1653],{"class":500,"line":654},[498,1630,904],{"class":504},[498,1632,907],{"class":581},[498,1634,1393],{"class":508},[498,1636,1637],{"class":512},"elicit",[498,1639,637],{"class":508},[498,1641,1642],{"class":569},"supports",[498,1644,572],{"class":581},[498,1646,593],{"class":508},[498,1648,358],{"class":525},[498,1650,593],{"class":508},[498,1652,1424],{"class":581},[498,1654,575],{"class":508},[498,1656,1657,1659,1661,1664],{"class":500,"line":681},[498,1658,936],{"class":504},[498,1660,522],{"class":508},[498,1662,1663],{"class":525},"请打开 https:\u002F\u002Fapp.example.com\u002Fsettings\u002Fgithub 连接你的账户，然后再试一次。",[498,1665,529],{"class":508},[498,1667,1668],{"class":500,"line":699},[498,1669,963],{"class":508},[498,1671,1672],{"class":500,"line":704},[498,1673,557],{"emptyLinePlaceholder":556},[498,1675,1676,1678,1680,1682,1684,1686,1688,1690,1692],{"class":500,"line":727},[498,1677,684],{"class":662},[498,1679,709],{"class":512},[498,1681,690],{"class":508},[498,1683,714],{"class":504},[498,1685,687],{"class":512},[498,1687,637],{"class":508},[498,1689,358],{"class":569},[498,1691,572],{"class":581},[498,1693,575],{"class":508},[498,1695,1696,1698,1700,1702,1705,1707],{"class":500,"line":758},[498,1697,730],{"class":581},[498,1699,585],{"class":508},[498,1701,522],{"class":508},[498,1703,1704],{"class":525},"授权该集成",[498,1706,593],{"class":508},[498,1708,596],{"class":508},[498,1710,1711,1714,1716,1718,1721,1723],{"class":500,"line":768},[498,1712,1713],{"class":581},"      url",[498,1715,585],{"class":508},[498,1717,522],{"class":508},[498,1719,1720],{"class":525},"https:\u002F\u002Fapp.example.com\u002Foauth\u002Fgithub\u002Fstart",[498,1722,593],{"class":508},[498,1724,596],{"class":508},[498,1726,1727,1729],{"class":500,"line":834},[498,1728,890],{"class":508},[498,1730,893],{"class":581},[498,1732,1733],{"class":500,"line":881},[498,1734,557],{"emptyLinePlaceholder":556},[498,1736,1737,1739,1741,1743,1745,1748,1750,1752],{"class":500,"line":887},[498,1738,974],{"class":504},[498,1740,709],{"class":512},[498,1742,637],{"class":508},[498,1744,915],{"class":512},[498,1746,1747],{"class":508}," ===",[498,1749,522],{"class":508},[498,1751,923],{"class":525},[498,1753,529],{"class":508},[498,1755,1756,1759,1761,1764],{"class":500,"line":896},[498,1757,1758],{"class":508},"      ?",[498,1760,522],{"class":508},[498,1762,1763],{"class":525},"GitHub 已连接。",[498,1765,529],{"class":508},[498,1767,1768,1771,1773,1776,1778,1780,1782,1784,1786,1788],{"class":500,"line":901},[498,1769,1770],{"class":508},"      :",[498,1772,735],{"class":508},[498,1774,1775],{"class":525},"用户未完成流程（",[498,1777,741],{"class":508},[498,1779,910],{"class":512},[498,1781,637],{"class":508},[498,1783,915],{"class":512},[498,1785,747],{"class":508},[498,1787,954],{"class":525},[498,1789,957],{"class":508},[498,1791,1792],{"class":500,"line":933},[498,1793,651],{"class":508},[498,1795,1796,1798],{"class":500,"line":960},[498,1797,747],{"class":508},[498,1799,893],{"class":512},[469,1801,1803,1804,1085],{"color":1802,"icon":64},"warning","URL 模式的启发式询问会在用户机器上触发重定向——仅应将其用于可信端点。MCP 规范建议在回调中配合使用",[383,1805,1808],{"href":1806,"rel":1807},"https:\u002F\u002Fmodelcontextprotocol.io\u002Fspecification\u002F2025-11-25\u002Fbasic\u002Fauthorization",[387],"来源\u002F协议验证",[289,1810,1811],{"id":1811},"能力检查",[294,1813,1814],{},"始终处理客户端未声明启发式询问能力的情况——许多客户端（以及自托管中继）会暴露工具但不支持它。",[488,1816,1818],{"className":490,"code":1817,"language":493,"meta":494,"style":494},"const elicit = useMcpElicitation()\n\nif (!elicit.supports('form')) {\n  return '此工具需要一个交互式客户端（Cursor、Claude Desktop 等）。'\n}\n",[340,1819,1820,1835,1839,1866,1878],{"__ignoreMap":494},[498,1821,1822,1825,1828,1831,1833],{"class":500,"line":501},[498,1823,1824],{"class":662},"const",[498,1826,1827],{"class":512}," elicit ",[498,1829,1830],{"class":508},"=",[498,1832,693],{"class":569},[498,1834,696],{"class":512},[498,1836,1837],{"class":500,"line":532},[498,1838,557],{"emptyLinePlaceholder":556},[498,1840,1841,1844,1846,1848,1850,1852,1854,1856,1858,1860,1862,1864],{"class":500,"line":553},[498,1842,1843],{"class":504},"if",[498,1845,907],{"class":512},[498,1847,1393],{"class":508},[498,1849,1637],{"class":512},[498,1851,637],{"class":508},[498,1853,1642],{"class":569},[498,1855,572],{"class":512},[498,1857,593],{"class":508},[498,1859,421],{"class":525},[498,1861,593],{"class":508},[498,1863,1424],{"class":512},[498,1865,575],{"class":508},[498,1867,1868,1871,1873,1876],{"class":500,"line":560},[498,1869,1870],{"class":504},"  return",[498,1872,522],{"class":508},[498,1874,1875],{"class":525},"此工具需要一个交互式客户端（Cursor、Claude Desktop 等）。",[498,1877,529],{"class":508},[498,1879,1880],{"class":500,"line":578},[498,1881,1882],{"class":508},"}\n",[294,1884,1885,1886,1888,1889,1892,1893,1896,1897,1900],{},"当你在不支持的客户端上调用 ",[340,1887,1501],{}," 或 ",[340,1890,1891],{},"url()"," 时，该可组合函数会抛出带有 ",[340,1894,1895],{},"code: 'unsupported'"," 的 ",[340,1898,1899],{},"McpElicitationError","，这样你就可以优雅地恢复：",[488,1902,1904],{"className":490,"code":1903,"language":493,"meta":494,"style":494},"import { McpElicitationError } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\ntry {\n  await elicit.form({ message: '…', schema: { … } })\n}\ncatch (err) {\n  if (err instanceof McpElicitationError && err.code === 'unsupported') {\n    return '客户端不支持启发式询问——将回退到默认值。'\n  }\n  throw err\n}\n",[340,1905,1906,1925,1929,1936,1982,1986,1996,2035,2046,2051,2059],{"__ignoreMap":494},[498,1907,1908,1910,1912,1915,1917,1919,1921,1923],{"class":500,"line":501},[498,1909,505],{"class":504},[498,1911,509],{"class":508},[498,1913,1914],{"class":512}," McpElicitationError",[498,1916,516],{"class":508},[498,1918,519],{"class":504},[498,1920,522],{"class":508},[498,1922,548],{"class":525},[498,1924,529],{"class":508},[498,1926,1927],{"class":500,"line":532},[498,1928,557],{"emptyLinePlaceholder":556},[498,1930,1931,1934],{"class":500,"line":553},[498,1932,1933],{"class":504},"try",[498,1935,624],{"class":508},[498,1937,1938,1941,1943,1945,1947,1949,1952,1955,1957,1959,1962,1964,1966,1969,1971,1973,1976,1978,1980],{"class":500,"line":560},[498,1939,1940],{"class":504},"  await",[498,1942,687],{"class":512},[498,1944,637],{"class":508},[498,1946,421],{"class":569},[498,1948,572],{"class":581},[498,1950,1951],{"class":508},"{",[498,1953,1954],{"class":581}," message",[498,1956,585],{"class":508},[498,1958,522],{"class":508},[498,1960,1961],{"class":525},"…",[498,1963,593],{"class":508},[498,1965,793],{"class":508},[498,1967,1968],{"class":581}," schema",[498,1970,585],{"class":508},[498,1972,509],{"class":508},[498,1974,1975],{"class":581}," … ",[498,1977,747],{"class":508},[498,1979,516],{"class":508},[498,1981,893],{"class":581},[498,1983,1984],{"class":500,"line":578},[498,1985,1882],{"class":508},[498,1987,1988,1991,1994],{"class":500,"line":599},[498,1989,1990],{"class":504},"catch",[498,1992,1993],{"class":512}," (err) ",[498,1995,575],{"class":508},[498,1997,1998,2001,2003,2006,2009,2012,2015,2018,2020,2022,2024,2026,2029,2031,2033],{"class":500,"line":616},[498,1999,2000],{"class":504},"  if",[498,2002,907],{"class":581},[498,2004,2005],{"class":512},"err",[498,2007,2008],{"class":508}," instanceof",[498,2010,1914],{"class":2011},"sBMFI",[498,2013,2014],{"class":508}," &&",[498,2016,2017],{"class":512}," err",[498,2019,637],{"class":508},[498,2021,340],{"class":512},[498,2023,1747],{"class":508},[498,2025,522],{"class":508},[498,2027,2028],{"class":525},"unsupported",[498,2030,593],{"class":508},[498,2032,928],{"class":581},[498,2034,575],{"class":508},[498,2036,2037,2039,2041,2044],{"class":500,"line":627},[498,2038,974],{"class":504},[498,2040,522],{"class":508},[498,2042,2043],{"class":525},"客户端不支持启发式询问——将回退到默认值。",[498,2045,529],{"class":508},[498,2047,2048],{"class":500,"line":648},[498,2049,2050],{"class":508},"  }\n",[498,2052,2053,2056],{"class":500,"line":654},[498,2054,2055],{"class":504},"  throw",[498,2057,2058],{"class":512}," err\n",[498,2060,2061],{"class":500,"line":681},[498,2062,1882],{"class":508},[289,2064,2065],{"id":2065},"要求",[469,2067,2069,2074],{"color":1802,"icon":2068},"i-lucide-triangle-alert",[294,2070,2071,2073],{},[340,2072,483],{}," 需要：",[303,2075,2076,2086],{},[306,2077,2078,2079,2082,2083,2085],{},"将 ",[340,2080,2081],{},"nitro.experimental.asyncContext"," 设置为 ",[340,2084,859],{},"（自 Nuxt 3.8+ 起默认）",[306,2087,2088,2089,2092],{},"客户端在初始化期间声明了 ",[340,2090,2091],{},"elicitation"," 能力",[289,2094,2095],{"id":2095},"下一步",[303,2097,2098,2104,2109,2119],{},[306,2099,2100,2103],{},[383,2101,2102],{"href":235},"Sessions"," — 在后续工具调用之间存储用户的启发式询问回答。",[306,2105,2106,2108],{},[383,2107,215],{"href":216}," — 根据上下文控制哪些工具需要启发式询问。",[306,2110,2111,2114,2115,2118],{},[383,2112,2113],{"href":240},"Dynamic definitions"," — 使用 ",[340,2116,2117],{},"enabled"," 守卫隐藏工具，而不是交互式询问。",[306,2120,2121,2124,2125,2127,2128,2127,2131,954],{},[383,2122,2123],{"href":201},"Logging"," — 在宽事件上记录启发式询问结果（",[340,2126,923],{}," \u002F ",[340,2129,2130],{},"decline",[340,2132,2133],{},"cancel",[2135,2136,2137],"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 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 .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":494,"searchDepth":532,"depth":532,"links":2139},[2140,2141,2142,2145,2146,2147,2148,2149,2150],{"id":291,"depth":532,"text":292},{"id":390,"depth":532,"text":390},{"id":480,"depth":532,"text":483,"children":2143},[2144],{"id":1049,"depth":553,"text":1050},{"id":1139,"depth":532,"text":1140},{"id":1236,"depth":532,"text":1237},{"id":1505,"depth":532,"text":316},{"id":1811,"depth":532,"text":1811},{"id":2065,"depth":532,"text":2065},{"id":2095,"depth":532,"text":2095},"使用 useMcpElicitation() 向用户请求结构化输入，或将他们发送到一个 URL。","md",null,{},{"title":249,"icon":252},{"title":2157,"description":2158},"MCP 启发式询问","通过你的 MCP 工具、提示和资源向用户请求结构化输入（表单模式）或将他们重定向到一个 URL（URL 模式）。","_UMp0pjqqrzNGYx-VLk_kZsVYOeCf5QSC9hmNAS9n7A",[2161,2163],{"title":244,"path":245,"stem":246,"description":2162,"icon":247,"children":-1},"让大语言模型在单次 JavaScript 执行中编排多次工具调用。",{"title":259,"path":260,"stem":261,"description":2164,"icon":262,"children":-1},"使用 Bearer 令牌身份验证保护您的 MCP 端点。",1778659577355]