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