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