PageSourceSearch

https://gofastmcp.com/getting-started/installation

html gofastmcp.com collected 2026-10-01 10:40:07 UTC 593,827 bytes, 492 lines download raw bytes

1<!DOCTYPE html><html lang="en" class="inter_1d81deff-module__CYM0aG__variable papermono_89c757f2-module__6aS5zq__variable dark" data-banner-state="visible" data-assistant-state="closed" data-page-mode="none" data-current-path="/"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"/><link rel="preload" href="/mintlify-assets/_next/static/media/83afe278b6a6bb3c.p.3a6ba036.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/mintlify-assets/_next/static/media/PaperMono_Variable.p.aa32f7a0.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/mintlify-assets/_next/static/media/f67ad414ed34149c.p.84166d94.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" href="https://mintcdn.com/fastmcp/Lu2sdJVHDyHdvswk/assets/brand/wordmark.png?fit=max&amp;auto=format&amp;n=Lu2sdJVHDyHdvswk&amp;q=85&amp;s=67680e9b1c641023511881a24f296077"/><link rel="preload" as="image" href="https://mintcdn.com/fastmcp/Lu2sdJVHDyHdvswk/assets/brand/wordmark-white.png?fit=max&amp;auto=format&amp;n=Lu2sdJVHDyHdvswk&amp;q=85&amp;s=776d9c0663633c9b9782b9f3f9785960"/><link rel="stylesheet" href="/mintlify-assets/_next/static/chunks/462bacc63bed9960.css?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" data-precedence="next"/><link rel="stylesheet" href="/mintlify-assets/_next/static/chunks/aaa51283d61f795b.css?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" data-precedence="next"/><style data-precedence="base-ui:low" data-href="base-ui-disable-scrollbar">.base-ui-disable-scrollbar{scrollbar-width:none}.base-ui-disable-scrollbar::-webkit-scrollbar{display:none}</style><link rel="preload" as="script" fetchPriority="low" href="/mintlify-assets/_next/static/chunks/6d55b684068fd47e.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx"/>
1<script src="/mintlify-assets/_next/static/chunks/44795504c795ca32.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/06ee10b20c4eb159.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/b730549587248be7.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/c417f87695254da7.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/turbopack-fc8a31fbe43179ad.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/885f4d31de86d646.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/36ebfb810eb5d91c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/4d83136478871436.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/05947de8d1d1b0df.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/46839b330f00a800.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/68d6e5104243ae2b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/b0d72ff121ddceb8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/afd2b935774e1485.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/65712ea96ab292b5.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/67ac8b11c225e726.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<script src="/mintlify-assets/_next/static/chunks/60a67dd9562ebe56.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" async=""></script>
1<link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-64R5W1TJXG" as="script"/><link rel="preload" href="/mintlify-assets/_next/static/chunks/2119d8c4cd150ffe.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" as="script" fetchPriority="low"/><link rel="preload" href="/mintlify-assets/_next/static/chunks/55a309039aea88c1.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" as="script" fetchPriority="low"/><link rel="preload" href="/mintlify-assets/_next/static/chunks/84b99a46231ef6be.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" as="script" fetchPriority="low"/><link rel="preload" href="/mintlify-assets/_next/static/chunks/7dac459a5be0fbd2.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" as="script" fetchPriority="low"/><link rel="preload" href="/mintlify-assets/_next/static/chunks/47232d04bffc0a26.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" as="script" fetchPriority="low"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="preload" href="https://d4tuoctqmanu0.cloudfront.net/katex.min.css" as="style"/><title>Installation - FastMCP</title><meta name="description" content="Install FastMCP and verify your setup"/><meta name="application-name" content="FastMCP"/><meta name="generator" content="Mintlify"/><meta name="msapplication-config" content="/mintlify-assets/_mintlify/favicons/fastmcp/1KQviU8vsE4vEF8n/_generated/favicon/browserconfig.xml"/><meta name="apple-mobile-web-app-title" content="FastMCP"/><meta name="msapplication-TileColor" content="#2d00f7"/><link rel="canonical" href="https://gofastmcp.com/getting-started/installation"/><link rel="alternate" type="application/xml" href="/sitemap.xml"/><link rel="alternate" type="text/markdown" href="/getting-started/installation.md"/><meta property="og:title" content="Installation - FastMCP"/><meta property="og:description" content="Install FastMCP and verify your setup"/><meta property="og:url" content="https://gofastmcp.com/getting-started/installation"/><meta property="og:site_name" content="FastMCP"/><meta property="og:image" content="https://fastmcp.mintlify.app/mintlify-assets/_next/image?url=%2F_mintlify%2Fapi%2Fog%3Fdivision%3DGet%2BStarted%26title%3DInstallation%26description%3DInstall%2BFastMCP%2Band%2Bverify%2Byour%2Bsetup%26theme%3D608adbda090d9f0671e595c4&amp;w=1200&amp;q=100"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Installation - FastMCP"/><meta name="twitter:description" content="Install FastMCP and verify your setup"/><meta name="twitter:image" content="https://fastmcp.mintlify.app/mintlify-assets/_next/image?url=%2F_mintlify%2Fapi%2Fog%3Fdivision%3DGet%2BStarted%26title%3DInstallation%26description%3DInstall%2BFastMCP%2Band%2Bverify%2Byour%2Bsetup%26theme%3D608adbda090d9f0671e595c4&amp;w=1200&amp;q=100"/><meta name="twitter:image:width" content="1200"/><meta name="twitter:image:height" content="630"/><link rel="icon" href="/mintlify-assets/_mintlify/favicons/fastmcp/1KQviU8vsE4vEF8n/_generated/favicon/android-chrome-192x192.png" type="image/png" sizes="192x192" media="(prefers-color-scheme: light)"/><link rel="apple-touch-icon" href="/mintlify-assets/_mintlify/favicons/fastmcp/1KQviU8vsE4vEF8n/_generated/favicon/apple-touch-icon.png" type="image/png" sizes="180x180"/><link rel="icon" href="/mintlify-assets/_mintlify/favicons/fastmcp/1KQviU8vsE4vEF8n/_generated/favicon/favicon-16x16.png" type="image/png" sizes="16x16" media="(prefers-color-scheme: light)"/><link rel="icon" href="/mintlify-assets/_mintlify/favicons/fastmcp/1KQviU8vsE4vEF8n/_generated/favicon/favicon-32x32.png" type="image/png" sizes="32x32" media="(prefers-color-scheme: light)"/><link rel="shortcut icon" href="/mintlify-assets/_mintlify/favicons/fastmcp/1KQviU8vsE4vEF8n/_generated/favicon/favicon.ico" type="image/x-icon" media="(prefers-color-scheme: light)"/><link rel="icon" href="/mintlify-assets/_mintlify/favicons/fastmcp/1KQviU8vsE4vEF8n/_generated/favicon-dark/android-chrome-192x192.png" type="image/png" sizes="192x192" media="(prefers-color-scheme: dark)"/><link rel="icon" href="/mintlify-assets/_mintlify/favicons/fastmcp/1KQviU8vsE4vEF8n/_generated/favicon-dark/favicon-16x16.png" type="image/png" sizes="16x16" media="(prefers-color-scheme: dark)"/><link rel="icon" href="/mintlify-assets/_mintlify/favicons/fastmcp/1KQviU8vsE4vEF8n/_generated/favicon-dark/favicon-32x32.png" type="image/png" sizes="32x32" media="(prefers-color-scheme: dark)"/><link rel="shortcut icon" href="/mintlify-assets/_mintlify/favicons/fastmcp/1KQviU8vsE4vEF8n/_generated/favicon-dark/favicon.ico" type="image/x-icon" media="(prefers-color-scheme: dark)"/>
1<script type="text/javascript">!function(){var b="";
2function a(p){if(p==null)return"/";p=""+p;if(""===p)return"/";return"/"===p.charAt(0)?p:"/"+p}
3function u(p){if(p==null)return p;p=""+p;if(!p||p.charAt(p.length-1)==="/")return p.slice(0,-1);return p}
4function i(p){if(p==null)return p;p=""+p;if(6<=p.length&&p.substring(p.length-6)==="/index")return p.substring(0,p.length-6);if("index"===p)return"";return p}
5var p=(location.pathname||"").split("?")[0].split("#")[0]||"";
6if(b)if(p===b)p="";else if(0===p.indexOf(b+"/"))p=p.substring(b.length);
7p=a(p);p=u(p);p=i(p);p=""===p||"index"===p?"/":a(p);
8document.documentElement.setAttribute("data-current-path",p);
9}();</script>
9<script type="text/javascript">(() => {
10  const isIOS =
11    /iP(hone|ad|od)/.test(navigator.userAgent) ||
12    (/Macintosh/.test(navigator.userAgent) && navigator.maxTouchPoints > 1);
13  if (!isIOS) return;
14  const apply = () => {
15    for (const meta of document.querySelectorAll('meta[name="viewport"]')) {
16      const content = meta.getAttribute('content') || '';
17      if (!content.includes('maximum-scale')) {
18        meta.setAttribute('content', content + ', maximum-scale=1');
19      }
20    }
21  };
22  apply();
23  new MutationObserver(apply).observe(document.head, {
24    childList: true,
25    subtree: true,
26    attributes: true,
27    attributeFilter: ['content'],
28  });
29})();</script>
29<script type="text/javascript">!function(){
30function read(){try{
31var e=performance.getEntriesByType?performance.getEntriesByType("navigation"):[];
32var st=(e[0]&&e[0].serverTiming)||[];
33var g={};
34for(var i=0;i<st.length;i++){var n=st[i].name,d=st[i].description;if(!d)continue;try{d=decodeURIComponent(d)}catch(x){}
35if(n==="country")g.country=d;else if(n==="region")g.region=d;else if(n==="continent")g.continent=d;}
36var w=window;w.mintlify=w.mintlify||{};w.mintlify.geo=g;
37}catch(x){}}
38read();document.addEventListener("DOMContentLoaded",read);
39}();</script>
39<script type="text/javascript">!function(){try{
40var w=window;w.mintlify=w.mintlify||{};
41var q=w.mintlify.__apiPlaygroundInputsQueue;
42if(!Array.isArray(q)){q=[];w.mintlify.__apiPlaygroundInputsQueue=q;}
43w.mintlify.api=w.mintlify.api||{};
44w.mintlify.api.playground=w.mintlify.api.playground||{};
45if(typeof w.mintlify.api.playground.setServerVariables!=="function"){
46w.mintlify.api.playground.setServerVariables=function(v){q.push({type:"set",variables:v});};
47}
48if(typeof w.mintlify.api.playground.clearServerVariables!=="function"){
49w.mintlify.api.playground.clearServerVariables=function(){q.push({type:"clear"});};
50}
51}catch(e){}}();</script>
51<script type="text/javascript">(function(){
52if(typeof CSS==="undefined"||!("registerProperty" in CSS))return;
53if(CSS.supports&&CSS.supports("-webkit-backdrop-filter:none"))return;
54var n=["--scroll-area-overflow-x-start","--scroll-area-overflow-x-end","--scroll-area-overflow-y-start","--scroll-area-overflow-y-end"];
55var d={"syntax":"<length>","inherits":false,"initialValue":"0px"};
56for(var i=0;i<n.length;i++){try{CSS.registerProperty({name:n[i],syntax:d.syntax,inherits:d.inherits,initialValue:d.initialValue})}catch(e){}}
57})();</script>
57<script type="text/javascript">(function(a,b){try{let c=document.getElementById("banner")?.innerText;if(c){for(let d=0;d<localStorage.length;d++){let e=localStorage.key(d);if(e?.endsWith(a)&&localStorage.getItem(e)===c)return void document.documentElement.setAttribute(b,"hidden")}document.documentElement.setAttribute(b,"visible");return}for(let c=0;c<localStorage.length;c++){let d=localStorage.key(c);if(d?.endsWith(a)&&localStorage.getItem(d))return void document.documentElement.setAttribute(b,"hidden")}document.documentElement.setAttribute(b,"visible")}catch(a){document.documentElement.setAttribute(b,"hidden")}})(
58  "bannerDismissed",
59  "data-banner-state",
60)</script>
60<script src="/mintlify-assets/_next/static/chunks/a6dad97d9634a72d.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" noModule=""></script>
60</head><body class="antialiased"><div hidden=""><!--$--><!--/$--></div>
60<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"FastMCP","creator":{"@type":"Organization","name":"Mintlify","url":"https://mintlify.com"}}</script>
60<script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","isDarkMode","system",null,["dark","light","true","false","system"],{"true":"dark","false":"light","dark":"dark","light":"light"},true,false)</script>
60<script>(function(){try{var f=null;var v=f||localStorage.getItem("isDarkMode");if(v==='true')v='dark';else if(v==='false')v='light';if(v!=='light'&&v!=='dark'&&v!=='system')v="system";document.documentElement.setAttribute("data-theme-preference",v)}catch(e){}})();</script>
60<blockquote class="sr-only" data-agent-docs-index="true" aria-hidden="true"><h2>Documentation Index</h2><p>Fetch the complete documentation index at:<!-- --> <a href="/llms.txt" tabindex="-1">/llms.txt</a></p><p>Use this file to discover all available pages before exploring further.</p></blockquote>
60<script id="_mintlify-banner-script">(function i(a,b,c,d,e){try{let f,g,h=[];try{h=window.location.pathname.split("/").filter(a=>""!==a&&"global"!==a).slice(0,2)}catch{h=[]}let i=h.find(a=>c.includes(a)),j=[];for(let c of(i?j.push(i):j.push(b),j.push("global"),j)){if(!c)continue;let b=a[c];if(b?.content){f=b.content,g=c;break}}if(!f)return void document.documentElement.setAttribute(d,"hidden");let k=!0,l=0;for(;l<localStorage.length;){let a=localStorage.key(l);if(l++,!a?.endsWith(e))continue;let b=localStorage.getItem(a);if(b&&b===f){k=!1;break}g&&(a.startsWith(`lang:${g}_`)||!a.startsWith("lang:"))&&(localStorage.removeItem(a),l--)}document.documentElement.setAttribute(d,k?"visible":"hidden")}catch(a){console.error(a),document.documentElement.setAttribute(d,"hidden")}})(
61  {"global":{"content":"FastMCP 4 is here — built for the new MCP protocol. [See what's new](/getting-started/whats-new).","color":{"light":"#1e3a5f","dark":"#475569"}}},
62  "en",
63  [],
64  "data-banner-state",
65  "bannerDismissed",
66)</script>
66<link href="https://fonts.googleapis.com/css2?family=Google+Sans:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400;1,500;1,600;1,700;1,800&amp;display=swap" rel="stylesheet"/><link href="https://fonts.googleapis.com/css2?family=Google+Sans:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400;1,500;1,600;1,700;1,800&amp;display=swap" rel="stylesheet"/><style>:root {
67  --font-family-headings-custom: "Google Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
68  
69  --font-family-body-custom: "Google Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
70  
71  
72}
73</style><style>:root {
74    --primary: 45 0 247;
75    --primary-light: 76 201 240;
76    --primary-dark: 247 37 133;
77    --tooltip-foreground: 255 255 255;
78    --background-light: 238 238 238;
79    --background-dark: 34 40 49;
80    --gray-50: 244 242 250;
81    --gray-100: 239 238 245;
82    --gray-200: 223 222 230;
83    --gray-300: 207 206 213;
84    --gray-400: 159 158 166;
85    --gray-500: 113 111 119;
86    --gray-600: 81 79 87;
87    --gray-700: 63 62 70;
88    --gray-800: 38 37 44;
89    --gray-900: 24 22 30;
90    --gray-950: 11 10 17;
91  }</style>
91<script type="text/javascript">
92          (function() {
93            function loadKatex() {
94              const link = document.querySelector('link[href="https://d4tuoctqmanu0.cloudfront.net/katex.min.css"]');
95              if (link) link.rel = 'stylesheet';
96            }
97            if (document.readyState === 'loading') {
98              document.addEventListener('DOMContentLoaded', loadKatex);
99            } else {
100              loadKatex();
101            }
102          })();
103        </script>
103<div class="relative antialiased text-gray-500 dark:text-gray-400">
103<script id="_mintlify-navbar-transition-script">(function(a){let b,c=(b="navbar-transition","maple"===a&&(b+="-maple"),b);function d(){let a=!1;a=window.scrollY>50;let b=document.getElementById(c);b&&b.hasAttribute("data-is-opaque")&&b.setAttribute("data-is-opaque",`${!!a}`)}let e=function(){let a=document.createElement("style"),b=`#${c}`;return a.appendChild(document.createTextNode(`${b},${b} *,${b} *::before,${b} *::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}`)),document.head.appendChild(a),function(){window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(a)},1)}}();function f(){window.removeEventListener("scroll",d),document.removeEventListener("DOMContentLoaded",d),d(),e()}window.addEventListener("scroll",d,{passive:!0}),document.addEventListener("DOMContentLoaded",d),("requestAnimationFrame"in globalThis?requestAnimationFrame:setTimeout)(d),"complete"===document.readyState?f():window.addEventListener("load",f,{once:!0})})("almond")</script>
103<script id="_mintlify-scroll-margin-script">(function () {
104  var measure = function(){let a=document.querySelectorAll("[id='navbar'], [data-top-chrome]"),b=0;a.forEach(a=>{let c=a.getBoundingClientRect();c.height>0&&(b=Math.max(b,c.bottom))});let c=0,d=document.getElementById("content-container");if(d){let{overflowY:a}=getComputedStyle(d);("auto"===a||"scroll"===a)&&(c=Math.max(0,d.getBoundingClientRect().top))}let e=`${Math.round(Math.max(0,b-c))+40}px`,f=document.documentElement.style;f.getPropertyValue("--scroll-mt")!==e&&f.setProperty("--scroll-mt",e)};
105  (function(a){let b=[],c=0,d="undefined"==typeof ResizeObserver?null:new ResizeObserver(f);function e(){let c=Array.from(document.querySelectorAll("[id='navbar'], [data-top-chrome]"));(c.length!==b.length||c.some((a,c)=>a!==b[c]))&&d&&(d.disconnect(),c.forEach(a=>d.observe(a))),b=c,a()}function f(){c||(c=requestAnimationFrame(()=>{c=0,e()}))}let g="[id='navbar'], [data-top-chrome]";function h(a){let b=a.target;if(b instanceof Element&&b.closest(g))return!0;for(let b of a.addedNodes)if(b instanceof Element&&(b.matches(g)||b.querySelector(g)))return!0;for(let b of a.removedNodes)if(b instanceof Element&&(b.matches(g)||b.querySelector(g)))return!0;return!1}new MutationObserver(a=>{a.some(h)&&f()}).observe(document.documentElement,{childList:!0,subtree:!0}),window.addEventListener("resize",f),"loading"===document.readyState&&document.addEventListener("DOMContentLoaded",e),e()})(measure);
106  (function(a){let b=window.location.hash.slice(1);if(!b)return;function c(){return"smooth"===getComputedStyle(document.documentElement).scrollBehavior}function d(c){let d=document.getElementById(b);return!!d&&(a(),d.scrollIntoView(c?{behavior:c}:void 0),!0)}if("complete"===document.readyState)return void d();let e=new MutationObserver(()=>{!c()&&d("instant")&&f()});function f(){e.disconnect(),window.removeEventListener("load",g)}function g(){let a=c();f(),a&&requestAnimationFrame(()=>{d(),function(){let a=["wheel","touchstart","keydown","pointerdown"],c=0,e=window.scrollY,f=setInterval(()=>{c+=1;let a=document.getElementById(b);if(!a||c>=6)return g();let f=Math.abs(window.scrollY-e)>1;if(e=window.scrollY,f)return;let h=parseFloat(getComputedStyle(a).scrollMarginTop)||0;Math.abs(a.getBoundingClientRect().top-h)>4&&d()},350);function g(){clearInterval(f),a.forEach(a=>window.removeEventListener(a,g))}a.forEach(a=>window.addEventListener(a,g,{passive:!0}))}()})}window.addEventListener("load",g),e.observe(document.documentElement,{childList:!0,subtree:!0}),!c()&&d("instant")&&f()})(measure);
107})();</script>
107<a href="#content-area" class="sr-only focus:not-sr-only focus:fixed focus:top-2 focus:left-2 focus:z-50 focus:p-2 focus:text-sm focus:bg-background-light dark:focus:bg-background-dark focus:rounded-md focus:outline-primary dark:focus:outline-primary-light">Skip to main content</a>
107<script>(function e(a,b,c,d,e){try{let f=window.matchMedia("(max-width: 1024px)").matches;if(e){document.documentElement.style.setProperty(c,"0px"),document.documentElement.setAttribute("data-assistant-state","closed");return}if(f||!d){document.documentElement.style.setProperty(c,"0px"),document.documentElement.setAttribute("data-assistant-state","closed"),d||localStorage.setItem(a,"false");return}let g=localStorage.getItem(a);if(null===g){document.documentElement.style.setProperty(c,"0px"),document.documentElement.setAttribute("data-assistant-state","closed");return}let h=JSON.parse(g),i=localStorage.getItem(b),j=null!==i?JSON.parse(i):368;document.documentElement.style.setProperty(c,h?j+"px":"0px"),document.documentElement.setAttribute("data-assistant-state",h?"open":"closed")}catch(a){document.documentElement.style.setProperty(c,"0px"),document.documentElement.setAttribute("data-assistant-state","closed")}})(
108    "chat-assistant-sheet-open",
109    "chat-assistant-sheet-width",
110    "--assistant-sheet-width",
111    true,
112    false
113  )</script>
113<div class="max-lg:contents lg:flex lg:w-full" data-docs-theme="almond" data-assistant-layout="legacy"><div class="max-lg:contents lg:flex-1 lg:min-w-0 lg:overflow-x-clip"><header id="navbar" class="z-30 fixed top-0 peer is-not-custom peer is-not-center peer is-not-wide peer is-not-frame" style="width:calc(100% - var(--assistant-sheet-width, 0px))"><div class="z-10 absolute w-full h-full"></div><div class="z-0 absolute inset-0"></div><div id="banner" style="--banner-bg-light:#1e3a5f;--banner-bg-dark:#475569" class="w-full min-h-10 relative lg:fixed lg:top-0 lg:left-0 text-center flex items-center justify-center text-sm [&amp;_a]:border-none [&amp;_a]:underline-offset-[3px] font-medium px-4 text-white/95 dark:text-white/95 [&amp;_*]:text-white/95! dark:[&amp;_*]:text-white/95! bg-(--banner-bg-light) dark:bg-(--banner-bg-dark) z-45"><div class="space-y-4 whitespace-normal my-2 [&amp;&gt;p]:m-0"><p>FastMCP 4 is here — built for the new MCP protocol. <a class="wrap-anywhere font-medium underline" data-streamdown="link" href="/getting-started/whats-new">See what&#x27;s new</a>.</p></div></div>
113<script>(function(){var h=0;document.querySelectorAll("#banner").forEach(function(b){h=Math.max(h,b.offsetHeight);});var s=document.documentElement.style;if(h>0&&s.getPropertyValue('--banner-height')!==h+'px')s.setProperty('--banner-height',h+'px');})();</script>
113<div class="hidden lg:block h-[var(--banner-height,0px)]" aria-hidden="true"></div><div class="z-10 mx-auto relative"><div class="relative"><div class="flex items-center lg:px-7 h-14 min-w-0 px-4"><div class="h-full relative flex-1 flex items-center gap-x-4 min-w-0 lg:border-none"><div class="flex-1 flex items-center gap-x-4"><a class="select-none" style="-webkit-touch-callout:none" href="/"><span class="sr-only">FastMCP<!-- --> home page</span><img class="nav-logo w-auto relative object-contain shrink-0 block dark:hidden h-6" src="https://mintcdn.com/fastmcp/Lu2sdJVHDyHdvswk/assets/brand/wordmark.png?fit=max&amp;auto=format&amp;n=Lu2sdJVHDyHdvswk&amp;q=85&amp;s=67680e9b1c641023511881a24f296077" alt="light logo"/><img class="nav-logo w-auto relative object-contain shrink-0 hidden dark:block h-6" src="https://mintcdn.com/fastmcp/Lu2sdJVHDyHdvswk/assets/brand/wordmark-white.png?fit=max&amp;auto=format&amp;n=Lu2sdJVHDyHdvswk&amp;q=85&amp;s=776d9c0663633c9b9782b9f3f9785960" alt="dark logo"/></a><div class="hidden lg:flex items-center gap-x-2"><button type="button" tabindex="0" aria-haspopup="menu" aria-expanded="false" id="base-ui-_R_1lip5fium6jiuqsnpfiutb_" data-component-part="version-select-trigger" class="group disabled:pointer-events-none [&amp;&gt;span]:line-clamp-1 overflow-hidden group focus-visible:outline-2 focus-visible:-outline-offset-2 group-hover:text-gray-950/70 dark:group-hover:text-white/70 py-1.5 px-2.5 rounded-xl hover:bg-gray-600/5! dark:hover:bg-gray-200/5! aria-[expanded=true]:bg-gray-600/5 dark:aria-[expanded=true]:bg-gray-200/5 text-sm font-medium text-gray-900 h-8 focus-visible:outline-primary dark:focus-visible:outline-primary-light dark:text-gray-300 group/trigger flex items-center gap-2 whitespace-nowrap"><span class="truncate max-w-[12.5rem]">v4.0.5</span><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 rotate-90 group-aria-[expanded=true]/trigger:rotate-[270deg] ml-auto"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div></div><div class="flex items-center gap-4"><div class="flex-1 relative hidden lg:flex items-center ml-auto ustify-end gap-x-6"><div class="h-14 font-semibold"></div><nav aria-label="Main" class="text-sm"><ul class="flex gap-x-2 items-center"><li class="navbar-link border border-gray-400/20 dark:border-gray-600/30 bg-background-light dark:bg-white/5 dark:border-none dark:text-white/90 group group-hover:opacity-[0.9] rounded-lg px-2.5 py-1.5 relative inline-flex items-center text-sm font-semibold"><a href="https://discord.gg/uu8dJCgttd" class="flex items-center gap-1.5 whitespace-nowrap font-medium text-gray-600 hover:text-gray-900 dark:text-white/90 dark:hover:text-gray-300" target="_blank" rel="noopener noreferrer"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! bg-gray-800 dark:bg-gray-100 h-4 w-4" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/discord.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/discord.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg><span class="min-w-0 truncate"></span></a></li><li class="navbar-link border border-gray-400/20 dark:border-gray-600/30 bg-background-light dark:bg-white/5 dark:border-none dark:text-white/90 group group-hover:opacity-[0.9] rounded-lg px-2.5 py-1.5 relative inline-flex items-center text-sm font-semibold"><a href="https://www.prefect.io/horizon?utm_source=gofastmcp&amp;utm_medium=docs&amp;utm_campaign=docs_horizon&amp;utm_content=header" class="flex items-center gap-1.5 whitespace-nowrap font-medium text-gray-600 hover:text-gray-900 dark:text-white/90 dark:hover:text-gray-300" target="_blank" rel="noopener noreferrer"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! bg-gray-800 dark:bg-gray-100 h-4 w-4" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/cloud.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/cloud.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg><span class="min-w-0 truncate">Prefect Horizon</span></a></li><li class="cursor-pointer max-w-full flex lg:hidden"><a href="https://github.com/PrefectHQ/fastmcp" target="_blank" rel="noreferrer" title="PrefectHQ/fastmcp" class="group flex items-center rounded-md hover:text-primary dark:hover:text-primary-light min-w-0"><div class="flex items-center gap-1.5 h-8 min-w-0"><div class="flex items-center gap-2 min-w-0"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024" fill="currentColor" class="size-4 shrink-0"><path fill-rule="evenodd" clip-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8C0 11.54 2.29 14.53 5.47 15.59C5.87 15.66 6.02 15.42 6.02 15.21C6.02 15.02 6.01 14.39 6.01 13.72C4 14.09 3.48 13.23 3.32 12.78C3.23 12.55 2.84 11.84 2.5 11.65C2.22 11.5 1.82 11.13 2.49 11.12C3.12 11.11 3.57 11.7 3.72 11.94C4.44 13.15 5.59 12.81 6.05 12.6C6.12 12.08 6.33 11.73 6.56 11.53C4.78 11.33 2.92 
11310.64 2.92 7.58C2.92 6.71 3.23 5.99 3.74 5.43C3.66 5.23 3.38 4.41 3.82 3.31C3.82 3.31 4.49 3.1 6.02 4.13C6.66 3.95 7.34 3.86 8.02 3.86C8.7 3.86 9.38 3.95 10.02 4.13C11.55 3.09 12.22 3.31 12.22 3.31C12.66 4.41 12.38 5.23 12.3 5.43C12.81 5.99 13.12 6.7 13.12 7.58C13.12 10.65 11.25 11.33 9.47 11.53C9.76 11.78 10.01 12.26 10.01 13.01C10.01 14.08 10 14.94 10 15.21C10 15.42 10.15 15.67 10.55 15.59C13.71 14.53 16 11.53 16 8C16 3.58 12.42 0 8 0Z" transform="scale(64)"></path></svg><span class="text-sm font-medium text-gray-700 dark:text-gray-300 group-hover:text-primary dark:group-hover:text-primary-light truncate">PrefectHQ/fastmcp</span></div></div></a></li><li class="cursor-pointer max-w-full hidden lg:flex"><a href="https://github.com/PrefectHQ/fastmcp" target="_blank" rel="noreferrer" title="PrefectHQ/fastmcp" class="group flex items-center rounded-md hover:text-primary dark:hover:text-primary-light min-w-0"><div class="flex items-center gap-1.5 h-8 min-w-0"><div class="flex items-center gap-2 min-w-0"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024" fill="currentColor" class="size-4 shrink-0"><path fill-rule="evenodd" clip-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8C0 11.54 2.29 14.53 5.47 15.59C5.87 15.66 6.02 15.42 6.02 15.21C6.02 15.02 6.01 14.39 6.01 13.72C4 14.09 3.48 13.23 3.32 12.78C3.23 12.55 2.84 11.84 2.5 11.65C2.22 11.5 1.82 11.13 2.49 11.12C3.12 11.11 3.57 11.7 3.72 11.94C4.44 13.15 5.59 12.81 6.05 12.6C6.12 12.08 6.33 11.73 6.56 11.53C4.78 11.33 2.92 10.64 2.92 7.58C2.92 6.71 3.23 5.99 3.74 5.43C3.66 5.23 3.38 4.41 3.82 3.31C3.82 3.31 4.49 3.1 6.02 4.13C6.66 3.95 7.34 3.86 8.02 3.86C8.7 3.86 9.38 3.95 10.02 4.13C11.55 3.09 12.22 3.31 12.22 3.31C12.66 4.41 12.38 5.23 12.3 5.43C12.81 5.99 13.12 6.7 13.12 7.58C13.12 10.65 11.25 11.33 9.47 11.53C9.76 11.78 10.01 12.26 10.01 13.01C10.01 14.08 10 14.94 10 15.21C10 15.42 10.15 15.67 10.55 15.59C13.71 14.53 16 11.53 16 8C16 3.58 12.42 0 8 0Z" transform="scale(64)"></path></svg><span class="text-sm font-medium text-gray-700 dark:text-gray-300 group-hover:text-primary dark:group-hover:text-primary-light truncate">PrefectHQ/fastmcp</span></div></div></a></li></ul></nav></div><div class="flex lg:hidden items-center gap-3"><button type="button" class="text-gray-500 w-8 h-8 flex items-center justify-center hover:text-gray-600 dark:text-gray-400 dark:hover:text-gray-300" id="search-bar-entry-mobile" aria-label="Open search"><span class="sr-only">Search...</span><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-4 w-4 bg-gray-500 dark:bg-gray-400 hover:bg-gray-600 dark:hover:bg-gray-300" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/magnifying-glass.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/magnifying-glass.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></button><button id="assistant-entry-mobile" aria-label="Toggle assistant panel"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-4.5 text-gray-500 dark:text-gray-400 hover:text-gray-600 dark:hover:text-gray-300"><path d="M5.65799 2.99L4.39499 2.569L3.97399 1.306C3.83699 0.898 3.16199 0.898 3.02499 1.306L2.60399 2.569L1.34099 2.99C1.13699 3.058 0.998993 3.249 0.998993 3.464C0.998993 3.679 1.13699 3.87 1.34099 3.938L2.60399 4.359L3.02499 5.622C3.09299 5.826 3.28499 5.964 3.49999 5.964C3.71499 5.964 3.90599 5.826 3.97499 5.622L4.39599 4.359L5.65899 3.938C5.86299 3.87 6.00099 3.679 6.00099 3.464C6.00099 3.249 5.86199 3.058 5.65799 2.99Z" fill="currentColor" stroke="none"></path><path d="M9.5 2.75L11.412 7.587L16.25 9.5L11.412 11.413L9.5 16.25L7.587 11.413L2.75 9.5L7.587 7.587L9.5 2.75Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button><button type="button" aria-label="More actions" class="h-7 w-5 flex items-center justify-center relative after:content-[&#x27;&#x27;] after:absolute after:-inset-y-2 after:-left-1 after:-right-4"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 shrink-0 bg-gray-500 dark:bg-gray-400 hover:bg-gray-600 dark:hover:bg-gray-300" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/ellipsis-vertical.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/ellipsis-vertical.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></button></div></div></div></div><button type="button" class="flex items-center h-14 py-4 px-5 lg:hidden focu
113s:outline-0 w-full text-left"><div class="text-gray-500 hover:text-gray-600 dark:text-gray-400 dark:hover:text-gray-300"><span class="sr-only">Navigation</span><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0"><path d="M2.25 9H15.75" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.25 3.75H15.75" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.25 14.25H15.75" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div><div class="ml-4 flex text-sm leading-6 whitespace-nowrap min-w-0 space-x-3 overflow-hidden"><div class="flex items-center space-x-3 shrink-0"><span>Get Started</span><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 text-gray-400 shrink-0"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div><div class="font-semibold text-gray-900 truncate dark:text-gray-200 min-w-0 flex-1">Installation</div></div></button></div></div></header><div class="scroll-mt-(--scroll-mt) almond-layout top-[calc(var(--mintlify-slot-header-height,7rem)+var(--banner-height,2.5rem))] lg:top-[calc(var(--mintlify-slot-header-height,3.5rem)+var(--banner-height,2.5rem))] peer-[.is-not-custom]:fixed peer-[.is-not-custom]:pb-2 peer-[.is-not-custom]:px-2 peer-[.is-not-custom]:pt-0 peer-[.is-custom]:absolute peer-[.is-custom]:[&amp;&gt;:first-child]:hidden! peer-[.is-custom]:[&amp;&gt;:first-child]:sm:hidden! peer-[.is-custom]:[&amp;&gt;:first-child]:md:hidden! peer-[.is-custom]:[&amp;&gt;:first-child]:lg:hidden! peer-[.is-custom]:[&amp;&gt;:first-child]:xl:hidden!" style="width:calc(100% - var(--assistant-sheet-width, 0px))"><nav aria-label="Pages" id="sidebar-content" class="hidden fixed lg:flex flex-col left-0 bottom-0 right-auto transition-transform duration-100 w-[16.5rem] pl-2 top-[calc(var(--mintlify-slot-header-height,3.5rem)+var(--banner-height,0px))] h-[calc(100vh-var(--mintlify-slot-header-height,3.5rem)-var(--banner-height,0px))]"><div class="flex-1 p-2 relative"><div class="text-sm flex flex-col px-2"><div class="relative hidden lg:flex items-center flex-1 z-20 gap-2.5"><button type="button" class="group/search flex pointer-events-auto rounded-xl w-full items-center text-sm leading-6 h-9 pl-3.5 pr-3 text-gray-500 dark:text-white/50 bg-background-light dark:bg-background-dark dark:brightness-[1.1] dark:ring-1 dark:hover:brightness-[1.25] ring-1 ring-gray-400/30 hover:ring-gray-600/30 dark:ring-gray-600/30 dark:hover:ring-gray-500/30 justify-between truncate gap-2" id="search-bar-entry" aria-label="Open search"><div class="flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-4 min-w-4 flex-none text-gray-700 group-hover/search:text-gray-800 dark:text-gray-400 dark:group-hover/search:text-gray-200"><path d="M15.25 15.25L11.285 11.285" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M7.75 12.75C10.5114 12.75 12.75 10.5114 12.75 7.75C12.75 4.98858 10.5114 2.75 7.75 2.75C4.98858 2.75 2.75 4.98858 2.75 7.75C2.75 10.5114 4.98858 12.75 7.75 12.75Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg><div class="truncate min-w-0">Search the docs...</div></div><span class="flex-none text-xs font-semibold">⌘<!-- -->K</span></button><button type="button" class="group/ai flex-none hidden lg:flex items-center justify-center gap-1.5 h-9 rounded-xl bg-background-light dark:bg-background-dark dark:brightness-[1.1] dark:ring-1 dark:hover:brightness-[1.25] ring-1 ring-gray-400/30 hover:ring-gray-600/30 dark:ring-gray-600/30 dark:hover:ring-gray-500/30 w-9 p-0" id="assistant-entry" aria-label="Toggle assistant panel" data-base-ui-tooltip-trigger=""><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-4 shrink-0 text-gray-700 group-hover/ai:text-gray-800 dark:text-gray-400 dark:group-hover/ai:text-gray-200"><path d="M5.65799 2.99L4.39499 2.569L3.97399 1.306C3.83699 0.898 3.16199 0.898 3.02499 1.306L2.60399 2.569L1.34099 2.99C1.13699 3.058 0.998993 3.249 0.998993 3.464C0.998993 3.679 1.13699 3.87 1.34099 3.938L2.60399 4.359L3.02499 5.622C3.09299 5.826 3.28499 5.964 3.49999 5.964C3.71499 5.964 3.90599 5.826 3.97499 5.622L4.39599 4.359L5.65899 3.938C5.86299 3.87 6.00099 3.679 6.00099 3.464C6.00099 3.249 5.86199 3.058 5.65799 2.99Z" fill="currentColor" stroke="none"></path><path d="M9.5 2.75L11.412 7.587L16.25 9.5L11.412 11.413L9.5 16.25L7.587 11.413L2.75 9.5L7.587 7.587L9.5 2.75Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div><div role="presentation" style="position:relative;--scroll-area-corner-height:0px;--scroll-area-corner-width:0px" data-component-part="scroll-area" id="navigation-items" class="min-w-0 absolute! inset-x-0 bottom-0 max-h-full top-11"><div role="presentation" data-id="base-ui-_R_2blfium6jiuqsnpfiutb_-viewport" tabindex="-1" class="size-full rounded-[inherit] [--scroll-area-fade-size:32px] px-2 py-6 base-ui-disable-scrollbar" style="overflow:scroll;mask-image:linear-gradient(to bottom, transparent 0, black min(var(--scroll-area-fade-size), var(--scroll-area-overflow-y-start, 0px)));-webkit-mask-image:linear-gradient(to bottom, transparent 0, black min(var(--scroll-area-fade-size), var(--scroll-area-overflow-y-start, 0px)));mask-composite:intersect;-webkit-mask-composite:source-in;mask-repeat:no-repeat" data-component-part="scroll-area-viewport"><div role="presentation" style="min-width:fit-content" data-component-part="scroll-area-content" 
113class="min-w-0! w-full"><div class="px-2"><button type="button" tabindex="0" aria-haspopup="menu" aria-expanded="false" id="base-ui-_R_6lmblfium6jiuqsnpfiutb_" class="group disabled:pointer-events-none [&amp;&gt;span]:line-clamp-1 overflow-hidden group focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-primary dark:focus-visible:outline-primary-light text-sm text-gray-950/50 dark:text-white/50 group-hover:text-gray-950/70 dark:group-hover:text-white/70 nav-dropdown-trigger mb-4 z-10 group flex w-full items-center pl-2 pr-3.5 py-1.5 rounded-[0.85rem] border border-gray-200/70 dark:border-white/[0.07] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 gap-1"><div class="nav-dropdown-item-icon size-8 flex items-center justify-center rounded-lg shrink-0 border border-gray-200/70 dark:border-white/[0.07]"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-primary dark:bg-primary-light" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/book.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/book.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="nav-dropdown-item-text-container flex-1 px-1 flex flex-col grow text-left"><p class="nav-dropdown-item-title text-base lg:text-sm font-medium text-gray-800 dark:text-gray-300">Documentation</p></div><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 rotate-90"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div><ul class="list-none nav-anchors" aria-hidden="true"></ul><div class="mt-6 lg:mt-8"><div class="sidebar-group-header flex items-center gap-2.5 pl-4 mb-3.5 lg:mb-2.5 text-gray-900 dark:text-gray-200 font-medium"><h3 class="sidebar-title text-[length:inherit] font-[inherit] leading-[inherit]"><span>Get Started</span></h3></div><ul class="sidebar-group space-y-px"><li id="/getting-started/welcome" class="relative scroll-m-4 first:scroll-m-20" data-title="Welcome!"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/getting-started/welcome"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/hand-wave.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/hand-wave.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Welcome!</span></div></div></a></li><li id="/getting-started/installation" class="relative scroll-m-4 first:scroll-m-20" data-title="Installation" data-active="true" data-active-nav-item="true"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] bg-primary/10 text-primary [text-shadow:-0.2px_0_0_currentColor,0.2px_0_0_currentColor] dark:text-primary-light dark:bg-primary-light/10" style="padding-left:1rem" aria-current="page" href="/getting-started/installation"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-primary dark:bg-primary-light" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/arrow-down-to-line.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/arrow-down-to-line.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Installation</span></div></div></a></li><li id="/getting-started/quickstart" class="relative scroll-m-4 first:scroll-m
113-20" data-title="Quickstart"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/getting-started/quickstart"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/rocket-launch.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/rocket-launch.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Quickstart</span></div></div></a></li><li id="/getting-started/whats-new" class="relative scroll-m-4 first:scroll-m-20" data-title="What&#x27;s New"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/getting-started/whats-new"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/sparkles.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/sparkles.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">What&#x27;s New</span></div></div></a></li></ul></div><div class="mt-6 lg:mt-8"><div class="sidebar-group-header flex items-center gap-2.5 pl-4 mb-3.5 lg:mb-2.5 text-gray-900 dark:text-gray-200 font-medium"><h3 class="sidebar-title text-[length:inherit] font-[inherit] leading-[inherit]"><span>Servers</span></h3></div><ul class="sidebar-group space-y-px"><li id="/servers/server" class="relative scroll-m-4 first:scroll-m-20" data-title="Overview"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/servers/server"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/server.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/server.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Overview</span></div></div></a></li><li data-title="Core Components" data-group-tag="" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/toolbox.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/toolbox.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex items-center gap-2 justify-start"><span>Core Components</span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li><li data-title="Working with Tools" data-group-tag="" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/wand-magic-sparkles.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/wand-magic-sparkles.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex items-center gap-2 justify-start"><span>Working with Tools</span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li><li data-title="MCP Providers" data-group-tag="" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/layer-group.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/layer-group.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex items-center gap-2 justify-start"><span>MCP Providers</span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li><li data-title="Interactivity" data-group-tag="" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/comments.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/comments.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex items-center gap-2 justify-start"><span>Interactivity</span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li><li data-title="Extensibility" data-group-tag="" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex items-center gap-2 justify-start"><span>Extensibility</span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li><li data-title="Auth" data-group-tag="" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/shield-check.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/shield-check.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex items-center gap-2 justify-start"><span>Auth</span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li><li data-title="Deployment" data-group-tag="" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/rocket.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/rocket.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex items-center gap-2 justify-start"><span>Deployment</span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li></ul></div><div class="mt-6 lg:mt-8"><div class="sidebar-group-header flex items-center gap-2.5 pl-4 mb-3.5 lg:mb-2.5 text-gray-900 dark:text-gray-200 font-medium"><h3 class="sidebar-title text-[length:inherit] font-[inherit] leading-[inherit]"><span>Apps</span></h3></div><ul class="sidebar-group space-y-px"><li id="/apps/overview" class="relative scroll-m-4 first:scroll-m
113-20" data-title="Overview"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/apps/overview"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/grid-2.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/grid-2.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Overview</span></div></div></a></li><li id="/apps/quickstart" class="relative scroll-m-4 first:scroll-m-20" data-title="Quickstart"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/apps/quickstart"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/rocket.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/rocket.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Quickstart</span></div></div></a></li><li id="/apps/fastmcp-app" class="relative scroll-m-4 first:scroll-m-20" data-title="FastMCPApp"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/apps/fastmcp-app"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">FastMCPApp</span></div></div></a></li><li id="/apps/prefab" class="relative scroll-m-4 first:scroll-m-20" data-title="Interactive Tools"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/apps/prefab"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/p
113alette.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/palette.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Interactive Tools</span></div></div></a></li><li id="/apps/generative" class="relative scroll-m-4 first:scroll-m-20" data-title="Generative UI"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/apps/generative"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/wand-magic-sparkles.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/wand-magic-sparkles.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Generative UI</span></div></div></a></li><li id="/apps/low-level" class="relative scroll-m-4 first:scroll-m-20" data-title="Custom HTML"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/apps/low-level"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/code.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/code.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Custom HTML</span></div></div></a></li><li data-title="Reference" data-group-tag="" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/book.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/book.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex items-center gap-2 justify-start"><span>Reference</span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li></ul></div><div class="mt-6 lg:mt-8"><div class="sidebar-group-header flex items-center gap-2.5 pl-4 mb-3.5 lg:mb-2.5 text-gray-900 dark:text-gray-200 font-medium"><h3 class="sidebar-title text-[length:inherit] font-[inherit] leading-[inherit]"><span>Clients</span></h3></div><ul class="sidebar-group space-y-px"><li id="/clients/client" class="relative scroll-m-4 first:scroll-m
113-20" data-title="Overview"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/clients/client"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/user-robot.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/user-robot.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Overview</span></div></div></a></li><li id="/clients/client-only-package" class="relative scroll-m-4 first:scroll-m-20" data-title="Client-Only Package"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/clients/client-only-package"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/box.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/box.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Client-Only Package</span></div></div></a></li><li id="/clients/transports" class="relative scroll-m-4 first:scroll-m-20" data-title="Trans
113ports"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/clients/transports"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/link.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/link.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Transports</span></div></div></a></li><li id="/clients/client-groups" class="relative scroll-m-4 first:scroll-m-20" data-title="Client Groups"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/clients/client-groups"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/layer-group.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/layer-group.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Client Groups</span><div class="h-[1lh] flex items-center shrink-0 leading-[inherit]"><span class="nav-tag-pill flex items-center w-fit"><span class="nav-tag-pill-text px-1 py-0.5 rounded-md text-[0.65rem] leading-tight font-bold text-primary dark:text-primary-light bg-primary/10" data-nav-tag="NEW">NEW</span></span></div></div></div></a></li><li id="/clients/fastmcp-remote" class="relative scroll-m-4 first:scroll-m-20" data-title="fastmcp-remote"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/clients/fastmcp-remote"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/bridge.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/bridge.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">fastmcp-remote</span></div></div></a></li><li data-title="Operations" data-group-tag="UPDATED" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/toolbox.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/toolbox.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex items-center gap-2 justify-start"><span>Operations</span><span class="nav-tag-pill flex items-center w-fit"><span class="nav-tag-pill-text px-1 py-0.5 rounded-md text-[0.65rem] leading-tight font-bold text-primary dark:text-primary-light bg-primary/10" data-nav-tag="UPDATED">UPDATED</span></span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li><li data-title="Authentication" data-group-tag="UPDATED" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/key.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/key.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex items-center gap-2 justify-start"><span>Authentication</span><span class="nav-tag-pill flex items-center w-fit"><span class="nav-tag-pill-text px-1 py-0.5 rounded-md text-[0.65rem] leading-tight font-bold text-primary dark:text-primary-light bg-primary/10" data-nav-tag="UPDATED">UPDATED</span></span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li></ul></div><div class="mt-6 lg:mt-8"><div class="sidebar-group-header flex items-center gap-2.5 pl-4 mb-3.5 lg:mb-2.5 text-gray-900 dark:text-gray-200 font-medium"><h3 class="sidebar-title text-[length:inherit] font-[inherit] leading-[inherit]"><span>Integrations</span></h3></div><ul class="sidebar-group space-y-px"><li data-title="Auth" data-group-tag="" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/key.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/key.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex items-center gap-2 justify-start"><span>Auth</span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li><li data-title="Web Frameworks" data-group-tag="" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/code.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/code.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex items-center gap-2 justify-start"><span>Web Frameworks</span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li><li data-title="AI Assistants" data-group-tag="" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/robot.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/robot.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex items-center gap-2 justify-start"><span>AI Assistants</span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li><li data-title="AI SDKs" data-group-tag="" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/microchip.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/microchip.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex items-center gap-2 justify-start"><span>AI SDKs</span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li><li id="/integrations/mcp-json-configuration" class="relative scroll-m-4 first:scroll-m
113-20" data-title="MCP.json"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/integrations/mcp-json-configuration"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/brackets-curly.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/brackets-curly.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">MCP.json</span></div></div></a></li></ul></div><div class="mt-6 lg:mt-8"><div class="sidebar-group-header flex items-center gap-2.5 pl-4 mb-3.5 lg:mb-2.5 text-gray-900 dark:text-gray-200 font-medium"><h3 class="sidebar-title text-[length:inherit] font-[inherit] leading-[inherit]"><span>More</span></h3></div><ul class="sidebar-group space-y-px"><li id="/more/settings" class="relative scroll-m-4 first:scroll-m-20" data-title="Settings"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/more/settings"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/gear.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/gear.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Settings</span></div></div></a></li><li data-title="CLI" data-group-tag="" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/terminal.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/terminal.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex items-center gap-2 justify-start"><span>CLI</span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li><li data-title="Upgrading" data-group-tag="" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/up.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/up.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex items-center gap-2 justify-start"><span>Upgrading</span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li><li data-title="Development" data-group-tag="" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/code.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/code.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex items-center gap-2 justify-start"><span>Development</span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li><li data-title="What&#x27;s New" data-group-tag="" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/sparkles.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/sparkles.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex items-center gap-2 justify-start"><span>What&#x27;s New</span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li>
113<li id="/more/faq" class="relative scroll-m-4 first:scroll-m-20" data-title="FAQ"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/more/faq"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/circle-question.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/circle-question.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">FAQ</span></div></div></a></li></ul></div>
113<script>(function () {
114  try {
115    if (window.__mintlifyInitialSidebarScrollDone) return;
116    window.__mintlifyInitialSidebarScrollDone = true;
117
118    var path = (window.location.pathname || '/').split('#')[0].split('?')[0];
119    if (path.endsWith('/index')) path = path.slice(0, -6);
120    else if (path === 'index') path = '';
121
122    var candidates = [];
123    if (path) candidates.push(path);
124    if (path.startsWith('/')) candidates.push(path.slice(1));
125    else candidates.push('/' + path);
126
127    var item = null;
128    for (var i = 0; i < candidates.length && !item; i++) {
129      var matches = document.querySelectorAll('[id="' + candidates[i].replace(/"/g, '\\"') + '"]');
130      for (var j = 0; j < matches.length; j++) {
131        if (matches[j].closest('#sidebar, #sidebar-content')) {
132          item = matches[j];
133          break;
134        }
135      }
136    }
137    if (!item) return;
138
139    var parent = item.closest('[data-component-part="scroll-area-viewport"]');
140    if (!parent) {
141      parent = item.parentElement;
142      while (parent) {
143        var style = getComputedStyle(parent);
144        if (style.overflowY === 'auto' || style.overflowY === 'scroll') break;
145        parent = parent.parentElement;
146      }
147    }
148    if (!parent) return;
149
150    var parentRect = parent.getBoundingClientRect();
151    var itemRect = item.getBoundingClientRect();
152    if (itemRect.top >= parentRect.top && itemRect.bottom <= parentRect.bottom) return;
153
154    var itemTopRelative = itemRect.top - parentRect.top + parent.scrollTop;
155    parent.scrollTop = itemTopRelative - parentRect.height / 2 + itemRect.height / 2;
156  } catch (e) {}
157})();</script>
157</div></div></div></div></div><div class="almond-nav-bottom-section w-full px-4"><div class="almond-nav-bottom-section-divider h-px bg-gray-200/70 dark:bg-gray-800/70 w-full"></div><div class="flex items-center gap-3 py-3"><div class="relative flex lg:h-7 h-[2.375rem] justify-between lg:w-[4.75rem] w-[6.5rem] items-center p-1 rounded-full border border-gray-200/70 dark:border-white/[0.07] hover:border-gray-200 dark:hover:border-white/10" data-theme-preference-switch="pill" role="group" aria-label="Theme preference"><button aria-label="Switch to system theme" class="theme-preference-switch-option z-10 flex lg:size-5 size-[1.875rem] items-center justify-center transition-colors duration-200 rounded-full" data-theme-preference-value="system" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lg:size-3 size-3.5"><path d="M4.5 15.5L9 14.5L13.5 15.5" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9 11.75V14.5" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M14.25 2.75H3.75C2.64543 2.75 1.75 3.64543 1.75 4.75V9.75C1.75 10.8546 2.64543 11.75 3.75 11.75H14.25C15.3546 11.75 16.25 10.8546 16.25 9.75V4.75C16.25 3.64543 15.3546 2.75 14.25 2.75Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button><button aria-label="Switch to light theme" class="theme-preference-switch-option z-10 flex lg:size-5 size-[1.875rem] items-center justify-center transition-colors duration-200 rounded-full" data-theme-preference-value="light" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lg:size-3 size-3.5"><path d="M9 1.25V2.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M14.48 3.52002L13.773 4.22702" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M16.75 9H15.75" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M14.48 14.4799L13.773 13.7729" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9 16.75V15.75" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M3.52 14.4799L4.227 13.7729" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M1.25 9H2.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M3.52 3.52002L4.227 4.22702" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9 13.25C11.3472 13.25 13.25 11.3472 13.25 9C13.25 6.65279 11.3472 4.75 9 4.75C6.65279 4.75 4.75 6.65279 4.75 9C4.75 11.3472 6.65279 13.25 9 13.25Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button><button aria-label="Switch to dark theme" class="theme-preference-switch-option z-10 flex lg:size-5 size-[1.875rem] items-center justify-center transition-colors duration-200 rounded-full" data-theme-preference-value="dark" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lg:size-3 size-3.5"><path d="M13 11.75C9.548 11.75 6.75 8.95201 6.75 5.50001C6.75 4.14801 7.183 2.90101 7.912 1.87801C4.548 2.50601 2 5.45301 2 9.00001C2 13.004 5.246 16.25 9.25 16.25C12.622 16.25 15.448 13.944 16.259 10.826C15.309 11.409 14.196 11.75 13 11.75Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div></div></div></nav>
157<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://gofastmcp.com/#organization","name":"FastMCP","url":"https://gofastmcp.com","logo":{"@type":"ImageObject","url":"https://mintcdn.com/fastmcp/Lu2sdJVHDyHdvswk/assets/brand/wordmark.png?fit=max&auto=format&n=Lu2sdJVHDyHdvswk&q=85&s=67680e9b1c641023511881a24f296077"}},{"@type":"WebSite","@id":"https://gofastmcp.com#website","name":"FastMCP","url":"https://gofastmcp.com","publisher":{"@id":"https://gofastmcp.com/#organization"}},{"@type":"WebPage","@id":"https://gofastmcp.com/getting-started/installation#webpage","url":"https://gofastmcp.com/getting-started/installation","name":"Installation","description":"Install FastMCP and verify your setup","dateModified":"2026-09-19T06:29:52.375Z","isPartOf":{"@id":"https://gofastmcp.com#website"},"breadcrumb":{"@id":"https://gofastmcp.com/getting-started/installation#breadcrumb"}},{"@type":"BreadcrumbList","@id":"https://gofastmcp.com/getting-started/installation#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Get Started","item":"https://gofastmcp.com/getting-started/welcome"},{"@type":"ListItem","position":2,"name":"Installation","item":"https://gofastmcp.com/getting-started/installation"}]},{"@type":["Article","TechArticle"],"@id":"https://gofastmcp.com/getting-started/installation#article","headline":"Installation","name":"Installation","description":"Install FastMCP and verify your setup","url":"https://gofastmcp.com/getting-started/installation","mainEntityOfPage":{"@id":"https://gofastmcp.com/getting-started/installation#webpage"},"dateModified":"2026-09-19T06:29:52.375Z","publisher":{"@id":"https://gofastmcp.com/#organization"},"isPartOf":{"@id":"https://gofastmcp.com#website"}}]}</script>
157<script>document.documentElement.setAttribute('data-page-mode', "none");</script>
157<span class="fixed inset-0 -z-10 pointer-events-none bg-gray-950/[0.03] dark:bg-[#09090B]" id="almond-background-color"></span><span class="block absolute dark:hidden inset-0 overflow-hidden pointer-events-none h-[64rem]" style="background:radial-gradient(49.63% 57.02% at 58.99% -7.2%, rgba(45, 0, 247, 0.1) 39.4%, rgba(0, 0, 0, 0) 100%)"></span><span class="hidden absolute dark:block inset-0 overflow-hidden pointer-events-none h-[64rem]" style="background:radial-gradient(49.63% 57.02% at 58.99% -7.2%, rgba(76, 201, 240, 0.1) 39.4%, rgba(0, 0, 0, 0) 100%)"></span><style data-custom-css-index="0" data-custom-css-path="css/banner.css">/* Banner: an animated brand-rainbow wash behind Mintlify's white text.
158   Mintlify always renders banner text white, so every gradient stop is a
159   deep, saturated shade (all >=7:1 on white) — the colors evoke the FastMCP
160   watercolor logo while keeping the announcement legible in both themes.
161   A dark fallback color is configured in docs.json for the no-CSS case. */
162#banner {
163  font-size: 0.95rem !important;
164  font-weight: 600 !important;
165  padding-top: 12px !important;
166  padding-bottom: 12px !important;
167  overflow: hidden !important;
168}
169
170#banner::before {
171  content: "";
172  position: absolute;
173  inset: 0;
174  z-index: 0;
175  background: linear-gradient(
176    90deg,
177    #1e40af 0%,
178    #5b21b6 22%,
179    #115e59 44%,
180    #9a3412 66%,
181    #9d174d 88%,
182    #1e40af 100%
183  );
184  background-size: 250% 100%;
185  animation: colorWave 18s ease-in-out infinite alternate;
186  pointer-events: none;
187}
188
189/* Keep the announcement text above the animated wash. */
190#banner > * {
191  position: relative;
192  z-index: 1;
193}
194
195@keyframes colorWave {
196  0% {
197    background-position: 0% 50%;
198  }
199  100% {
200    background-position: 100% 50%;
201  }
202}
203
204#banner * {
205  margin: 0 !important;
206}
207
208@media (max-width: 767px) {
209  #banner {
210    font-size: 0.8rem !important;
211    padding-top: 8px !important;
212    padding-bottom: 8px !important;
213  }
214}
215
216@media (prefers-reduced-motion: reduce) {
217  #banner::before {
218    animation: none;
219  }
220}
221</style><style data-custom-css-index="1" data-custom-css-path="css/python-sdk.css">a:has(svg.icon) {
222  border: none !important;
223}</style><style data-custom-css-index="2" data-custom-css-path="css/style.css">html:not([data-page-mode="wide"]) #content-area {
224  max-width: 44rem !important;
225}
226
227img.nav-logo {
228  max-width: 200px;
229}
230
231/* Code highlighting -- target only inline code elements, not code blocks */
232p code:not(pre code),
233table code:not(pre code),
234.prose code:not(pre code),
235li code:not(pre code),
236h1 code:not(pre code),
237h2 code:not(pre code),
238h3 code:not(pre code),
239h4 code:not(pre code),
240h5 code:not(pre code),
241h6 code:not(pre code) {
242  color: #f72585 !important;
243  background-color: rgba(247, 37, 133, 0.09);
244}
245
246/* V2 banner - inside content-container, breaks out of padding with negative margins */
247#v2-banner {
248  display: block;
249  background: linear-gradient(135deg, #4cc9f0 0%, #2d00f7 100%);
250  color: white;
251  text-align: center;
252  padding: 10px 16px;
253  font-size: 0.875rem;
254  font-weight: 600;
255  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
256  margin: -2rem -2rem 1.5rem -2rem;
257  width: calc(100% + 4rem);
258  border-radius: 8px 8px 0 0;
259}
260
261#v2-banner a {
262  color: white;
263  text-decoration: underline;
264  font-weight: 700;
265}
266
267#v2-banner a:hover {
268  opacity: 0.9;
269}
270
271@media (min-width: 1024px) {
272  #v2-banner {
273    margin: -3rem -4rem 1.5rem -4rem;
274    width: calc(100% + 8rem);
275  }
276}
277
278.dark #v2-banner {
279  background: linear-gradient(135deg, #2d00f7 0%, #4cc9f0 100%);
280}
281
282/* V3 banner - inside content-container, breaks out of padding with negative margins */
283#v3-banner {
284  display: block;
285  background: linear-gradient(135deg, #4cc9f0 0%, #2d00f7 100%);
286  color: white;
287  text-align: center;
288  padding: 10px 16px;
289  font-size: 0.875rem;
290  font-weight: 600;
291  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
292  margin: -2rem -2rem 1.5rem -2rem;
293  width: calc(100% + 4rem);
294  border-radius: 8px 8px 0 0;
295}
296
297#v3-banner a {
298  color: white;
299  text-decoration: underline;
300  font-weight: 700;
301}
302
303#v3-banner a:hover {
304  opacity: 0.9;
305}
306
307@media (min-width: 1024px) {
308  #v3-banner {
309    margin: -3rem -4rem 1.5rem -4rem;
310    width: calc(100% + 8rem);
311  }
312}
313
314.dark #v3-banner {
315  background: linear-gradient(135deg, #2d00f7 0%, #4cc9f0 100%);
316}
317
318
319
320
321
322</style><style data-custom-css-index="3" data-custom-css-path="css/version-badge.css">/* Version badge -- display a badge with the current version of the documentation */
323.version-badge {
324  --color-text: #c2410c !important;
325  --color-bg: #fef2f2 !important;
326  color: #c2410c !important;
327  background: #fef2f2 !important;
328  border: 1px solid rgba(220, 38, 38, 0.3) !important;
329  transition: box-shadow 0.2s, transform 0.15s;
330}
331
332.version-badge:hover {
333  box-shadow: 0 2px 8px 0 rgba(160, 132, 252, 0.1);
334  transform: translateY(-1px) scale(1.03);
335}
336
337.dark .version-badge {
338  --color-text: #f1f5f9 !important;
339  --color-bg: #334155 !important;
340  color: #f1f5f9 !important;
341  background: #334155 !important;
342  border: 1px solid #64748b !important;
343}
344
345</style><style data-custom-css-index="4" data-custom-css-path="css/language-dropdown.css">/* Language dropdown: injected by language-dropdown.js into the sidebar
346   footer, to the right of Mintlify's theme selector. Mirrors the almond
347   theme pill's exact metrics (lg:h-7 desktop / 2.375rem mobile, rounded-full,
348   border-gray-200/70, dark:border-white/[0.07]) so the two controls read as
349   one family. */
350#language-switch {
351  margin-left: auto;
352  display: inline-flex;
353  align-items: center;
354  position: relative;
355}
356
357#language-switch select {
358  appearance: none;
359  -webkit-appearance: none;
360  background-color: transparent;
361  border: 1px solid rgb(229 231 235 / 0.7);
362  border-radius: 9999px;
363  color: rgb(107 114 128);
364  cursor: pointer;
365  font-size: 0.75rem;
366  line-height: 1rem;
367  height: 2.375rem;
368  /* Left padding clears the language mark drawn by ::before. */
369  padding: 0 1.375rem 0 1.875rem;
370  /* Chevron, drawn in the same gray as the label text. */
371  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
372  background-repeat: no-repeat;
373  background-position: right 0.5rem center;
374  background-size: 0.7rem;
375  transition: border-color 0.2s;
376}
377
378@media (min-width: 1024px) {
379  #language-switch select {
380    height: 1.75rem;
381  }
382}
383
384#language-switch select:hover {
385  color: rgb(75 85 99);
386  border-color: rgb(229 231 235);
387}
388
389#language-switch select:focus-visible {
390  outline: 2px solid rgb(45 0 247 / 0.4);
391  outline-offset: 1px;
392}
393
394.dark #language-switch select {
395  border-color: rgb(255 255 255 / 0.07);
396  color: rgb(156 163 175);
397  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
398}
399
400.dark #language-switch select:hover {
401  color: rgb(209 213 219);
402  border-color: rgb(255 255 255 / 0.1);
403}
404
405/* Colored language mark on the visible trigger; the native <option>s stay
406   plain. language-dropdown.js mirrors the current selection onto data-lang,
407   so the icon always matches the selected value. Brand colors carry their
408   own contrast (the TS mark keeps a white plate behind the letters), so the
409   same artwork works in both themes. */
410#language-switch::before {
411  content: "";
412  position: absolute;
413  left: 0.625rem;
414  top: 50%;
415  transform: translateY(-50%);
416  width: 0.875rem;
417  height: 0.875rem;
418  background: center / contain no-repeat;
419  pointer-events: none;
420}
421
422/* Two-tone Python mark (#3776AB / #FFD43B). */
423#language-switch[data-lang="python"]::before {
424  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 128 128'%3E%3Cpath fill='%233776AB' d='M63.391 1.988c-4.222.02-8.252.379-11.8 1.007-10.45 1.846-12.346 5.71-12.346 12.837v9.411h24.693v3.137H29.977c-7.176 0-13.46 4.313-15.426 12.521-2.268 9.405-2.368 15.275 0 25.096 1.755 7.311 5.947 12.519 13.124 12.519h8.491V67.234c0-8.151 7.051-15.34 15.426-15.34h24.665c6.866 0 12.346-5.654 12.346-12.548V15.833c0-6.693-5.646-11.72-12.346-12.837-4.244-.706-8.645-1.027-12.866-1.008zM50.037 9.557c2.55 0 4.634 2.117 4.634 4.721 0 2.593-2.083 4.69-4.634 4.69-2.56 0-4.633-2.097-4.633-4.69-.001-2.604 2.073-4.721 4.633-4.721z'/%3E%3Cpath fill='%23FFD43B' d='M91.682 28.38v10.966c0 8.5-7.208 15.655-15.426 15.655H51.591c-6.756 0-12.346 5.783-12.346 12.549v23.515c0 6.691 5.818 10.628 12.346 12.547 7.816 2.297 15.312 2.713 24.665 0 6.216-1.801 12.346-5.423 12.346-12.547v-9.412H63.938v-3.138h37.012c7.176 0 9.852-5.005 12.348-12.519 2.578-7.735 2.467-15.174 0-25.096-1.774-7.145-5.161-12.521-12.348-12.521h-9.268zM77.809 87.927c2.561 0 4.634 2.097 4.634 4.692 0 2.602-2.074 4.719-4.634 4.719-2.55 0-4.633-2.117-4.633-4.719 0-2.595 2.083-4.692 4.633-4.692z'/%3E%3C/svg%3E");
425}
426
427/* TypeScript mark: #3178C6 rounded square, white TS (white plate under the
428   letter knockouts keeps them white in dark mode). */
429#language-switch[data-lang="typescript"]::before {
430  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='2' y='2' width='20' height='20' fill='%23fff'/%3E%3Cpath fill='%233178C6' d='M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z'/%3E%3C/svg%3E");
431}
432</style><!--$--><!--/$-->
432<div class="flex rounded-2xl h-[calc(100dvh-1rem-var(--mintlify-slot-header-height,7rem))] lg:h-[calc(100dvh-0.5rem-var(--mintlify-slot-header-height,3.5rem)-var(--banner-height,0px))]"><main class="flex-1 px-4 pt-6 sm:px-8 sm:pt-8 lg:pt-12 lg:ml-66 lg:px-16 overflow-y-auto stable-scrollbar-gutter rounded-2xl bg-background-light dark:bg-background-dark border border-gray-200/70 dark:border-white/[0.07]" id="content-container"><div class="flex flex-row-reverse gap-x-12 justify-center mx-auto w-full lg:pl-12"><div class="hidden xl:flex self-start sticky xl:flex-col max-w-[28rem] z-21 h-[calc(100vh-6.5rem)] top-0" id="content-side-layout"><div class="z-10 hidden xl:flex box-border max-h-full pl-10 w-[19rem]" id="table-of-contents-layout"><div role="presentation" style="position:relative;--scroll-area-corner-height:0px;--scroll-area-corner-width:0px" data-component-part="scroll-area" id="table-of-contents" class="min-w-0 text-gray-600 text-sm leading-6 w-[16.5rem] -mt-10"><div role="presentation" data-id="base-ui-_R_5dllfium6jiuqsnpfiutb_-viewport" tabindex="-1" class="size-full rounded-[inherit] [--scroll-area-fade-size:32px] pt-10 pb-4 base-ui-disable-scrollbar" style="overflow:scroll" data-component-part="scroll-area-viewport"><div role="presentation" style="min-width:fit-content" data-component-part="scroll-area-content" class="min-w-0! w-full space-y-2"><nav aria-labelledby="_R_1dllfium6jiuqsnpfiutb_"><h2 id="_R_1dllfium6jiuqsnpfiutb_" class="m-0 font-normal"><button type="button" class="text-gray-700 dark:text-gray-300 font-medium flex items-center space-x-2 hover:text-gray-900 dark:hover:text-gray-100 transition-colors cursor-pointer"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 shrink-0"><path d="M2.75 14.25H15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.75 3.75H15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.75 9H8.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg><span>On this page</span></button></h2><div><ul id="table-of-contents-content" class="toc"><li class="toc-item relative" data-depth="0"><a style="--toc-padding-left:1rem" href="#install-fastmcp" class="break-words py-1 block pl-[calc(var(--toc-padding-left)+var(--toc-focus-padding,0rem))] focus-visible:[--toc-focus-padding:0.25rem] focus-visible:-ml-1 focus-visible:-outline-offset-2 font-medium border-l border-gray-950/5 dark:border-white/10 hover:border-gray-950/20 dark:hover:border-white/20 [[data-active]&gt;&amp;]:border-primary dark:[[data-active]&gt;&amp;]:border-primary-light [[data-active]&gt;&amp;:hover]:border-primary dark:[[data-active]&gt;&amp;:hover]:border-primary-light dark:text-gray-400 [li:not([data-active])&gt;&amp;:hover]:text-gray-900 dark:[li:not([data-active])&gt;&amp;:hover]:text-gray-300 [[data-active]&gt;&amp;]:text-primary dark:[[data-active]&gt;&amp;]:text-primary-light [[data-active]&gt;&amp;]:[text-shadow:-0.15px_0_0_currentColor,0.15px_0_0_currentColor]">Install FastMCP</a><ul class=""><li class="toc-item relative border-l pl-4 border-gray-950/5 dark:border-white/10 hover:border-gray-950/20 dark:hover:border-white/20 data-active:border-primary data-active:hover:border-primary dark:data-active:border-primary-light" data-depth="1"><a style="--toc-padding-left:1rem" href="#optional-dependencies" class="group flex items-start break-words py-1 pl-[calc(var(--toc-padding-left)+var(--toc-focus-padding,0rem))] whitespace-pre-wrap focus-visible:[--toc-focus-padding:0.25rem] focus-visible:-ml-1 focus-visible:-outline-offset-2 text-gray-500 [li:not([data-active])&gt;&amp;:hover]:text-gray-900 dark:text-gray-400 dark:[li:not([data-active])&gt;&amp;:hover]:text-gray-300 [[data-active]&gt;&amp;]:text-primary dark:[[data-active]&gt;&amp;]:text-primary-light">Optional Dependencies</a></li><li class="toc-item relative border-l pl-4 border-gray-950/5 dark:border-white/10 hover:border-gray-950/20 dark:hover:border-white/20 data-active:border-primary data-active:hover:border-primary dark:data-active:border-primary-light" data-depth="1"><a style="--toc-padding-left:1rem" href="#verify-installation" class="group flex items-start break-words py-1 pl-[calc(var(--toc-padding-left)+var(--toc-focus-padding,0rem))] whitespace-pre-wrap focu
432s-visible:[--toc-focus-padding:0.25rem] focus-visible:-ml-1 focus-visible:-outline-offset-2 text-gray-500 [li:not([data-active])&gt;&amp;:hover]:text-gray-900 dark:text-gray-400 dark:[li:not([data-active])&gt;&amp;:hover]:text-gray-300 [[data-active]&gt;&amp;]:text-primary dark:[[data-active]&gt;&amp;]:text-primary-light">Verify Installation</a></li><li class="toc-item relative border-l pl-4 border-gray-950/5 dark:border-white/10 hover:border-gray-950/20 dark:hover:border-white/20 data-active:border-primary data-active:hover:border-primary dark:data-active:border-primary-light" data-depth="1"><a style="--toc-padding-left:1rem" href="#dependency-licensing" class="group flex items-start break-words py-1 pl-[calc(var(--toc-padding-left)+var(--toc-focus-padding,0rem))] whitespace-pre-wrap focus-visible:[--toc-focus-padding:0.25rem] focus-visible:-ml-1 focus-visible:-outline-offset-2 text-gray-500 [li:not([data-active])&gt;&amp;:hover]:text-gray-900 dark:text-gray-400 dark:[li:not([data-active])&gt;&amp;:hover]:text-gray-300 [[data-active]&gt;&amp;]:text-primary dark:[[data-active]&gt;&amp;]:text-primary-light">Dependency Licensing</a></li></ul></li><li class="toc-item relative" data-depth="0"><a style="--toc-padding-left:1rem" href="#upgrading" class="break-words py-1 block pl-[calc(var(--toc-padding-left)+var(--toc-focus-padding,0rem))] focus-visible:[--toc-focus-padding:0.25rem] focus-visible:-ml-1 focus-visible:-outline-offset-2 font-medium border-l border-gray-950/5 dark:border-white/10 hover:border-gray-950/20 dark:hover:border-white/20 [[data-active]&gt;&amp;]:border-primary dark:[[data-active]&gt;&amp;]:border-primary-light [[data-active]&gt;&amp;:hover]:border-primary dark:[[data-active]&gt;&amp;:hover]:border-primary-light dark:text-gray-400 [li:not([data-active])&gt;&amp;:hover]:text-gray-900 dark:[li:not([data-active])&gt;&amp;:hover]:text-gray-300 [[data-active]&gt;&amp;]:text-primary dark:[[data-active]&gt;&amp;]:text-primary-light [[data-active]&gt;&amp;]:[text-shadow:-0.15px_0_0_currentColor,0.15px_0_0_currentColor]">Upgrading</a><ul class=""><li class="toc-item relative border-l pl-4 border-gray-950/5 dark:border-white/10 hover:border-gray-950/20 dark:hover:border-white/20 data-active:border-primary data-active:hover:border-primary dark:data-active:border-primary-light" data-depth="1"><a style="--toc-padding-left:1rem" href="#from-fastmcp-3-0" class="group flex items-start break-words py-1 pl-[calc(var(--toc-padding-left)+var(--toc-focus-padding,0rem))] whitespace-pre-wrap focus-visible:[--toc-focus-padding:0.25rem] focus-visible:-ml-1 focus-visible:-outline-offset-2 text-gray-500 [li:not([data-active])&gt;&amp;:hover]:text-gray-900 dark:text-gray-400 dark:[li:not([data-active])&gt;&amp;:hover]:text-gray-300 [[data-active]&gt;&amp;]:text-primary dark:[[data-active]&gt;&amp;]:text-primary-light">From FastMCP 3.0</a></li><li class="toc-item relative border-l pl-4 border-gray-950/5 dark:border-white/10 hover:border-gray-950/20 dark:hover:border-white/20 data-active:border-primary data-active:hover:border-primary dark:data-active:border-primary-light" data-depth="1"><a style="--toc-padding-left:1rem" href="#from-fastmcp-2-0" class="group flex items-start break-words py-1 pl-[calc(var(--toc-padding-left)+var(--toc-focus-padding,0rem))] whitespace-pre-wrap focus-visible:[--toc-focus-padding:0.25rem] focus-visible:-ml-1 focus-visible:-outline-offset-2 text-gray-500 [li:not([data-active])&gt;&amp;:hover]:text-gray-900 dark:text-gray-400 dark:[li:not([data-active])&gt;&amp;:hover]:text-gray-300 [[data-active]&gt;&amp;]:text-primary dark:[[data-active]&gt;&amp;]:text-primary-light">From FastMCP 2.0</a></li><li class="toc-item relative border-l pl-4 border-gray-950/5 dark:border-white/10 hover:border-gray-950/20 dark:hover:border-white/20 data-active:border-primary data-active:hover:border-primary dark:data-active:border-primary-light" data-depth="1"><a style="--toc-padding-left:1rem" href="#from-the-mcp-sdk" class="group flex items-start break-words py-1 pl-[calc(var(--toc-padding-left)+var(--toc-focus-padding,0rem))] whitespace-pre-wrap focu
432s-visible:[--toc-focus-padding:0.25rem] focus-visible:-ml-1 focus-visible:-outline-offset-2 text-gray-500 [li:not([data-active])&gt;&amp;:hover]:text-gray-900 dark:text-gray-400 dark:[li:not([data-active])&gt;&amp;:hover]:text-gray-300 [[data-active]&gt;&amp;]:text-primary dark:[[data-active]&gt;&amp;]:text-primary-light">From the MCP SDK</a></li><li class="toc-item relative border-l pl-4 border-gray-950/5 dark:border-white/10 hover:border-gray-950/20 dark:hover:border-white/20 data-active:border-primary data-active:hover:border-primary dark:data-active:border-primary-light" data-depth="2"><a style="--toc-padding-left:2rem" href="#from-the-high-level-server" class="group flex items-start break-words py-1 pl-[calc(var(--toc-padding-left)+var(--toc-focus-padding,0rem))] whitespace-pre-wrap focus-visible:[--toc-focus-padding:0.25rem] focus-visible:-ml-1 focus-visible:-outline-offset-2 text-gray-500 [li:not([data-active])&gt;&amp;:hover]:text-gray-900 dark:text-gray-400 dark:[li:not([data-active])&gt;&amp;:hover]:text-gray-300 [[data-active]&gt;&amp;]:text-primary dark:[[data-active]&gt;&amp;]:text-primary-light">From the high-level server</a></li><li class="toc-item relative border-l pl-4 border-gray-950/5 dark:border-white/10 hover:border-gray-950/20 dark:hover:border-white/20 data-active:border-primary data-active:hover:border-primary dark:data-active:border-primary-light" data-depth="2"><a style="--toc-padding-left:2rem" href="#from-the-low-level-server" class="group flex items-start break-words py-1 pl-[calc(var(--toc-padding-left)+var(--toc-focus-padding,0rem))] whitespace-pre-wrap focus-visible:[--toc-focus-padding:0.25rem] focus-visible:-ml-1 focus-visible:-outline-offset-2 text-gray-500 [li:not([data-active])&gt;&amp;:hover]:text-gray-900 dark:text-gray-400 dark:[li:not([data-active])&gt;&amp;:hover]:text-gray-300 [[data-active]&gt;&amp;]:text-primary dark:[[data-active]&gt;&amp;]:text-primary-light">From the low-level server</a></li></ul></li><li class="toc-item relative" data-depth="0"><a style="--toc-padding-left:1rem" href="#troubleshooting" class="break-words py-1 block pl-[calc(var(--toc-padding-left)+var(--toc-focus-padding,0rem))] focus-visible:[--toc-focus-padding:0.25rem] focus-visible:-ml-1 focus-visible:-outline-offset-2 font-medium border-l border-gray-950/5 dark:border-white/10 hover:border-gray-950/20 dark:hover:border-white/20 [[data-active]&gt;&amp;]:border-primary dark:[[data-active]&gt;&amp;]:border-primary-light [[data-active]&gt;&amp;:hover]:border-primary dark:[[data-active]&gt;&amp;:hover]:border-primary-light dark:text-gray-400 [li:not([data-active])&gt;&amp;:hover]:text-gray-900 dark:[li:not([data-active])&gt;&amp;:hover]:text-gray-300 [[data-active]&gt;&amp;]:text-primary dark:[[data-active]&gt;&amp;]:text-primary-light [[data-active]&gt;&amp;]:[text-shadow:-0.15px_0_0_currentColor,0.15px_0_0_currentColor]">Troubleshooting</a><ul class=""><li class="toc-item relative border-l pl-4 border-gray-950/5 dark:border-white/10 hover:border-gray-950/20 dark:hover:border-white/20 data-active:border-primary data-active:hover:border-primary dark:data-active:border-primary-light" data-depth="1"><a style="--toc-padding-left:1rem" href="#import-fastmcp-fails-after-a-pip-upgrade" class="group flex items-start break-words py-1 pl-[calc(var(--toc-padding-left)+var(--toc-focus-padding,0rem))] whitespace-pre-wrap focus-visible:[--toc-focus-padding:0.25rem] focus-visible:-ml-1 focus-visible:-outline-offset-2 text-gray-500 [li:not([data-active])&gt;&amp;:hover]:text-gray-900 dark:text-gray-400 dark:[li:not([data-active])&gt;&amp;:hover]:text-gray-300 [[data-active]&gt;&amp;]:text-primary dark:[[data-active]&gt;&amp;]:text-primary-light">import fastmcp fails after a pip upgrade</a></li></ul></li><li class="toc-item relative" data-depth="0"><a style="--toc-padding-left:1rem" href="#versioning-policy" class="break-words py-1 block pl-[calc(var(--toc-padding-left)+var(--toc-focus-padding,0rem))] focus-visible:[--toc-focus-padding:0.25rem] focus-visible:-ml-1 focus-visible:-outline-offset-2 font-medium border-l border-gray-950/5 dark:border-white/10 hover:border-gray-950/20 dark:hover:border-white/20 [[data-active]&gt;&amp;]:border-primary dark:[[data-active]&gt;&amp;]:border-primary-light [[data-active]&gt;&amp;:hover]:border-primary dark:[[data-active]&gt;&amp;:hover]:border-primary-light dark:text-gray-400 [li:not([data-active])&gt;&amp;:hover]:text-gray-900 dark:[li:not([data-active])&gt;&amp;:hover]:text-gray-300 [[data-active]&gt;&amp;]:text-primary dark:[[data-active]&gt;&amp;]:text-primary-light [[data-active]&gt;&amp;]:[text-shadow:-0.15px_0_0_currentColor,0.15px_0_0_currentColor]">Versioning Policy</a></li><li class="toc-item relative" data-depth="0"><a style="--toc-padding-left:1rem" href="#contributing-to-fastmcp" class="break-words py-1 block pl-[calc(var(--toc-padding-left)+var(--toc-focus-padding,0rem))] focus-visible:[--toc-focus-padding:0.25rem] focus-visible:-ml-1 focus-visible:-outline-offset-2 font-medium border-l border-gray-950/5 dark:border-white/10 hover:border-gray-950/20 dark:hover:border-white/20 [[data-active]&gt;&amp;]:border-primary dark:[[data-active]&gt;&amp;]:border-primary-light [[data-active]&gt;&amp;:hover]:border-primary dark:[[data-active]&gt;&amp;:hover]:border-primary-light dark:text-gray-400 [li:not([data-active])&gt;&amp;:hover]:text-gray-900 dark:[li:not([data-active])&gt;&amp;:hover]:text-gray-300 [[data-active]&gt;&amp;]:text-primary dark:[[data-active]&gt;&amp;]:text-primary-light [[data-active]&gt;&amp;]:[text-shadow:-0.15px_0_0_currentColor,0.15px_0_0_currentColor]">Contributing to FastMCP</a></li></ul></div></nav></div></div></div></div></div><div class="w-full min-w-0 contain-[inline-size] max-w-xl" id="content-area"><header id="header" class="relative leading-none @container/page-header"><div class="mt-0.5 space-y-2.5"><div class="eyebrow h-5 text-primary dark:text-primary-light text-sm font-semibold">Get Started</div><div class="flex flex-col sm:flex-row items-start sm:items-center relative gap-2 min-w-0"><h1 id="page-title" class="text-3xl sm:text-4xl text-gray-900 tracking-tight dark:text-gray-200 [overflow-wrap:anywhere] break-all font-semibold">Installation</h1><div id="page-context-menu" class="items-center shrink-0 min-w-[156px] justify-end ml-auto hidden @[520px]/page-header:flex"><button id="page-context-menu-button" class="rounded-l-xl px-3 text-gray-700 dark:text-gray-300 py-1.5 border border-gray-200 dark:border-white/[0.07] bg-background-light dark:bg-background-dark hover:bg-gray-600/5 dark:hover:bg-gray-200/5 border-r-0" aria-label="Copy page"><div class="flex items-center gap-2 text-sm text-center font-medium"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 
4321.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg><span class="grid"><span aria-hidden="true" class="invisible col-start-1 row-start-1">Copy page</span><span class="col-start-1 row-start-1">Copy page</span></span></div></button><button type="button" tabindex="0" aria-haspopup="menu" aria-expanded="false" id="base-ui-_R_dn26dllfium6jiuqsnpfiutb_" aria-label="More actions" class="group disabled:pointer-events-none [&amp;&gt;span]:line-clamp-1 overflow-hidden group focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-primary dark:focus-visible:outline-primary-light py-0.5 gap-1 text-sm text-gray-950/50 dark:text-white/50 group-hover:text-gray-950/70 dark:group-hover:text-white/70 rounded-none rounded-r-xl border flex items-center justify-center h-[34px] border-gray-200 aspect-square dark:border-white/[0.07] bg-background-light dark:bg-background-dark hover:bg-gray-600/5 dark:hover:bg-gray-200/5"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 rotate-90"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div></div></div><div class="mt-2 text-lg prose prose-gray dark:prose-invert [&amp;&gt;*]:[overflow-wrap:anywhere]"><p>Install FastMCP and verify your setup</p></div><div id="page-context-menu" class="flex items-center shrink-0 min-w-[156px] mt-3 @[520px]/page-header:hidden"><button id="page-context-menu-button" class="rounded-l-xl px-3 text-gray-700 dark:text-gray-300 py-1.5 border border-gray-200 dark:border-white/[0.07] bg-background-light dark:bg-background-dark hover:bg-gray-600/5 dark:hover:bg-gray-200/5 border-r-0" aria-label="Copy page"><div class="flex items-center gap-2 text-sm text-center font-medium"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg><span class="grid"><span aria-hidden="true" class="invisible col-start-1 row-start-1">Copy page</span><span class="col-start-1 row-start-1">Copy page</span></span></div></button><button type="button" tabindex="0" aria-haspopup="menu" aria-expanded="false" id="base-ui-_R_r66dllfium6jiuqsnpfiutb_" aria-label="More actions" class="group disabled:pointer-events-none [&amp;&gt;span]:line-clamp-1 overflow-hidden group focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-primary dark:focus-visible:outline-primary-light py-0.5 gap-1 text-sm text-gray-950/50 dark:text-white/50 group-hover:text-gray-950/70 dark:group-hover:text-white/70 rounded-none rounded-r-xl border flex items-center justify-center h-[34px] border-gray-200 aspect-square dark:border-white/[0.07] bg-background-light dark:bg-background-dark hover:bg-gray-600/5 dark:hover:bg-gray-200/5"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 rotate-90"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div></header><div class="mdx-content @container/columns-container relative mt-8 prose prose-gray dark:prose-invert [contain:inline-size] isolate empty:hidden mb-14" data-page-title="Installation" data-page-href="/getting-started/installation" id="content"><h2 class="flex whitespace-pre-wrap group font-semibold" id="install-fastmcp"><div class="absolute" tabindex="-1"><a href="#install-fastmcp" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100 focus:opacity-100 focus:outline-0 group/link" aria-label="Navigate to header">​<div class="size-6 rounded-md flex items-center justify-center shadow-xs text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 shrink-0"><path d="M8.50001 6.827C8.14801 6.995 7.81801 7.225 7.52701 7.517L7.51701 7.527C6.13601 8.908 6.13601 11.146 7.51701 12.527L9.69201 14.702C11.073 16.
432083 13.311 16.083 14.692 14.702L14.702 14.692C16.083 13.311 16.083 11.073 14.702 9.692L13.771 8.761" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9.50002 11.173C9.85202 11.005 10.182 10.775 10.473 10.483L10.483 10.473C11.864 9.092 11.864 6.854 10.483 5.473L8.30802 3.298C6.92702 1.917 4.68902 1.917 3.30802 3.298L3.29802 3.308C1.91702 4.689 1.91702 6.927 3.29802 8.308L4.22902 9.239" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></a></div><span class="cursor-pointer">Install FastMCP</span></h2>
433<span data-as="p">We recommend using <a href="https://docs.astral.sh/uv/getting-started/installation/" target="_blank" rel="noreferrer" class="link">uv</a> to install and manage FastMCP.</span>
434<div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group min-w-0 print:print-color-exact text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 dark:twoslash-dark bg-transparent dark:bg-transparent" data-has-floating-buttons="" numberOfLines="1" language="shellscript"><div data-floating-buttons="true" class="absolute top-3 right-4 flex items-center gap-1.5 print:hidden"><div class="code-block-copy-button z-10 select-none" id="base-ui-_R_fi2imdllfium6jiuqsnpfiutb_" data-base-ui-tooltip-trigger=""><button class="size-6.5 flex items-center justify-center rounded-md group/copy-button [.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-100 dark:[.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-800" data-testid="copy-code-button" aria-label="Copy the contents from the code block"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button><span role="status" class="sr-only"></span></div><div class="z-10 select-none" id="base-ui-_R_fq2imdllfium6jiuqsnpfiutb_" data-base-ui-tooltip-trigger=""><button class="size-6.5 flex items-center justify-center rounded-md group/ask-assistant-button [.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-100 dark:[.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-800" id="ask-assistant-code-block-button" aria-label="Ask Assistant" data-chat-payload-element-id="lang-shellscript-code-uv_add_fastmcp_"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0 text-gray-400 group-hover/ask-assistant-button:text-gray-500 dark:text-white/40 dark:group-hover/ask-assistant-button:text-white/60"><path d="M5.65799 2.99L4.39499 2.569L3.97399 1.306C3.83699 0.898 3.16199 0.898 3.02499 1.306L2.60399 2.569L1.34099 2.99C1.13699 3.058 0.998993 3.249 0.998993 3.464C0.998993 3.679 1.13699 3.87 1.34099 3.938L2.60399 4.359L3.02499 5.622C3.09299 5.826 3.28499 5.964 3.49999 5.964C3.71499 5.964 3.90599 5.826 3.97499 5.622L4.39599 4.359L5.65899 3.938C5.86299 3.87 6.00099 3.679 6.00099 3.464C6.00099 3.249 5.86199 3.058 5.65799 2.99Z" fill="currentColor" stroke="none"></path><path d="M9.5 2.75L11.412 7.587L16.25 9.5L11.412 11.413L9.5 16.25L7.587 11.413L2.75 9.5L7.587 7.587L9.5 2.75Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div></div><div role="presentation" style="position:relative;--scroll-area-corner-height:0px;--scroll-area-corner-width:0px;font-variant-ligatures:none;height:auto;background-color:#FAFBFC;--shiki-dark-bg:#0B0C0E" data-component-part="code-block-root" class="w-0 min-w-full max-w-full h-full dark:bg-codeblock text-sm leading-6 transition-[height] duration-300 ease-in-out code-block-background **:ring-0 **:outline-0 **:focus:ring-0 **:focus:outline-0 rounded-2xl bg-white"><div role="presentation" data-id="base-ui-_R_c2imdllfium6jiuqsnpfiutb_-viewport" tabindex="-1" class="size-full rounded-[inherit] [--scroll-area-fade-size:32px] py-3.5 px-4 overflow-y-hidden! base-ui-disable-scrollbar" style="overflow:scroll" data-component-part="scroll-area-viewport"><div role="presentation" style="min-width:fit-content" data-component-part="scroll-area-content" 
434class="min-w-full! h-full children:my-0! children:shadow-none! children:bg-transparent!"><div class="font-mono whitespace-pre leading-6"><pre class="shiki shiki-themes snazzy-light dark-plus" style="background-color:#FAFBFC;--shiki-dark-bg:#0B0C0E;color:#565869;--shiki-dark:#D4D4D4" language="shellscript"><code language="shellscript" numberOfLines="1"><span class="line"><span style="color:#09A1ED;--shiki-dark:#DCDCAA">uv</span><span style="color:#CF9C00;--shiki-dark:#CE9178"> add</span><span style="color:#CF9C00;--shiki-dark:#CE9178"> fastmcp</span></span>
435</code></pre></div></div></div></div><div class="code-block-fade-overlay print:hidden" data-fade-overlay="true" aria-hidden="true" style="--fade-color-light:#FAFBFC;--fade-color-dark:#0B0C0E"></div></div>
436<span data-as="p">Or with pip:</span>
437<div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group min-w-0 print:print-color-exact text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 dark:twoslash-dark bg-transparent dark:bg-transparent" data-has-floating-buttons="" numberOfLines="1" language="shellscript"><div data-floating-buttons="true" class="absolute top-3 right-4 flex items-center gap-1.5 print:hidden"><div class="code-block-copy-button z-10 select-none" id="base-ui-_R_fi4imdllfium6jiuqsnpfiutb_" data-base-ui-tooltip-trigger=""><button class="size-6.5 flex items-center justify-center rounded-md group/copy-button [.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-100 dark:[.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-800" data-testid="copy-code-button" aria-label="Copy the contents from the code block"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button><span role="status" class="sr-only"></span></div><div class="z-10 select-none" id="base-ui-_R_fq4imdllfium6jiuqsnpfiutb_" data-base-ui-tooltip-trigger=""><button class="size-6.5 flex items-center justify-center rounded-md group/ask-assistant-button [.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-100 dark:[.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-800" id="ask-assistant-code-block-button" aria-label="Ask Assistant" data-chat-payload-element-id="lang-shellscript-code-pip_install_fastmcp_"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0 text-gray-400 group-hover/ask-assistant-button:text-gray-500 dark:text-white/40 dark:group-hover/ask-assistant-button:text-white/60"><path d="M5.65799 2.99L4.39499 2.569L3.97399 1.306C3.83699 0.898 3.16199 0.898 3.02499 1.306L2.60399 2.569L1.34099 2.99C1.13699 3.058 0.998993 3.249 0.998993 3.464C0.998993 3.679 1.13699 3.87 1.34099 3.938L2.60399 4.359L3.02499 5.622C3.09299 5.826 3.28499 5.964 3.49999 5.964C3.71499 5.964 3.90599 5.826 3.97499 5.622L4.39599 4.359L5.65899 3.938C5.86299 3.87 6.00099 3.679 6.00099 3.464C6.00099 3.249 5.86199 3.058 5.65799 2.99Z" fill="currentColor" stroke="none"></path><path d="M9.5 2.75L11.412 7.587L16.25 9.5L11.412 11.413L9.5 16.25L7.587 11.413L2.75 9.5L7.587 7.587L9.5 2.75Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div></div><div role="presentation" style="position:relative;--scroll-area-corner-height:0px;--scroll-area-corner-width:0px;font-variant-ligatures:none;height:auto;background-color:#FAFBFC;--shiki-dark-bg:#0B0C0E" data-component-part="code-block-root" class="w-0 min-w-full max-w-full h-full dark:bg-codeblock text-sm leading-6 transition-[height] duration-300 ease-in-out code-block-background **:ring-0 **:outline-0 **:focus:ring-0 **:focus:outline-0 rounded-2xl bg-white"><div role="presentation" data-id="base-ui-_R_c4imdllfium6jiuqsnpfiutb_-viewport" tabindex="-1" class="size-full rounded-[inherit] [--scroll-area-fade-size:32px] py-3.5 px-4 overflow-y-hidden! base-ui-disable-scrollbar" style="overflow:scroll" data-component-part="scroll-area-viewport"><div role="presentation" style="min-width:fit-content" data-component-part="scroll-area-content" 
437class="min-w-full! h-full children:my-0! children:shadow-none! children:bg-transparent!"><div class="font-mono whitespace-pre leading-6"><pre class="shiki shiki-themes snazzy-light dark-plus" style="background-color:#FAFBFC;--shiki-dark-bg:#0B0C0E;color:#565869;--shiki-dark:#D4D4D4" language="shellscript"><code language="shellscript" numberOfLines="1"><span class="line"><span style="color:#09A1ED;--shiki-dark:#DCDCAA">pip</span><span style="color:#CF9C00;--shiki-dark:#CE9178"> install</span><span style="color:#CF9C00;--shiki-dark:#CE9178"> fastmcp</span></span>
438</code></pre></div></div></div></div><div class="code-block-fade-overlay print:hidden" data-fade-overlay="true" aria-hidden="true" style="--fade-color-light:#FAFBFC;--fade-color-dark:#0B0C0E"></div></div>
439<h3 class="flex whitespace-pre-wrap group font-semibold" id="optional-dependencies"><div class="absolute" tabindex="-1"><a href="#optional-dependencies" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100 focus:opacity-100 focus:outline-0 group/link" aria-label="Navigate to header">​<div class="size-6 rounded-md flex items-center justify-center shadow-xs text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 shrink-0"><path d="M8.50001 6.827C8.14801 6.995 7.81801 7.225 7.52701 7.517L7.51701 7.527C6.13601 8.908 6.13601 11.146 7.51701 12.527L9.69201 14.702C11.073 16.083 13.3
43911 16.083 14.692 14.702L14.702 14.692C16.083 13.311 16.083 11.073 14.702 9.692L13.771 8.761" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9.50002 11.173C9.85202 11.005 10.182 10.775 10.473 10.483L10.483 10.473C11.864 9.092 11.864 6.854 10.483 5.473L8.30802 3.298C6.92702 1.917 4.68902 1.917 3.30802 3.298L3.29802 3.308C1.91702 4.689 1.91702 6.927 3.29802 8.308L4.22902 9.239" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></a></div><span class="cursor-pointer">Optional Dependencies</span></h3>
440<span data-as="p">FastMCP provides optional extras for specific features. For example, to install the background tasks extra:</span>
441<div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group min-w-0 print:print-color-exact text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 dark:twoslash-dark bg-transparent dark:bg-transparent" data-has-floating-buttons="" numberOfLines="1" language="shellscript"><div data-floating-buttons="true" class="absolute top-3 right-4 flex items-center gap-1.5 print:hidden"><div class="code-block-copy-button z-10 select-none" id="base-ui-_R_fi7imdllfium6jiuqsnpfiutb_" data-base-ui-tooltip-trigger=""><button class="size-6.5 flex items-center justify-center rounded-md group/copy-button [.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-100 dark:[.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-800" data-testid="copy-code-button" aria-label="Copy the contents from the code block"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button><span role="status" class="sr-only"></span></div><div class="z-10 select-none" id="base-ui-_R_fq7imdllfium6jiuqsnpfiutb_" data-base-ui-tooltip-trigger=""><button class="size-6.5 flex items-center justify-center rounded-md group/ask-assistant-button [.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-100 dark:[.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-800" id="ask-assistant-code-block-button" aria-label="Ask Assistant" data-chat-payload-element-id="lang-shellscript-code-pip_install__fastmcp"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0 text-gray-400 group-hover/ask-assistant-button:text-gray-500 dark:text-white/40 dark:group-hover/ask-assistant-button:text-white/60"><path d="M5.65799 2.99L4.39499 2.569L3.97399 1.306C3.83699 0.898 3.16199 0.898 3.02499 1.306L2.60399 2.569L1.34099 2.99C1.13699 3.058 0.998993 3.249 0.998993 3.464C0.998993 3.679 1.13699 3.87 1.34099 3.938L2.60399 4.359L3.02499 5.622C3.09299 5.826 3.28499 5.964 3.49999 5.964C3.71499 5.964 3.90599 5.826 3.97499 5.622L4.39599 4.359L5.65899 3.938C5.86299 3.87 6.00099 3.679 6.00099 3.464C6.00099 3.249 5.86199 3.058 5.65799 2.99Z" fill="currentColor" stroke="none"></path><path d="M9.5 2.75L11.412 7.587L16.25 9.5L11.412 11.413L9.5 16.25L7.587 11.413L2.75 9.5L7.587 7.587L9.5 2.75Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div></div><div role="presentation" style="position:relative;--scroll-area-corner-height:0px;--scroll-area-corner-width:0px;font-variant-ligatures:none;height:auto;background-color:#FAFBFC;--shiki-dark-bg:#0B0C0E" data-component-part="code-block-root" class="w-0 min-w-full max-w-full h-full dark:bg-codeblock text-sm leading-6 transition-[height] duration-300 ease-in-out code-block-background **:ring-0 **:outline-0 **:focus:ring-0 **:focus:outline-0 rounded-2xl bg-white"><div role="presentation" data-id="base-ui-_R_c7imdllfium6jiuqsnpfiutb_-viewport" tabindex="-1" class="size-full rounded-[inherit] [--scroll-area-fade-size:32px] py-3.5 px-4 overflow-y-hidden! base-ui-disable-scrollbar" style="overflow:scroll" data-component-part="scroll-area-viewport"><div role="presentation" style="min-width:fit-content" data-component-part="scroll-area-content" 
441class="min-w-full! h-full children:my-0! children:shadow-none! children:bg-transparent!"><div class="font-mono whitespace-pre leading-6"><pre class="shiki shiki-themes snazzy-light dark-plus" style="background-color:#FAFBFC;--shiki-dark-bg:#0B0C0E;color:#565869;--shiki-dark:#D4D4D4" language="shellscript"><code language="shellscript" numberOfLines="1"><span class="line"><span style="color:#09A1ED;--shiki-dark:#DCDCAA">pip</span><span style="color:#CF9C00;--shiki-dark:#CE9178"> install</span><span style="color:#ADB1C2;--shiki-dark:#CE9178"> &quot;</span><span style="color:#CF9C00;--shiki-dark:#CE9178">fastmcp[tasks]</span><span style="color:#ADB1C2;--shiki-dark:#CE9178">&quot;</span></span>
442</code></pre></div></div></div></div><div class="code-block-fade-overlay print:hidden" data-fade-overlay="true" aria-hidden="true" style="--fade-color-light:#FAFBFC;--fade-color-dark:#0B0C0E"></div></div>
443<span data-as="p">See <a class="link" href="/servers/tasks">Background Tasks</a> for details on the task system.</span>
444<h3 class="flex whitespace-pre-wrap group font-semibold" id="verify-installation"><div class="absolute" tabindex="-1"><a href="#verify-installation" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100 focus:opacity-100 focus:outline-0 group/link" aria-label="Navigate to header">​<div class="size-6 rounded-md flex items-center justify-center shadow-xs text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 shrink-0"><path d="M8.50001 6.827C8.14801 6.995 7.81801 7.225 7.52701 7.517L7.51701 7.527C6.13601 8.908 6.13601 11.146 7.51701 12.527L9.69201 14.702C11.073 16.083 13.3
44411 16.083 14.692 14.702L14.702 14.692C16.083 13.311 16.083 11.073 14.702 9.692L13.771 8.761" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9.50002 11.173C9.85202 11.005 10.182 10.775 10.473 10.483L10.483 10.473C11.864 9.092 11.864 6.854 10.483 5.473L8.30802 3.298C6.92702 1.917 4.68902 1.917 3.30802 3.298L3.29802 3.308C1.91702 4.689 1.91702 6.927 3.29802 8.308L4.22902 9.239" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></a></div><span class="cursor-pointer">Verify Installation</span></h3>
445<span data-as="p">To verify that FastMCP is installed correctly, you can run the following command:</span>
446<div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group min-w-0 print:print-color-exact text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 dark:twoslash-dark bg-transparent dark:bg-transparent" data-has-floating-buttons="" numberOfLines="1" language="shellscript"><div data-floating-buttons="true" class="absolute top-3 right-4 flex items-center gap-1.5 print:hidden"><div class="code-block-copy-button z-10 select-none" id="base-ui-_R_fibimdllfium6jiuqsnpfiutb_" data-base-ui-tooltip-trigger=""><button class="size-6.5 flex items-center justify-center rounded-md group/copy-button [.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-100 dark:[.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-800" data-testid="copy-code-button" aria-label="Copy the contents from the code block"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button><span role="status" class="sr-only"></span></div><div class="z-10 select-none" id="base-ui-_R_fqbimdllfium6jiuqsnpfiutb_" data-base-ui-tooltip-trigger=""><button class="size-6.5 flex items-center justify-center rounded-md group/ask-assistant-button [.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-100 dark:[.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-800" id="ask-assistant-code-block-button" aria-label="Ask Assistant" data-chat-payload-element-id="lang-shellscript-code-fastmcp_version_"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0 text-gray-400 group-hover/ask-assistant-button:text-gray-500 dark:text-white/40 dark:group-hover/ask-assistant-button:text-white/60"><path d="M5.65799 2.99L4.39499 2.569L3.97399 1.306C3.83699 0.898 3.16199 0.898 3.02499 1.306L2.60399 2.569L1.34099 2.99C1.13699 3.058 0.998993 3.249 0.998993 3.464C0.998993 3.679 1.13699 3.87 1.34099 3.938L2.60399 4.359L3.02499 5.622C3.09299 5.826 3.28499 5.964 3.49999 5.964C3.71499 5.964 3.90599 5.826 3.97499 5.622L4.39599 4.359L5.65899 3.938C5.86299 3.87 6.00099 3.679 6.00099 3.464C6.00099 3.249 5.86199 3.058 5.65799 2.99Z" fill="currentColor" stroke="none"></path><path d="M9.5 2.75L11.412 7.587L16.25 9.5L11.412 11.413L9.5 16.25L7.587 11.413L2.75 9.5L7.587 7.587L9.5 2.75Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div></div><div role="presentation" style="position:relative;--scroll-area-corner-height:0px;--scroll-area-corner-width:0px;font-variant-ligatures:none;height:auto;background-color:#FAFBFC;--shiki-dark-bg:#0B0C0E" data-component-part="code-block-root" class="w-0 min-w-full max-w-full h-full dark:bg-codeblock text-sm leading-6 transition-[height] duration-300 ease-in-out code-block-background **:ring-0 **:outline-0 **:focus:ring-0 **:focus:outline-0 rounded-2xl bg-white"><div role="presentation" data-id="base-ui-_R_cbimdllfium6jiuqsnpfiutb_-viewport" tabindex="-1" class="size-full rounded-[inherit] [--scroll-area-fade-size:32px] py-3.5 px-4 overflow-y-hidden! base-ui-disable-scrollbar" style="overflow:scroll" data-component-part="scroll-area-viewport"><div role="presentation" style="min-width:fit-content" data-component-part="scroll-area-content" 
446class="min-w-full! h-full children:my-0! children:shadow-none! children:bg-transparent!"><div class="font-mono whitespace-pre leading-6"><pre class="shiki shiki-themes snazzy-light dark-plus" style="background-color:#FAFBFC;--shiki-dark-bg:#0B0C0E;color:#565869;--shiki-dark:#D4D4D4" language="shellscript"><code language="shellscript" numberOfLines="1"><span class="line"><span style="color:#09A1ED;--shiki-dark:#DCDCAA">fastmcp</span><span style="color:#CF9C00;--shiki-dark:#CE9178"> version</span></span>
447</code></pre></div></div></div></div><div class="code-block-fade-overlay print:hidden" data-fade-overlay="true" aria-hidden="true" style="--fade-color-light:#FAFBFC;--fade-color-dark:#0B0C0E"></div></div>
448<span data-as="p">You should see output like the following:</span>
449<div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group min-w-0 print:print-color-exact text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 dark:twoslash-dark bg-transparent dark:bg-transparent" data-has-floating-buttons="" numberOfLines="7" language="shellscript"><div data-floating-buttons="true" class="absolute top-3 right-4 flex items-center gap-1.5 print:hidden"><div class="code-block-copy-button z-10 select-none" id="base-ui-_R_fidimdllfium6jiuqsnpfiutb_" data-base-ui-tooltip-trigger=""><button class="size-6.5 flex items-center justify-center rounded-md group/copy-button [.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-100 dark:[.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-800" data-testid="copy-code-button" aria-label="Copy the contents from the code block"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button><span role="status" class="sr-only"></span></div><div class="z-10 select-none" id="base-ui-_R_fqdimdllfium6jiuqsnpfiutb_" data-base-ui-tooltip-trigger=""><button class="size-6.5 flex items-center justify-center rounded-md group/ask-assistant-button [.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-100 dark:[.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-800" id="ask-assistant-code-block-button" aria-label="Ask Assistant" data-chat-payload-element-id="lang-shellscript-code-__fastmcp_version__F"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0 text-gray-400 group-hover/ask-assistant-button:text-gray-500 dark:text-white/40 dark:group-hover/ask-assistant-button:text-white/60"><path d="M5.65799 2.99L4.39499 2.569L3.97399 1.306C3.83699 0.898 3.16199 0.898 3.02499 1.306L2.60399 2.569L1.34099 2.99C1.13699 3.058 0.998993 3.249 0.998993 3.464C0.998993 3.679 1.13699 3.87 1.34099 3.938L2.60399 4.359L3.02499 5.622C3.09299 5.826 3.28499 5.964 3.49999 5.964C3.71499 5.964 3.90599 5.826 3.97499 5.622L4.39599 4.359L5.65899 3.938C5.86299 3.87 6.00099 3.679 6.00099 3.464C6.00099 3.249 5.86199 3.058 5.65799 2.99Z" fill="currentColor" stroke="none"></path><path d="M9.5 2.75L11.412 7.587L16.25 9.5L11.412 11.413L9.5 16.25L7.587 11.413L2.75 9.5L7.587 7.587L9.5 2.75Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div></div><div role="presentation" style="position:relative;--scroll-area-corner-height:0px;--scroll-area-corner-width:0px;font-variant-ligatures:none;height:auto;background-color:#FAFBFC;--shiki-dark-bg:#0B0C0E" data-component-part="code-block-root" class="w-0 min-w-full max-w-full h-full dark:bg-codeblock text-sm leading-6 transition-[height] duration-300 ease-in-out code-block-background **:ring-0 **:outline-0 **:focus:ring-0 **:focus:outline-0 rounded-2xl bg-white"><div role="presentation" data-id="base-ui-_R_cdimdllfium6jiuqsnpfiutb_-viewport" tabindex="-1" class="size-full rounded-[inherit] [--scroll-area-fade-size:32px] py-3.5 px-4 overflow-y-hidden! base-ui-disable-scrollbar" style="overflow:scroll" data-component-part="scroll-area-viewport"><div role="presentation" style="min-width:fit-content" data-component-part="scroll-area-content" 
449class="min-w-full! h-full children:my-0! children:shadow-none! children:bg-transparent!"><div class="font-mono whitespace-pre leading-6"><pre class="shiki shiki-themes snazzy-light dark-plus" style="background-color:#FAFBFC;--shiki-dark-bg:#0B0C0E;color:#565869;--shiki-dark:#D4D4D4" language="shellscript"><code language="shellscript" numberOfLines="7"><span class="line"><span style="color:#09A1ED;--shiki-dark:#DCDCAA">$</span><span style="color:#CF9C00;--shiki-dark:#CE9178"> fastmcp</span><span style="color:#CF9C00;--shiki-dark:#CE9178"> version</span></span>
450<span class="line"></span>
451<span class="line"><span style="color:#09A1ED;--shiki-dark:#DCDCAA">FastMCP</span><span style="color:#CF9C00;--shiki-dark:#CE9178"> version:</span><span style="color:#FF5C57;--shiki-dark:#B5CEA8">                           4.0.0</span></span>
452<span class="line"><span style="color:#09A1ED;--shiki-dark:#DCDCAA">MCP</span><span style="color:#CF9C00;--shiki-dark:#CE9178"> version:</span><span style="color:#FF5C57;--shiki-dark:#B5CEA8">                                2.0.0</span></span>
453<span class="line"><span style="color:#09A1ED;--shiki-dark:#DCDCAA">Python</span><span style="color:#CF9C00;--shiki-dark:#CE9178"> version:</span><span style="color:#FF5C57;--shiki-dark:#B5CEA8">                            3.12.2</span></span>
454<span class="line"><span style="color:#09A1ED;--shiki-dark:#DCDCAA">Platform:</span><span style="color:#CF9C00;--shiki-dark:#CE9178">            macOS-15.3.1-arm64-arm-64bit</span></span>
455<span class="line"><span style="color:#09A1ED;--shiki-dark:#DCDCAA">FastMCP</span><span style="color:#CF9C00;--shiki-dark:#CE9178"> root</span><span style="color:#CF9C00;--shiki-dark:#CE9178"> path:</span><span style="color:#CF9C00;--shiki-dark:#CE9178">            ~/Developer/fastmcp</span></span>
456</code></pre></div></div></div></div><div class="code-block-fade-overlay print:hidden" data-fade-overlay="true" aria-hidden="true" style="--fade-color-light:#FAFBFC;--fade-color-dark:#0B0C0E"></div></div>
457<h3 class="flex whitespace-pre-wrap group font-semibold" id="dependency-licensing"><div class="absolute" tabindex="-1"><a href="#dependency-licensing" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100 focus:opacity-100 focus:outline-0 group/link" aria-label="Navigate to header">​<div class="size-6 rounded-md flex items-center justify-center shadow-xs text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 shrink-0"><path d="M8.50001 6.827C8.14801 6.995 7.81801 7.225 7.52701 7.517L7.51701 7.527C6.13601 8.908 6.13601 11.146 7.51701 12.527L9.69201 14.702C11.073 16.083 13.3
45711 16.083 14.692 14.702L14.702 14.692C16.083 13.311 16.083 11.073 14.702 9.692L13.771 8.761" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9.50002 11.173C9.85202 11.005 10.182 10.775 10.473 10.483L10.483 10.473C11.864 9.092 11.864 6.854 10.483 5.473L8.30802 3.298C6.92702 1.917 4.68902 1.917 3.30802 3.298L3.29802 3.308C1.91702 4.689 1.91702 6.927 3.29802 8.308L4.22902 9.239" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></a></div><span class="cursor-pointer">Dependency Licensing</span></h3>
458<div role="note" aria-label="Info" class="callout my-4 px-5 py-4 overflow-hidden rounded-2xl flex gap-3 border border-neutral-200 bg-neutral-50 dark:border-neutral-700 dark:bg-white/10" data-callout-type="info"><div class="mt-0.5 w-4" data-component-part="callout-icon"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="flex-none size-5 text-neutral-800 dark:text-neutral-300"><path d="M 7.2 0 C 3.2231 0 0 3.2231 0 7.2 C 0 11.1768 3.2231 14.4 7.2 14.4 C 11.1768 14.4 14.4 11.1768 14.4 7.2 C 14.4 3.2231 11.1768 0 7.2 0 Z M 7.2 13.05 C 3.9741 13.05 1.35 10.4257 1.35 7.2 C 1.35 3.9743 3.9741 1.35 7.2 1.35 C 10.426 1.35 13.05 3.9743 13.05 7.2 C 13.05 10.4257 10.426 13.05 7.2 13.05 Z M 8.325 9.45 H 7.875 V 6.975 C 7.875 6.6038 7.5741 6.3 7.2 6.3 H 6.3 C 5.9288 6.3 5.625 6.6038 5.625 6.975 C 5.625 7.3462 5.9288 7.65 6.3 7.65 H 6.525 V 9.45 H 6.075 C 5.7038 9.45 5.4 9.7538 5.4 10.125 C 5.4 10.4962 5.7038 10.8 6.075 10.8 H 8.325 C 8.6977 10.8 9 10.4977 9 10.125 C 9 9.7523 8.6991 9.45 8.325 9.45 Z M 7.2 5.4 C 7.697 5.4 8.1 4.997 8.1 4.5 C 8.1 4.003 7.697 3.6 7.2 3.6 C 6.703 3.6 6.3 4.0022 6.3 4.5 C 6.3 4.9978 6.7022 5.4 7.2 5.4 Z" fill="currentColor" stroke="none"></path></svg></div><div class="text-sm prose dark:prose-invert min-w-0 w-full [&amp;_kbd]:bg-background-light dark:[&amp;_kbd]:bg-background-dark [&amp;_code]:text-current! [&amp;_kbd]:text-current! [&amp;_a]:text-current! [&amp;_a]:border-current [&amp;_strong]:text-current! text-neutral-800 dark:text-neutral-300" data-component-part="callout-content"><span data-as="p">FastMCP depends on Cyclopts for CLI functionality. Cyclopts v4 includes docutils as a transitive dependency, which has complex licensing that may trigger compliance reviews in some organizations.</span><span data-as="p">If this is a concern, you can install Cyclopts v5 alpha which removes this dependency:</span><div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group min-w-0 print:print-color-exact text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 dark:twoslash-dark bg-transparent dark:bg-transparent" data-has-floating-buttons="" numberOfLines="1" language="shellscript"><div data-floating-buttons="true" class="absolute top-3 right-4 flex items-center gap-1.5 print:hidden"><div class="code-block-copy-button z-10 select-none" id="base-ui-_R_fisfimdllfium6jiuqsnpfiutb_" data-base-ui-tooltip-trigger=""><button class="size-6.5 flex items-center justify-center rounded-md group/copy-button [.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-100 dark:[.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-800" data-testid="copy-code-button" aria-label="Copy the contents from the code block"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 
4581.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button><span role="status" class="sr-only"></span></div><div class="z-10 select-none" id="base-ui-_R_fqsfimdllfium6jiuqsnpfiutb_" data-base-ui-tooltip-trigger=""><button class="size-6.5 flex items-center justify-center rounded-md group/ask-assistant-button [.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-100 dark:[.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-800" id="ask-assistant-code-block-button" aria-label="Ask Assistant" data-chat-payload-element-id="lang-shellscript-code-pip_install__cyclopt"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0 text-gray-400 group-hover/ask-assistant-button:text-gray-500 dark:text-white/40 dark:group-hover/ask-assistant-button:text-white/60"><path d="M5.65799 2.99L4.39499 2.569L3.97399 1.306C3.83699 0.898 3.16199 0.898 3.02499 1.306L2.60399 2.569L1.34099 2.99C1.13699 3.058 0.998993 3.249 0.998993 3.464C0.998993 3.679 1.13699 3.87 1.34099 3.938L2.60399 4.359L3.02499 5.622C3.09299 5.826 3.28499 5.964 3.49999 5.964C3.71499 5.964 3.90599 5.826 3.97499 5.622L4.39599 4.359L5.65899 3.938C5.86299 3.87 6.00099 3.679 6.00099 3.464C6.00099 3.249 5.86199 3.058 5.65799 2.99Z" fill="currentColor" stroke="none"></path><path d="M9.5 2.75L11.412 7.587L16.25 9.5L11.412 11.413L9.5 16.25L7.587 11.413L2.75 9.5L7.587 7.587L9.5 2.75Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div></div><div role="presentation" style="position:relative;--scroll-area-corner-height:0px;--scroll-area-corner-width:0px;font-variant-ligatures:none;height:auto;background-color:#FAFBFC;--shiki-dark-bg:#0B0C0E" data-component-part="code-block-root" class="w-0 min-w-full max-w-full h-full dark:bg-codeblock text-sm leading-6 transition-[height] duration-300 ease-in-out code-block-background **:ring-0 **:outline-0 **:focus:ring-0 **:focus:outline-0 rounded-2xl bg-white"><div role="presentation" data-id="base-ui-_R_csfimdllfium6jiuqsnpfiutb_-viewport" tabindex="-1" class="size-full rounded-[inherit] [--scroll-area-fade-size:32px] py-3.5 px-4 overflow-y-hidden! base-ui-disable-scrollbar" style="overflow:scroll" data-component-part="scroll-area-viewport"><div role="presentation" style="min-width:fit-content" data-component-part="scroll-area-content" class="min-w-full! h-full children:my-0! children:shadow-none! children:bg-transparent!"><div class="font-mono whitespace-pre leading-6"><pre class="shiki shiki-themes snazzy-light dark-plus" style="background-color:#FAFBFC;--shiki-dark-bg:#0B0C0E;color:#565869;--shiki-dark:#D4D4D4" language="shellscript"><code language="shellscript" numberOfLines="1"><span class="line"><span style="color:#09A1ED;--shiki-dark:#DCDCAA">pip</span><span style="color:#CF9C00;--shiki-dark:#CE9178"> install</span><span style="color:#ADB1C2;--shiki-dark:#CE9178"> &quot;</span><span style="color:#CF9C00;--shiki-dark:#CE9178">cyclopts&gt;=5.0.0a1</span><span style="color:#ADB1C2;--shiki-dark:#CE9178">&quot;</span></span>
459</code></pre></div></div></div></div><div class="code-block-fade-overlay print:hidden" data-fade-overlay="true" aria-hidden="true" style="--fade-color-light:#FAFBFC;--fade-color-dark:#0B0C0E"></div></div><span data-as="p">Alternatively, wait for the stable v5 release. See <a href="https://github.com/BrianPugh/cyclopts/issues/672" target="_blank" rel="noreferrer" class="link">this issue</a> for details.</span></div></div>
460<h2 class="flex whitespace-pre-wrap group font-semibold" id="upgrading"><div class="absolute" tabindex="-1"><a href="#upgrading" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100 focus:opacity-100 focus:outline-0 group/link" aria-label="Navigate to header">​<div class="size-6 rounded-md flex items-center justify-center shadow-xs text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 shrink-0"><path d="M8.50001 6.827C8.14801 6.995 7.81801 7.225 7.52701 7.517L7.51701 7.527C6.13601 8.908 6.13601 11.146 7.51701 12.527L9.69201 14.702C11.073 16.
460083 13.311 16.083 14.692 14.702L14.702 14.692C16.083 13.311 16.083 11.073 14.702 9.692L13.771 8.761" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9.50002 11.173C9.85202 11.005 10.182 10.775 10.473 10.483L10.483 10.473C11.864 9.092 11.864 6.854 10.483 5.473L8.30802 3.298C6.92702 1.917 4.68902 1.917 3.30802 3.298L3.29802 3.308C1.91702 4.689 1.91702 6.927 3.29802 8.308L4.22902 9.239" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></a></div><span class="min-w-0 break-words cursor-pointer">Upgrading</span></h2>
461<h3 class="flex whitespace-pre-wrap group font-semibold" id="from-fastmcp-3-0"><div class="absolute" tabindex="-1"><a href="#from-fastmcp-3-0" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100 focus:opacity-100 focus:outline-0 group/link" aria-label="Navigate to header">​<div class="size-6 rounded-md flex items-center justify-center shadow-xs text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 shrink-0"><path d="M8.50001 6.827C8.14801 6.995 7.81801 7.225 7.52701 7.517L7.51701 7.527C6.13601 8.908 6.13601 11.146 7.51701 12.527L9.69201 14.702C11.073 16.083 13.3
46111 16.083 14.692 14.702L14.702 14.692C16.083 13.311 16.083 11.073 14.702 9.692L13.771 8.761" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9.50002 11.173C9.85202 11.005 10.182 10.775 10.473 10.483L10.483 10.473C11.864 9.092 11.864 6.854 10.483 5.473L8.30802 3.298C6.92702 1.917 4.68902 1.917 3.30802 3.298L3.29802 3.308C1.91702 4.689 1.91702 6.927 3.29802 8.308L4.22902 9.239" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></a></div><span class="cursor-pointer">From FastMCP 3.0</span></h3>
462<span data-as="p">Most FastMCP 3 servers run on 4 without changes. See <a class="link" href="/getting-started/upgrading/from-fastmcp-3">Upgrading from FastMCP 3</a> for the breaks that do exist, and <a class="link" href="/getting-started/whats-new">What’s New</a> for what the new version adds.</span>
463<h3 class="flex whitespace-pre-wrap group font-semibold" id="from-fastmcp-2-0"><div class="absolute" tabindex="-1"><a href="#from-fastmcp-2-0" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100 focus:opacity-100 focus:outline-0 group/link" aria-label="Navigate to header">​<div class="size-6 rounded-md flex items-center justify-center shadow-xs text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 shrink-0"><path d="M8.50001 6.827C8.14801 6.995 7.81801 7.225 7.52701 7.517L7.51701 7.527C6.13601 8.908 6.13601 11.146 7.51701 12.527L9.69201 14.702C11.073 16.083 13.3
46311 16.083 14.692 14.702L14.702 14.692C16.083 13.311 16.083 11.073 14.702 9.692L13.771 8.761" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9.50002 11.173C9.85202 11.005 10.182 10.775 10.473 10.483L10.483 10.473C11.864 9.092 11.864 6.854 10.483 5.473L8.30802 3.298C6.92702 1.917 4.68902 1.917 3.30802 3.298L3.29802 3.308C1.91702 4.689 1.91702 6.927 3.29802 8.308L4.22902 9.239" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></a></div><span class="cursor-pointer">From FastMCP 2.0</span></h3>
464<span data-as="p">See the <a class="link" href="/getting-started/upgrading/from-fastmcp-2">Upgrade Guide</a> for a complete list of breaking changes and migration steps.</span>
465<h3 class="flex whitespace-pre-wrap group font-semibold" id="from-the-mcp-sdk"><div class="absolute" tabindex="-1"><a href="#from-the-mcp-sdk" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100 focus:opacity-100 focus:outline-0 group/link" aria-label="Navigate to header">​<div class="size-6 rounded-md flex items-center justify-center shadow-xs text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 shrink-0"><path d="M8.50001 6.827C8.14801 6.995 7.81801 7.225 7.52701 7.517L7.51701 7.527C6.13601 8.908 6.13601 11.146 7.51701 12.527L9.69201 14.702C11.073 16.083 13.3
46511 16.083 14.692 14.702L14.702 14.692C16.083 13.311 16.083 11.073 14.702 9.692L13.771 8.761" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9.50002 11.173C9.85202 11.005 10.182 10.775 10.473 10.483L10.483 10.473C11.864 9.092 11.864 6.854 10.483 5.473L8.30802 3.298C6.92702 1.917 4.68902 1.917 3.30802 3.298L3.29802 3.308C1.91702 4.689 1.91702 6.927 3.29802 8.308L4.22902 9.239" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></a></div><span class="cursor-pointer">From the MCP SDK</span></h3>
466<span data-as="p">Which guide you want depends on which <code>mcp</code> version you’re on and which of its two server APIs you used.</span>
467<h4 class="flex whitespace-pre-wrap group font-semibold" id="from-the-high-level-server"><div class="absolute" tabindex="-1"><a href="#from-the-high-level-server" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100 focus:opacity-100 focus:outline-0 group/link" aria-label="Navigate to header">​<div class="size-6 rounded-md flex items-center justify-center shadow-xs text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 shrink-0"><path d="M8.50001 6.827C8.14801 6.995 7.81801 7.225 7.52701 7.517L7.51701 7.527C6.13601 8.908 6.13601 11.146 7.51701 12.527L9.69201 14.702C11.073 16.083 13.3
46711 16.083 14.692 14.702L14.702 14.692C16.083 13.311 16.083 11.073 14.702 9.692L13.771 8.761" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9.50002 11.173C9.85202 11.005 10.182 10.775 10.473 10.483L10.483 10.473C11.864 9.092 11.864 6.854 10.483 5.473L8.30802 3.298C6.92702 1.917 4.68902 1.917 3.30802 3.298L3.29802 3.308C1.91702 4.689 1.91702 6.927 3.29802 8.308L4.22902 9.239" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></a></div><span class="cursor-pointer">From the high-level server</span></h4>
468<span data-as="p">If you’re using FastMCP 1.0 via SDK v1 (meaning you import FastMCP as <code>from mcp.server.fastmcp import FastMCP</code>), upgrading is straightforward — for most servers it’s a single import change. See <a class="link" href="/getting-started/upgrading/from-mcp-sdk-v1">Upgrading from MCP SDK v1</a>, which also explains why that route is usually easier than moving to MCP SDK v2.</span>
469<span data-as="p">If you already moved to SDK v2 and write against <code>MCPServer</code>, see <a class="link" href="/getting-started/upgrading/from-mcp-sdk-v2">Upgrading from MCP SDK v2</a> — that migration is mostly renaming.</span>
470<h4 class="flex whitespace-pre-wrap group font-semibold" id="from-the-low-level-server"><div class="absolute" tabindex="-1"><a href="#from-the-low-level-server" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100 focus:opacity-100 focus:outline-0 group/link" aria-label="Navigate to header">​<div class="size-6 rounded-md flex items-center justify-center shadow-xs text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 shrink-0"><path d="M8.50001 6.827C8.14801 6.995 7.81801 7.225 7.52701 7.517L7.51701 7.527C6.13601 8.908 6.13601 11.146 7.51701 12.527L9.69201 14.702C11.073 16.083 13.3
47011 16.083 14.692 14.702L14.702 14.692C16.083 13.311 16.083 11.073 14.702 9.692L13.771 8.761" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9.50002 11.173C9.85202 11.005 10.182 10.775 10.473 10.483L10.483 10.473C11.864 9.092 11.864 6.854 10.483 5.473L8.30802 3.298C6.92702 1.917 4.68902 1.917 3.30802 3.298L3.29802 3.308C1.91702 4.689 1.91702 6.927 3.29802 8.308L4.22902 9.239" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></a></div><span class="cursor-pointer">From the low-level server</span></h4>
471<span data-as="p">If you built your server directly on the <code>mcp</code> package’s <code>Server</code> class, the guide you want depends on how its handlers are registered. Decorators like <code>@server.list_tools()</code> mean SDK v1 — see <a class="link" href="/getting-started/upgrading/from-low-level-sdk-v1">Upgrading from the Low-Level SDK v1</a>. Handlers passed to the constructor as <code>on_list_tools=</code> mean SDK v2 — see <a class="link" href="/getting-started/upgrading/from-low-level-sdk-v2">Upgrading from the Low-Level SDK v2</a>.</span>
472<h2 class="flex whitespace-pre-wrap group font-semibold" id="troubleshooting"><div class="absolute" tabindex="-1"><a href="#troubleshooting" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100 focus:opacity-100 focus:outline-0 group/link" aria-label="Navigate to header">​<div class="size-6 rounded-md flex items-center justify-center shadow-xs text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 shrink-0"><path d="M8.50001 6.827C8.14801 6.995 7.81801 7.225 7.52701 7.517L7.51701 7.527C6.13601 8.908 6.13601 11.146 7.51701 12.527L9.69201 14.702C11.073 16.083 13.3
47211 16.083 14.692 14.702L14.702 14.692C16.083 13.311 16.083 11.073 14.702 9.692L13.771 8.761" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9.50002 11.173C9.85202 11.005 10.182 10.775 10.473 10.483L10.483 10.473C11.864 9.092 11.864 6.854 10.483 5.473L8.30802 3.298C6.92702 1.917 4.68902 1.917 3.30802 3.298L3.29802 3.308C1.91702 4.689 1.91702 6.927 3.29802 8.308L4.22902 9.239" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></a></div><span class="min-w-0 break-words cursor-pointer">Troubleshooting</span></h2>
473<h3 class="flex whitespace-pre-wrap group font-semibold" id="import-fastmcp-fails-after-a-pip-upgrade"><div class="absolute" tabindex="-1"><a href="#import-fastmcp-fails-after-a-pip-upgrade" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100 focus:opacity-100 focus:outline-0 group/link" aria-label="Navigate to header">​<div class="size-6 rounded-md flex items-center justify-center shadow-xs text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 shrink-0"><path d="M8.50001 6.827C8.14801 6.995 7.81801 7.225 7.52701 7.517L7.51701 7.527C6.13601 8.908 6.13601 11.146 7.51701 12.527L9.69201 14.702C11.073 16.083 13.3
47311 16.083 14.692 14.702L14.702 14.692C16.083 13.311 16.083 11.073 14.702 9.692L13.771 8.761" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9.50002 11.173C9.85202 11.005 10.182 10.775 10.473 10.483L10.483 10.473C11.864 9.092 11.864 6.854 10.483 5.473L8.30802 3.298C6.92702 1.917 4.68902 1.917 3.30802 3.298L3.29802 3.308C1.91702 4.689 1.91702 6.927 3.29802 8.308L4.22902 9.239" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></a></div><span class="cursor-pointer"><code>import fastmcp</code> fails after a pip upgrade</span></h3>
474<span data-as="p">This affects one specific case: upgrading to FastMCP 3.3 or later from FastMCP 3.2 or earlier with <code>pip</code>. Fresh installs and <code>uv</code> upgrades are unaffected, so you can skip this unless you did exactly that.</span>
475<span data-as="p">If <code>import fastmcp</code> raises <code>ModuleNotFoundError</code>, or <code>from fastmcp import FastMCP</code> raises <code>ImportError</code>, immediately after the upgrade, your install is in a half-removed state. Reinstall in a single step:</span>
476<div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group min-w-0 print:print-color-exact text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 dark:twoslash-dark bg-transparent dark:bg-transparent" data-has-floating-buttons="" numberOfLines="1" language="shellscript"><div data-floating-buttons="true" class="absolute top-3 right-4 flex items-center gap-1.5 print:hidden"><div class="code-block-copy-button z-10 select-none" id="base-ui-_R_fj0imdllfium6jiuqsnpfiutb_" data-base-ui-tooltip-trigger=""><button class="size-6.5 flex items-center justify-center rounded-md group/copy-button [.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-100 dark:[.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-800" data-testid="copy-code-button" aria-label="Copy the contents from the code block"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button><span role="status" class="sr-only"></span></div><div class="z-10 select-none" id="base-ui-_R_fr0imdllfium6jiuqsnpfiutb_" data-base-ui-tooltip-trigger=""><button class="size-6.5 flex items-center justify-center rounded-md group/ask-assistant-button [.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-100 dark:[.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-800" id="ask-assistant-code-block-button" aria-label="Ask Assistant" data-chat-payload-element-id="lang-shellscript-code-pip_install_--force-"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0 text-gray-400 group-hover/ask-assistant-button:text-gray-500 dark:text-white/40 dark:group-hover/ask-assistant-button:text-white/60"><path d="M5.65799 2.99L4.39499 2.569L3.97399 1.306C3.83699 0.898 3.16199 0.898 3.02499 1.306L2.60399 2.569L1.34099 2.99C1.13699 3.058 0.998993 3.249 0.998993 3.464C0.998993 3.679 1.13699 3.87 1.34099 3.938L2.60399 4.359L3.02499 5.622C3.09299 5.826 3.28499 5.964 3.49999 5.964C3.71499 5.964 3.90599 5.826 3.97499 5.622L4.39599 4.359L5.65899 3.938C5.86299 3.87 6.00099 3.679 6.00099 3.464C6.00099 3.249 5.86199 3.058 5.65799 2.99Z" fill="currentColor" stroke="none"></path><path d="M9.5 2.75L11.412 7.587L16.25 9.5L11.412 11.413L9.5 16.25L7.587 11.413L2.75 9.5L7.587 7.587L9.5 2.75Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div></div><div role="presentation" style="position:relative;--scroll-area-corner-height:0px;--scroll-area-corner-width:0px;font-variant-ligatures:none;height:auto;background-color:#FAFBFC;--shiki-dark-bg:#0B0C0E" data-component-part="code-block-root" class="w-0 min-w-full max-w-full h-full dark:bg-codeblock text-sm leading-6 transition-[height] duration-300 ease-in-out code-block-background **:ring-0 **:outline-0 **:focus:ring-0 **:focus:outline-0 rounded-2xl bg-white"><div role="presentation" data-id="base-ui-_R_d0imdllfium6jiuqsnpfiutb_-viewport" tabindex="-1" class="size-full rounded-[inherit] [--scroll-area-fade-size:32px] py-3.5 px-4 overflow-y-hidden! base-ui-disable-scrollbar" style="overflow:scroll" data-component-part="scroll-area-viewport"><div role="presentation" style="min-width:fit-content" data-component-part="scroll-area-content" 
476class="min-w-full! h-full children:my-0! children:shadow-none! children:bg-transparent!"><div class="font-mono whitespace-pre leading-6"><pre class="shiki shiki-themes snazzy-light dark-plus" style="background-color:#FAFBFC;--shiki-dark-bg:#0B0C0E;color:#565869;--shiki-dark:#D4D4D4" language="shellscript"><code language="shellscript" numberOfLines="1"><span class="line"><span style="color:#09A1ED;--shiki-dark:#DCDCAA">pip</span><span style="color:#CF9C00;--shiki-dark:#CE9178"> install</span><span style="color:#2DAE58;--shiki-dark:#569CD6"> --force-reinstall</span><span style="color:#CF9C00;--shiki-dark:#CE9178"> fastmcp</span></span>
477</code></pre></div></div></div></div><div class="code-block-fade-overlay print:hidden" data-fade-overlay="true" aria-hidden="true" style="--fade-color-light:#FAFBFC;--fade-color-dark:#0B0C0E"></div></div>
478<span data-as="p">If that doesn’t resolve it, remove both distributions and reinstall from a clean state:</span>
479<div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group min-w-0 print:print-color-exact text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 dark:twoslash-dark bg-transparent dark:bg-transparent" data-has-floating-buttons="" numberOfLines="2" language="shellscript"><div data-floating-buttons="true" class="absolute top-3 right-4 flex items-center gap-1.5 print:hidden"><div class="code-block-copy-button z-10 select-none" id="base-ui-_R_fj2imdllfium6jiuqsnpfiutb_" data-base-ui-tooltip-trigger=""><button class="size-6.5 flex items-center justify-center rounded-md group/copy-button [.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-100 dark:[.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-800" data-testid="copy-code-button" aria-label="Copy the contents from the code block"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button><span role="status" class="sr-only"></span></div><div class="z-10 select-none" id="base-ui-_R_fr2imdllfium6jiuqsnpfiutb_" data-base-ui-tooltip-trigger=""><button class="size-6.5 flex items-center justify-center rounded-md group/ask-assistant-button [.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-100 dark:[.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-800" id="ask-assistant-code-block-button" aria-label="Ask Assistant" data-chat-payload-element-id="lang-shellscript-code-pip_uninstall_-y_fas"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0 text-gray-400 group-hover/ask-assistant-button:text-gray-500 dark:text-white/40 dark:group-hover/ask-assistant-button:text-white/60"><path d="M5.65799 2.99L4.39499 2.569L3.97399 1.306C3.83699 0.898 3.16199 0.898 3.02499 1.306L2.60399 2.569L1.34099 2.99C1.13699 3.058 0.998993 3.249 0.998993 3.464C0.998993 3.679 1.13699 3.87 1.34099 3.938L2.60399 4.359L3.02499 5.622C3.09299 5.826 3.28499 5.964 3.49999 5.964C3.71499 5.964 3.90599 5.826 3.97499 5.622L4.39599 4.359L5.65899 3.938C5.86299 3.87 6.00099 3.679 6.00099 3.464C6.00099 3.249 5.86199 3.058 5.65799 2.99Z" fill="currentColor" stroke="none"></path><path d="M9.5 2.75L11.412 7.587L16.25 9.5L11.412 11.413L9.5 16.25L7.587 11.413L2.75 9.5L7.587 7.587L9.5 2.75Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div></div><div role="presentation" style="position:relative;--scroll-area-corner-height:0px;--scroll-area-corner-width:0px;font-variant-ligatures:none;height:auto;background-color:#FAFBFC;--shiki-dark-bg:#0B0C0E" data-component-part="code-block-root" class="w-0 min-w-full max-w-full h-full dark:bg-codeblock text-sm leading-6 transition-[height] duration-300 ease-in-out code-block-background **:ring-0 **:outline-0 **:focus:ring-0 **:focus:outline-0 rounded-2xl bg-white"><div role="presentation" data-id="base-ui-_R_d2imdllfium6jiuqsnpfiutb_-viewport" tabindex="-1" class="size-full rounded-[inherit] [--scroll-area-fade-size:32px] py-3.5 px-4 overflow-y-hidden! base-ui-disable-scrollbar" style="overflow:scroll" data-component-part="scroll-area-viewport"><div role="presentation" style="min-width:fit-content" data-component-part="scroll-area-content" 
479class="min-w-full! h-full children:my-0! children:shadow-none! children:bg-transparent!"><div class="font-mono whitespace-pre leading-6"><pre class="shiki shiki-themes snazzy-light dark-plus" style="background-color:#FAFBFC;--shiki-dark-bg:#0B0C0E;color:#565869;--shiki-dark:#D4D4D4" language="shellscript"><code language="shellscript" numberOfLines="2"><span class="line"><span style="color:#09A1ED;--shiki-dark:#DCDCAA">pip</span><span style="color:#CF9C00;--shiki-dark:#CE9178"> uninstall</span><span style="color:#2DAE58;--shiki-dark:#569CD6"> -y</span><span style="color:#CF9C00;--shiki-dark:#CE9178"> fastmcp</span><span style="color:#CF9C00;--shiki-dark:#CE9178"> fastmcp-slim</span></span>
480<span class="line"><span style="color:#09A1ED;--shiki-dark:#DCDCAA">pip</span><span style="color:#CF9C00;--shiki-dark:#CE9178"> install</span><span style="color:#CF9C00;--shiki-dark:#CE9178"> fastmcp</span></span>
481</code></pre></div></div></div></div><div class="code-block-fade-overlay print:hidden" data-fade-overlay="true" aria-hidden="true" style="--fade-color-light:#FAFBFC;--fade-color-dark:#0B0C0E"></div></div>
482<span data-as="p">FastMCP 3.3 moved the importable code from the <code>fastmcp</code> distribution into <code>fastmcp-slim</code>. During a single-command <code>pip</code> upgrade, pip can install the new files and then delete them while uninstalling the old <code>fastmcp</code> distribution, whose file manifest still lists those paths. <code>uv</code> uninstalls before it installs, so it is unaffected.</span>
483<h2 class="flex whitespace-pre-wrap group font-semibold" id="versioning-policy"><div class="absolute" tabindex="-1"><a href="#versioning-policy" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100 focus:opacity-100 focus:outline-0 group/link" aria-label="Navigate to header">​<div class="size-6 rounded-md flex items-center justify-center shadow-xs text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 shrink-0"><path d="M8.50001 6.827C8.14801 6.995 7.81801 7.225 7.52701 7.517L7.51701 7.527C6.13601 8.908 6.13601 11.146 7.51701 12.527L9.69201 14.702C11.073 16.083 13.3
48311 16.083 14.692 14.702L14.702 14.692C16.083 13.311 16.083 11.073 14.702 9.692L13.771 8.761" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9.50002 11.173C9.85202 11.005 10.182 10.775 10.473 10.483L10.483 10.473C11.864 9.092 11.864 6.854 10.483 5.473L8.30802 3.298C6.92702 1.917 4.68902 1.917 3.30802 3.298L3.29802 3.308C1.91702 4.689 1.91702 6.927 3.29802 8.308L4.22902 9.239" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></a></div><span class="cursor-pointer">Versioning Policy</span></h2>
484<span data-as="p">FastMCP follows semantic versioning with pragmatic adaptations for the rapidly evolving MCP ecosystem. Breaking changes may occur in minor versions (e.g., 2.3.x to 2.4.0) when necessary to stay current with the MCP Protocol.</span>
485<span data-as="p">For production use, always pin to exact versions:</span>
486<div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group min-w-0 print:print-color-exact text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 dark:twoslash-dark bg-transparent dark:bg-transparent" data-has-floating-buttons="" numberOfLines="3" language="text"><div data-floating-buttons="true" class="absolute top-3 right-4 flex items-center gap-1.5 print:hidden"><div class="code-block-copy-button z-10 select-none" id="base-ui-_R_fj7imdllfium6jiuqsnpfiutb_" data-base-ui-tooltip-trigger=""><button class="size-6.5 flex items-center justify-center rounded-md group/copy-button [.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-100 dark:[.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-800" data-testid="copy-code-button" aria-label="Copy the contents from the code block"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button><span role="status" class="sr-only"></span></div><div class="z-10 select-none" id="base-ui-_R_fr7imdllfium6jiuqsnpfiutb_" data-base-ui-tooltip-trigger=""><button class="size-6.5 flex items-center justify-center rounded-md group/ask-assistant-button [.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-100 dark:[.code-block:not(:has([data-fade-overlay]))_[data-floating-buttons]_&amp;]:bg-gray-800" id="ask-assistant-code-block-button" aria-label="Ask Assistant" data-chat-payload-element-id="lang-text-code-fastmcp__4_0_5______"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0 text-gray-400 group-hover/ask-assistant-button:text-gray-500 dark:text-white/40 dark:group-hover/ask-assistant-button:text-white/60"><path d="M5.65799 2.99L4.39499 2.569L3.97399 1.306C3.83699 0.898 3.16199 0.898 3.02499 1.306L2.60399 2.569L1.34099 2.99C1.13699 3.058 0.998993 3.249 0.998993 3.464C0.998993 3.679 1.13699 3.87 1.34099 3.938L2.60399 4.359L3.02499 5.622C3.09299 5.826 3.28499 5.964 3.49999 5.964C3.71499 5.964 3.90599 5.826 3.97499 5.622L4.39599 4.359L5.65899 3.938C5.86299 3.87 6.00099 3.679 6.00099 3.464C6.00099 3.249 5.86199 3.058 5.65799 2.99Z" fill="currentColor" stroke="none"></path><path d="M9.5 2.75L11.412 7.587L16.25 9.5L11.412 11.413L9.5 16.25L7.587 11.413L2.75 9.5L7.587 7.587L9.5 2.75Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div></div><div role="presentation" style="position:relative;--scroll-area-corner-height:0px;--scroll-area-corner-width:0px;font-variant-ligatures:none;height:auto;background-color:#FAFBFC;--shiki-dark-bg:#0B0C0E" data-component-part="code-block-root" class="w-0 min-w-full max-w-full h-full dark:bg-codeblock text-sm leading-6 transition-[height] duration-300 ease-in-out code-block-background **:ring-0 **:outline-0 **:focus:ring-0 **:focus:outline-0 rounded-2xl bg-white"><div role="presentation" data-id="base-ui-_R_d7imdllfium6jiuqsnpfiutb_-viewport" tabindex="-1" class="size-full rounded-[inherit] [--scroll-area-fade-size:32px] py-3.5 px-4 overflow-y-hidden! base-ui-disable-scrollbar" style="overflow:scroll" data-component-part="scroll-area-viewport"><div role="presentation" style="min-width:fit-content" data-component-part="scroll-area-content" 
486class="min-w-full! h-full children:my-0! children:shadow-none! children:bg-transparent!"><div class="font-mono whitespace-pre leading-6"><pre class="shiki shiki-themes snazzy-light dark-plus" style="background-color:#FAFBFC;--shiki-dark-bg:#0B0C0E;color:#565869;--shiki-dark:#D4D4D4" language="text"><code language="text" numberOfLines="3"><span class="line"><span>fastmcp==4.0.5    # Good - an exact version</span></span>
487<span class="line"><span>fastmcp&gt;=4.0.0    # Bad - may install breaking changes</span></span>
488<span class="line"><span></span></span></code></pre></div></div></div></div><div class="code-block-fade-overlay print:hidden" data-fade-overlay="true" aria-hidden="true" style="--fade-color-light:#FAFBFC;--fade-color-dark:#0B0C0E"></div></div>
489<span data-as="p">See the full <a class="link" href="/development/releases#versioning-policy">versioning and release policy</a> for details on our public API, deprecation practices, and breaking change philosophy.</span>
490<h2 class="flex whitespace-pre-wrap group font-semibold" id="contributing-to-fastmcp"><div class="absolute" tabindex="-1"><a href="#contributing-to-fastmcp" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100 focus:opacity-100 focus:outline-0 group/link" aria-label="Navigate to header">​<div class="size-6 rounded-md flex items-center justify-center shadow-xs text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 shrink-0"><path d="M8.50001 6.827C8.14801 6.995 7.81801 7.225 7.52701 7.517L7.51701 7.527C6.13601 8.908 6.13601 11.146 7.51701 12.527L9.69201 14.702C11.073 16.083 13.3
49011 16.083 14.692 14.702L14.702 14.692C16.083 13.311 16.083 11.073 14.702 9.692L13.771 8.761" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9.50002 11.173C9.85202 11.005 10.182 10.775 10.473 10.483L10.483 10.473C11.864 9.092 11.864 6.854 10.483 5.473L8.30802 3.298C6.92702 1.917 4.68902 1.917 3.30802 3.298L3.29802 3.308C1.91702 4.689 1.91702 6.927 3.29802 8.308L4.22902 9.239" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></a></div><span class="cursor-pointer">Contributing to FastMCP</span></h2>
491<span data-as="p">The <a class="link" href="/development/contributing">Contributing Guide</a> covers setting up a development environment, running the test suite and pre-commit hooks, and the standards we hold contributed code to.</span></div><nav id="pagination" aria-label="Pagination" class="grid lg:grid-cols-2 gap-4"><a rel="prev" data-component-part="pagination-prev" class="group flex items-center min-w-0 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary dark:focus-visible:outline-primary-light border border-gray-200/70 dark:border-gray-800/70 rounded-xl py-3 px-4 hover:border-gray-300 dark:hover:border-gray-700 justify-start pagination-prev" href="/getting-started/welcome"><div class="space-y-1 min-w-0 max-w-full"><div class="truncate font-medium text-gray-900 dark:text-gray-200" data-component-part="pagination-title">FastMCP: The Framework for MCP</div><div class="flex items-center text-sm text-gray-500 dark:text-gray-400 group-hover:text-gray-600 dark:group-hover:text-gray-300 gap-x-1"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-2.5 shrink-0 text-gray-400 dark:text-gray-600 group-hover:text-gray-500 dark:group-hover:text-gray-500" data-component-part="pagination-chevron"><path d="M11.5 15.25L5.25 9L11.5 2.75" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg><span class="font-medium" data-component-part="pagination-label">Previous</span></div></div></a><a rel="next" data-component-part="pagination-next" class="group flex items-center min-w-0 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary dark:focus-visible:outline-primary-light border border-gray-200/70 dark:border-gray-800/70 rounded-xl py-3 px-4 hover:border-gray-300 dark:hover:border-gray-700 justify-end pagination-next" href="/getting-started/quickstart"><div class="space-y-1 min-w-0 max-w-full"><div class="truncate font-medium text-gray-900 dark:text-gray-200 text-right" data-component-part="pagination-title">Quickstart</div><div class="flex items-center text-sm text-gray-500 dark:text-gray-400 group-hover:text-gray-600 dark:group-hover:text-gray-300 gap-x-1 flex-row-reverse"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-2.5 shrink-0 text-gray-400 dark:text-gray-600 group-hover:text-gray-500 dark:group-hover:text-gray-500" data-component-part="pagination-chevron"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg><span class="font-medium" data-component-part="pagination-label">Next</span></div></div></a></nav><div data-assistant-bar="" class="left-0 right-0 sticky bottom-0 w-full overflow-hidden z-20 pointer-events-none print:hidden"><div class="chat-assistant-floating-input w-full group/assistant-bar relative before:content-[&quot;&quot;] before:absolute before:left-0 before:right-0 before:top-[calc(50%-0.5rem)] sm:before:top-[calc(50%-0.75rem)] before:h-[200px] before:bg-background-light dark:before:bg-background-dark translate-y-[100px] opacity-0"><div class="relative pb-4 sm:pb-6"><div class="flex flex-col w-full rounded-2xl pointer-events-auto bg-background-light dark:bg-background-dark border border-gray-200 dark:border-white/10 focus-within:border-primary dark:focus-within:border-primary-light transition-colors"><div class="relative flex items-end"><textarea id="chat-assistant-textarea" aria-label="Ask a question..." autoComplete="off" placeholder="Ask a question..." class="chat-assistant-input w-full bg-transparent border-0 peer/input text-gray-900 dark:text-gray-100 placeholder-gray-600 dark:placeholder-gray-300 outline-hidden! focus:outline-hidden! focus:ring-0 py-2.5 pl-3.5 pr-10 font-bodyWeight text-sm" style="resize:none"></textarea><span class="absolute bottom-3 text-xs font-medium text-gray-400 dark:text-gray-500 right-11 select-none pointer-events-none peer-focus/input:hidden hidden sm:inline">⌘<!-- -->I</span><button class="chat-assistant-send-button flex justify-center items-center rounded-full p-1 size-6 bg-primary/30 dark:bg-primary-dark/30 absolute right-2.5 bottom-2" aria-label="Send message" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-2.5 shrink-0 text-white dark:text-white"><path d="M9.0 1.5754L8.9999 16.4171" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.2563 8.319L8.9999 1.5754L15.7435 8.3191" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div></div></div></div></div><footer id="footer" class="flex gap-12 justify-between pt-10 border-t border-gray-100 sm:flex dar
491k:border-gray-800/50 pb-28"><div class="flex gap-6 flex-wrap"><a href="https://discord.gg/uu8dJCgttd" target="_blank" rel="noopener noreferrer" class="h-fit"><span class="sr-only">discord</span><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! w-5 h-5 bg-gray-400 dark:bg-gray-500 hover:bg-gray-500 dark:hover:bg-gray-400" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/discord.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/discord.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></a><a href="https://github.com/PrefectHQ/fastmcp" target="_blank" rel="noopener noreferrer" class="h-fit"><span class="sr-only">github</span><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! w-5 h-5 bg-gray-400 dark:bg-gray-500 hover:bg-gray-500 dark:hover:bg-gray-400" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/github.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/github.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></a><a href="https://www.prefect.io" target="_blank" rel="noopener noreferrer" class="h-fit"><span class="sr-only">website</span><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! w-5 h-5 bg-gray-400 dark:bg-gray-500 hover:bg-gray-500 dark:hover:bg-gray-400" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/earth-americas.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/earth-americas.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></a><a href="https://x.com/fastmcp" target="_blank" rel="noopener noreferrer" class="h-fit"><span class="sr-only">x</span><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! w-5 h-5 bg-gray-400 dark:bg-gray-500 hover:bg-gray-500 dark:hover:bg-gray-400" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/x-twitter.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/x-twitter.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></a><a href="https://bsky.app/profile/gofastmcp.com" target="_blank" rel="noopener noreferrer" class="h-fit"><span class="sr-only">bluesky</span><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! w-5 h-5 bg-gray-400 dark:bg-gray-500 hover:bg-gray-500 dark:hover:bg-gray-400" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/bluesky.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/bluesky.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></a></div><div class="flex items-center justify-between"><div class="sm:flex"><a href="https://www.mintlify.com?utm_campaign=poweredBy&amp;utm_medium=referral&amp;utm_source=fastmcp" target="_blank" rel="noreferrer" class="group flex items-baseline gap-1 text-sm text-gray-400 dark:text-gray-500 hover:text-gray-600 dark:hover:text-gray-300 text-nowrap"><span>Powered by</span><svg width="1274" height="367" viewBox="0 0 1274 367" fill="none" xmlns="http://www.w3.org/2000/svg" class="h-3.5 w-auto translate-y-0.75"><path d="M1154.38 366.038H1097.86L1137.69 276.14L1058.04 97.1046H1114.93L1161.35 209.337C1162.97 213.26 1168.53 213.253 1170.14 209.325L1216.21 97.1046H1273.49L1154.38 366.038Z" fill="currentColor"></path><path d="M982.714 286.761V142.622H944.403V97.1041H982.714V72.4488C982.714 49.9429 989.542 32.2416 1003.2 19.345C1016.85 6.44832 1034.17 0 1055.16 0C1068.06 0 1079.06 1.39081 1088.16 4.17244V50.0693C1082.09 47.7934 1075.01 46.6555 1066.92 46.6555C1055.54 46.6555 1047.32 49.1843 1042.27 54.2418C1037.21 59.0464 1034.68 67.2648 1034.68 78.8971V97.104
4911H1088.16V142.622H1034.68V286.761H982.714Z" fill="currentColor"></path><path d="M897.916 66.0005C889.066 66.0005 881.353 62.8395 874.778 56.5176C868.203 49.9429 864.916 42.1037 864.916 33.0002C864.916 23.8967 868.203 16.184 874.778 9.86215C881.353 3.28738 889.066 0 897.916 0C907.273 0 915.112 3.28738 921.434 9.86215C928.008 16.184 931.296 23.8967 931.296 33.0002C931.296 42.1037 928.008 49.9429 921.434 56.5176C915.112 62.8395 907.273 66.0005 897.916 66.0005ZM872.123 286.761V97.1041H924.089V286.761H872.123Z" fill="currentColor"></path><path d="M781.638 286.761V2.27609H833.604V286.761H781.638Z" fill="currentColor"></path><path d="M722.934 289.037C701.693 289.037 684.244 283.221 670.589 271.588C657.187 259.703 650.485 242.634 650.485 220.381V142.622H612.175V97.1044H650.485V44.3799H702.451V97.1044H755.934V142.622H702.451V210.14C702.451 221.772 704.98 230.117 710.038 235.174C715.095 239.979 723.313 242.381 734.693 242.381C742.785 242.381 749.865 241.243 755.934 238.967V284.864C746.831 287.646 735.831 289.037 722.934 289.037Z" fill="currentColor"></path><path d="M417.674 286.761V97.1041H469.64V110.967C469.64 113.311 472.83 114.347 474.382 112.591C485.967 99.4848 502.467 92.9317 523.881 92.9317C546.64 92.9317 564.468 100.518 577.365 115.69C590.514 130.61 597.089 150.587 597.089 175.622V286.761H545.123V184.346C545.123 170.438 542.215 159.691 536.399 152.105C530.583 144.265 522.364 140.346 511.743 140.346C499.1 140.346 488.858 144.898 481.019 154.001C473.433 163.105 469.64 176.507 469.64 194.208V286.761H417.674Z" fill="currentColor"></path><path d="M352.981 66.0005C344.13 66.0005 336.417 62.8395 329.843 56.5176C323.268 49.9429 319.98 42.1037 319.98 33.0002C319.98 23.8967 323.268 16.184 329.843 9.86215C336.417 3.28738 344.13 0 352.981 0C362.337 0 370.176 3.28738 376.498 9.86215C383.073 16.184 386.36 23.8967 386.36 33.0002C386.36 42.1037 383.073 49.9429 376.498 56.5176C370.176 62.8395 362.337 66.0005 352.981 66.0005ZM327.187 286.761V97.1041H379.153V286.761H327.187Z" fill="currentColor"></path><path d="M238.967 286.761V185.484C238.967 155.392 229.105 140.346 209.381 140.346C198.001 140.346 188.898 144.645 182.07 153.242C175.495 161.84 171.955 174.61 171.449 191.553V286.761H119.484V185.484C119.484 155.392 109.621 140.346 89.8972 140.346C78.2649 140.346 69.035 144.898 62.2073 154.001C55.3797 163.105 51.9659 176.507 51.9659 194.208V286.761H0V97.104
4911H51.9659V111.103C51.9659 113.435 55.1014 114.462 56.633 112.704C68.1136 99.5223 83.3741 92.9317 102.415 92.9317C127.436 92.9317 146.283 103.262 158.953 123.923C159.953 125.553 162.412 125.527 163.406 123.894C168.884 114.891 176.496 107.731 186.243 102.415C197.369 96.0926 208.622 92.9317 220.002 92.9317C242.507 92.9317 259.956 100.392 272.347 115.311C284.738 130.231 290.933 150.714 290.933 176.76V286.761H238.967Z" fill="currentColor"></path></svg><span class="sr-only">This documentation is built and hosted on Mintlify, a developer documentation platform</span></a></div></div></footer></div></div></main></div></div><!--$--><!--/$--></div><!--$?--><template id="B:0"></template><!--/$--></div></div>
491<script>requestAnimationFrame(function(){$RT=performance.now()});</script>
491<script src="/mintlify-assets/_next/static/chunks/6d55b684068fd47e.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx" id="_R_" async=""></script>
491<div hidden id="S:0"><div data-assistant-sheet-container="" class="sticky shrink-0 z-22 pt-2 pb-2 pr-2 mt-(--banner-height,0px) top-(--banner-height,0px) h-[calc(100vh-var(--banner-height,0px))] max-lg:hidden print:hidden" style="width:var(--assistant-sheet-width, 0px);overflow:hidden"><div class="absolute left-0 top-0 bottom-0 w-px z-10 cursor-col-resize after:content-[&quot;&quot;] after:absolute after:inset-y-0 after:-inset-x-2 after:select-none"></div><div id="chat-assistant-sheet" class="flex flex-col overflow-hidden shrink-0 relative h-full bg-background-light dark:bg-background-dark rounded-2xl border border-gray-200/70 dark:border-white/[0.07] chat-assistant-sheet" aria-hidden="true"><div class="w-full flex flex-col flex-1 min-h-0 lg:pt-3"><div class="chat-assistant-sheet-header flex items-center justify-between pb-3 px-4"><div class="flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="size-5 text-primary dark:text-primary-light shrink-0" aria-hidden="true"><path d="M5.65799 2.99L4.39499 2.569L3.97399 1.306C3.83699 0.898 3.16199 0.898 3.02499 1.306L2.60399 2.569L1.34099 2.99C1.13699 3.058 0.998993 3.249 0.998993 3.464C0.998993 3.679 1.13699 3.87 1.34099 3.938L2.60399 4.359L3.02499 5.622C3.09299 5.826 3.28499 5.964 3.49999 5.964C3.71499 5.964 3.90599 5.826 3.97499 5.622L4.39599 4.359L5.65899 3.938C5.86299 3.87 6.00099 3.679 6.00099 3.464C6.00099 3.249 5.86199 3.058 5.65799 2.99Z" fill="currentColor" stroke="none"></path><path d="M9.5 2.75L11.412 7.587L16.25 9.5L11.412 11.413L9.5 16.25L7.587 11.413L2.75 9.5L7.587 7.587L9.5 2.75Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg><span class="font-medium text-gray-900 dark:text-gray-100">Assistant</span></div><div class="flex items-center gap-1"><button class="group hover:bg-gray-100 dark:hover:bg-white/10 p-1.5 rounded-lg" aria-label="Maximize assistant panel"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-4 sm:size-3.5 text-gray-500 group-hover:text-gray-700 dark:group-hover:text-gray-300 shrink-0"><path d="M10.75 2.75H15.25V7.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M15.25 2.75L10.75 7.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.75 10.75V15.25H7.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.75 15.25L7.25 10.75" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button><button class="group hover:bg-gray-100 dark:hover:bg-white/10 p-1.5 rounded-lg" aria-label="Close assistant panel"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-[20px] sm:size-4 text-gray-500 group-hover:text-gray-700 dark:group-hover:text-gray-300 shrink-0"><path d="M14 4L4 14" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M4 4L14 14" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div></div><div id="chat-content" class="chat-assistant-sheet-content flex flex-col-reverse flex-1 overflow-y-auto relative px-5 min-h-0"><div class="grow"></div><div class="h-full flex flex-col justify-between"><div class="mt-4 flex flex-col items-center text-sm"><div class="mx-8 text-center text-gray-400 dark:text-gray-600 text-xs chat-assistant-disclaimer-text">Responses are generated using AI and may contain mistakes.</div></div></div></div><div class="px-4 pb-4 shrink-0"><div class=""><div class="flex flex-col w-full rounded-2xl pointer-events-auto bg-background-light dark:bg-background-dark border border-gray-200 dark:border-white/10 focus-within:border-primary dark:focus-within:border-primary-light transition-colors"><div class="relative flex items-end"><textarea id="chat-assistant-textarea" aria-label="Ask a question..." autoComplete="off" placeholder="Ask a question..." class="chat-assistant-input w-full bg-transparent border-0 peer/input text-gray-900 dark:text-gray-100 placeholder-gray-600 dark:placeholder-gray-300 outline-hidden! focus:outline-hidden! focus:ring-0 py-2.5 pl-3.5 pr-10 font-bodyWeight text-sm pb-0!" style="resize:none" rows="2"></textarea></div><div class="flex items-center justify-between px-2 pb-2"><input type="file" accept="image/*,.pdf,.js,.jsx,.ts,.tsx,.mjs,.cjs,.md,.mdx,.json,.html,.css,.py,.csv,.txt,.yaml,.yml,.xml,.sql,.sh,.bash,.zsh,.graphql,.gql,.toml,.env,.go,.rs,.rb,.java,.kt,.swift,.c,.cpp,.cc,.h,.hpp,.cs,.php,.dart,.lua,.r,.scala,.ini,.cfg,.conf,.log,.dockerfile,.makefile,.gitignore" multiple="" class="hidden"/><button type="button" class="p-1 rounded-lg text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200 hover:bg-gray-100 dark:hover:bg-white/10" aria-label="Add attachment"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3.5 shrink-0"><path d="M7.75 5V11.75C7.75 12.578 8.422 13.25 9.25 13.25C10.078 13.25 10.75 12.578 10.75 11.75V4.75C10.75 3.093 9.407 1.75 7.75 1.75C6.093 1.75 4.75 3.093 4.75 4.75V11.75C4.75 14.235 6.765 16.25 9.25 16.25C11.735 16.25 13.75 14.235 13.75 11.75V5" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button><button class="chat-assistant-send-button flex justify-center items-center rounded-full p-1 size-6 bg-primary/30 dark:bg-primary-dark/30" aria-label="Send message" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-2.5 shrink-0 text-white dark:text-white"><path d="M9.0 1.5754L8.9999 16.4171" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.2563 8.319L8.9999 1.5754L15.7435 8.3191" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div></div></div></div></div></div></div></div>
491<script>$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};
492$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script>
492<script>(self.__next_f=self.__next_f||[]).push([0])</script>
492<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\nb:I[168027,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"default\"]\n:HL[\"/mintlify-assets/_next/static/chunks/462bacc63bed9960.css?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"style\"]\n:HL[\"/mintlify-assets/_next/static/chunks/aaa51283d61f795b.css?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"style\"]\n:HL[\"/mintlify-assets/_next/static/media/83afe278b6a6bb3c.p.3a6ba036.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/mintlify-assets/_next/static/media/PaperMono_Variable.p.aa32f7a0.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/mintlify-assets/_next/static/media/f67ad414ed34149c.p.84166d94.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script>
492<script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"66ys6uWouaO7O84-FnJri\",\"p\":\"/mintlify-assets\",\"c\":[\"\",\"_sites\",\"fastmcp\",\"getting-started\",\"installation\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"%5Fsites\",{\"children\":[[\"subdomain\",\"fastmcp\",\"d\"],{\"children\":[\"(multitenant)\",{\"children\":[[\"slug\",\"getting-started/installation\",\"oc\"],{\"children\":[\"__PAGE__\",{}]}]}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/mintlify-assets/_next/static/chunks/462bacc63bed9960.css?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/mintlify-assets/_next/static/chunks/aaa51283d61f795b.css?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"suppressHydrationWarning\":true,\"lang\":\"en\",\"className\":\"inter_1d81deff-module__CYM0aG__variable papermono_89c757f2-module__6aS5zq__variable dark\",\"data-banner-state\":\"visible\",\"data-assistant-state\":\"closed\",\"data-page-mode\":\"none\",\"data-current-path\":\"/\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"dangerouslySetInnerHTML\":{\"__html\":\"!function(){var b=\\\"\\\";\\nfunction a(p){if(p==null)return\\\"/\\\";p=\\\"\\\"+p;if(\\\"\\\"===p)return\\\"/\\\";return\\\"/\\\"===p.charAt(0)?p:\\\"/\\\"+p}\\nfunction u(p){if(p==null)return p;p=\\\"\\\"+p;if(!p||p.charAt(p.length-1)===\\\"/\\\")return p.slice(0,-1);return p}\\nfunction i(p){if(p==null)return p;p=\\\"\\\"+p;if(6\u003c=p.length\u0026\u0026p.substring(p.length-6)===\\\"/index\\\")return p.substring(0,p.length-6);if(\\\"index\\\"===p)return\\\"\\\";return p}\\nvar p=(location.pathname||\\\"\\\").split(\\\"?\\\")[0].split(\\\"#\\\")[0]||\\\"\\\";\\nif(b)if(p===b)p=\\\"\\\";else if(0===p.indexOf(b+\\\"/\\\"))p=p.substring(b.length);\\np=a(p);p=u(p);p=i(p);p=\\\"\\\"===p||\\\"index\\\"===p?\\\"/\\\":a(p);\\ndocument.documentElement.setAttribute(\\\"data-current-path\\\",p);\\n}();\"}}],[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"dangerouslySetInnerHTML\":{\"__html\":\"(() =\u003e {\\n  const isIOS =\\n    /iP(hone|ad|od)/.test(navigator.userAgent) ||\\n    (/Macintosh/.test(navigator.userAgent) \u0026\u0026 navigator.maxTouchPoints \u003e 1);\\n  if (!isIOS) return;\\n  const apply = () =\u003e {\\n    for (const meta of document.querySelectorAll('meta[name=\\\"viewport\\\"]')) {\\n      const content = meta.getAttribute('content') || '';\\n      if (!content.includes('maximum-scale')) {\\n        meta.setAttribute('content', content + ', maximum-scale=1');\\n      }\\n    }\\n  };\\n  apply();\\n  new MutationObserver(apply).observe(document.head, {\\n    childList: true,\\n    subtree: true,\\n    attributes: true,\\n    attributeFilter: ['content'],\\n  });\\n})();\"}}],[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"dangerouslySetInnerHTML\":{\"__html\":\"!function(){\\nfunction read(){try{\\nvar e=performance.getEntriesByType?performance.getEntriesByType(\\\"navigation\\\"):[];\\nvar st=(e[0]\u0026\u0026e[0].serverTiming)||[];\\nvar g={};\\nfor(var i=0;i\u003cst.length;i++){var n=st[i].name,d=st[i].description;if(!d)continue;try{d=decodeURIComponent(d)}catch(x){}\\nif(n===\\\"country\\\")g.country=d;else if(n===\\\"region\\\")g.region=d;else if(n===\\\"continent\\\")g.continent=d;}\\nvar w=window;w.mintlify=w.mintlify||{};w.mintlify.geo=g;\\n}catch(x){}}\\nread();document.addEventListener(\\\"DOMContentLoaded\\\",read);\\n}();\"}}],[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"dangerouslySetInnerHTML\":{\"__html\":\"!function(){try{\\nvar w=window;w.mintlify=w.mintlify||{};\\nvar q=w.mintlify.__apiPlaygroundInputsQueue;\\nif(!Array.isArray(q)){q=[];w.mintlify.__apiPlaygroundInputsQueue=q;}\\nw.mintlify.api=w.mintlify.api||{};\\nw.mintlify.api.playground=w.mintlify.api.playground||{};\\nif(typeof w.mintlify.api.playground.setServerVariables!==\\\"function\\\"){\\nw.mintlify.api.playground.setServerVariables=function(v){q.push({type:\\\"set\\\",variables:v});};\\n}\\nif(typeof w.mintlify.api.playground.clearServerVariables!==\\\"function\\\"){\\nw.mintlify.api.playground.clearServerVariables=function(){q.push({type:\\\"clear\\\"});};\\n}\\n}catch(e){}}();\"}}],\"$L2\",\"$L3\",false]}],\"$L4\"]}]]}],{\"children\":[\"%5Fsites\",\"$L5\",{\"children\":[[\"subdomain\",\"fastmcp\",\"d\"],\"$L6\",{\"children\":[\"(multitenant)\",\"$L7\",{\"children\":[[\"slug\",\"getting-started/installation\",\"oc\"],\"$L8\",{\"children\":[\"__PAGE__\",\"$L9\",{}
492,null,false]},null,false]},null,false]},null,false]},null,false]},null,false],\"$La\",false]],\"m\":\"$undefined\",\"G\":[\"$b\",[\"$Lc\",\"$Ld\"]],\"s\":false,\"S\":true}\n"])</script>
492<script>self.__next_f.push([1,"e:I[667786,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"MintlifyApiPlaygroundInputsInit\"]\nf:I[339756,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"default\"]\n"])</script>
492<script>self.__next_f.push([1,"10:I[556357,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/885f4d31de86d646.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"default\"]\n"])</script>
492<script>self.__next_f.push([1,"11:I[837457,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"default\"]\n"])</script>
492<script>self.__next_f.push([1,"12:I[894587,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"ThemeProvider\"]\n"])</script>
492<script>self.__next_f.push([1,"13:I[152823,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"ColorVariables\"]\n"])</script>
492<script>self.__next_f.push([1,"14:I[531961,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"FontScript\"]\n"])</script>
492<script>self.__next_f.push([1,"15:I[649328,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"RoundedVariables\"]\n"])</script>
492<script>self.__next_f.push([1,"16:I[702910,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/36ebfb810eb5d91c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"RecommendedPagesList\"]\n"])</script>
492<script>self.__next_f.push([1,"17:I[570420,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"DataCurrentPathUpdater\"]\n"])</script>
492<script>self.__next_f.push([1,"18:I[341175,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/4d83136478871436.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"default\"]\n"])</script>
492<script>self.__next_f.push([1,"1b:I[897367,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"OutletBoundary\"]\n1d:I[711533,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"AsyncMetadataOutlet\"]\n1f:I[897367,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"ViewportBoundary\"]\n21:I[897367,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"MetadataBoundary\"]\n22:\"$Sreact.suspense\"\n2:[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){\\nif(typeof CSS===\\\"undefined\\\"||!(\\\"registerProperty\\\" in CSS))return;\\nif(CSS.supports\u0026\u0026CSS.supports(\\\"-webkit-backdrop-filter:none\\\"))return;\\nvar n=[\\\"--scroll-area-overflow-x-start\\\",\\\"--scroll-area-overflow-x-end\\\",\\\"--scroll-area-overflow-y-start\\\",\\\"--scroll-area-overflow-y-end\\\"];\\nvar d={\\\"syntax\\\":\\\"\u003clength\u003e\\\",\\\"inherits\\\":false,\\\"initialValue\\\":\\\"0px\\\"};\\nfor(var i=0;i\u003cn.length;i++){try{CSS.registerProperty({name:n[i],syntax:d.syntax,inherits:d.inherits,initialValue:d.initialValue})}catch(e){}}\\n})();\"}}]\n"])</script>
492<script>self.__next_f.push([1,"3:[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function(a,b){try{let c=document.getElementById(\\\"banner\\\")?.innerText;if(c){for(let d=0;d\u003clocalStorage.length;d++){let e=localStorage.key(d);if(e?.endsWith(a)\u0026\u0026localStorage.getItem(e)===c)return void document.documentElement.setAttribute(b,\\\"hidden\\\")}document.documentElement.setAttribute(b,\\\"visible\\\");return}for(let c=0;c\u003clocalStorage.length;c++){let d=localStorage.key(c);if(d?.endsWith(a)\u0026\u0026localStorage.getItem(d))return void document.documentElement.setAttribute(b,\\\"hidden\\\")}document.documentElement.setAttribute(b,\\\"visible\\\")}catch(a){document.documentElement.setAttribute(b,\\\"hidden\\\")}})(\\n  \\\"bannerDismissed\\\",\\n  \\\"data-banner-state\\\",\\n)\"}}]\n"])</script>
492<script>self.__next_f.push([1,"4:[\"$\",\"body\",null,{\"className\":\"antialiased\",\"children\":[[\"$\",\"$Le\",null,{}],false,[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$10\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/mintlify-assets/_next/static/chunks/885f4d31de86d646.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true}],[\"$\",\"script\",\"script-1\",{\"src\":\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true}],[\"$\",\"script\",\"script-2\",{\"src\":\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true}],[\"$\",\"script\",\"script-3\",{\"src\":\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true}],[\"$\",\"script\",\"script-4\",{\"src\":\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true}]],\"template\":[\"$\",\"$L11\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L12\",null,{\"children\":[[\"$\",\"$L13\",null,{}],[\"$\",\"$L14\",null,{}],[\"$\",\"$L15\",null,{}],[\"$\",\"style\",null,{\"children\":\":root {\\n  --primary: 17 120 102;\\n  --primary-light: 74 222 128;\\n  --primary-dark: 22 101 52;\\n  --background-light: 255 255 255;\\n  --background-dark: 15 17 23;\\n}\"}],[\"$\",\"main\",null,{\"className\":\"h-screen bg-background-light dark:bg-background-dark text-left\",\"children\":[\"$\",\"article\",null,{\"className\":\"bg-custom bg-fixed bg-center bg-cover relative flex flex-col items-center justify-center h-full\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full max-w-xl px-10\",\"children\":[[\"$\",\"span\",null,{\"className\":\"inline-flex mb-6 rounded-full px-3 py-1 text-sm font-semibold mr-4 text-white p-1 bg-primary\",\"children\":[\"Error \",404]}],[\"$\",\"h1\",null,{\"className\":\"font-semibold mb-3 text-3xl\",\"children\":\"Page not found!\"}],[\"$\",\"p\",null,{\"className\":\"text-lg text-gray-600 dark:text-gray-400 mb-6\",\"children\":\"We couldn't find the page.\"}],[\"$\",\"$L16\",null,{}]]}]}]}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],false,[\"$\",\"$L17\",null,{}]]}]\n"])</script>
492<script>self.__next_f.push([1,"5:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L11\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n"])</script>
492<script>self.__next_f.push([1,"6:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$18\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/mintlify-assets/_next/static/chunks/4d83136478871436.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true}],[\"$\",\"script\",\"script-1\",{\"src\":\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true}],[\"$\",\"script\",\"script-2\",{\"src\":\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true}],[\"$\",\"script\",\"script-3\",{\"src\":\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true}],[\"$\",\"script\",\"script-4\",{\"src\":\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true}]],\"template\":[\"$\",\"$L11\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L12\",null,{\"children\":[[\"$\",\"$L13\",null,{}],[\"$\",\"$L14\",null,{}],[\"$\",\"$L15\",null,{}],[\"$\",\"style\",null,{\"children\":\":root {\\n  --primary: 17 120 102;\\n  --primary-light: 74 222 128;\\n  --primary-dark: 22 101 52;\\n  --background-light: 255 255 255;\\n  --background-dark: 15 17 23;\\n}\"}],[\"$\",\"main\",null,{\"className\":\"h-screen bg-background-light dark:bg-background-dark text-left\",\"children\":[\"$\",\"article\",null,{\"className\":\"bg-custom bg-fixed bg-center bg-cover relative flex flex-col items-center justify-center h-full\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full max-w-xl px-10\",\"children\":[[\"$\",\"span\",null,{\"className\":\"inline-flex mb-6 rounded-full px-3 py-1 text-sm font-semibold mr-4 text-white p-1 bg-primary\",\"children\":[\"Error \",404]}],[\"$\",\"h1\",null,{\"className\":\"font-semibold mb-3 text-3xl\",\"children\":\"Page not found!\"}],[\"$\",\"p\",null,{\"className\":\"text-lg text-gray-600 dark:text-gray-400 mb-6\",\"children\":\"We couldn't find the page.\"}],[\"$\",\"$L16\",null,{}]]}]}]}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n"])</script>
492<script>self.__next_f.push([1,"7:[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"script\",\"script-0\",{\"src\":\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-6\",{\"src\":\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-7\",{\"src\":\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-8\",{\"src\":\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-9\",{\"src\":\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-10\",{\"src\":\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-11\",{\"src\":\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-12\",{\"src\":\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-13\",{\"src\":\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-14\",{\"src\":\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-15\",{\"src\":\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-16\",{\"src\":\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-17\",{\"src\":\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-18\",{\"src\":\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}]],\"$L19\"]}]\n"])</script>
492<script>self.__next_f.push([1,"8:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L11\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n"])</script>
492<script>self.__next_f.push([1,"9:[\"$\",\"$1\",\"c\",{\"children\":[\"$L1a\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/mintlify-assets/_next/static/chunks/05947de8d1d1b0df.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/mintlify-assets/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/mintlify-assets/_next/static/chunks/46839b330f00a800.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/mintlify-assets/_next/static/chunks/68d6e5104243ae2b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/mintlify-assets/_next/static/chunks/b0d72ff121ddceb8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/mintlify-assets/_next/static/chunks/afd2b935774e1485.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-6\",{\"src\":\"/mintlify-assets/_next/static/chunks/65712ea96ab292b5.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-7\",{\"src\":\"/mintlify-assets/_next/static/chunks/67ac8b11c225e726.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L1b\",null,{\"children\":[\"$L1c\",[\"$\",\"$L1d\",null,{\"promise\":\"$@1e\"}]]}]]}]\n"])</script>
492<script>self.__next_f.push([1,"a:[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L1f\",null,{\"children\":\"$L20\"}],null],[\"$\",\"$L21\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$22\",null,{\"fallback\":null,\"children\":\"$L23\"}]}]}]]}]\nc:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/mintlify-assets/_next/static/chunks/462bacc63bed9960.css?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\nd:[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/mintlify-assets/_next/static/chunks/aaa51283d61f795b.css?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n"])</script>
492<script>self.__next_f.push([1,"20:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, viewport-fit=cover\"}]]\n1c:null\n"])</script>
492<script>self.__next_f.push([1,"24:I[707934,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"WebMcpRegistration\"]\n"])</script>
492<script>self.__next_f.push([1,"25:I[590280,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"LivePreviewProvider\"]\n"])</script>
492<script>self.__next_f.push([1,"26:I[973254,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"LivePreviewFavicon\"]\n"])</script>
492<script>self.__next_f.push([1,"27:I[197336,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"default\"]\n"])</script>
492<script>self.__next_f.push([1,"28:I[91557,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/05947de8d1d1b0df.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/46839b330f00a800.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/68d6e5104243ae2b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/b0d72ff121ddceb8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/afd2b935774e1485.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/65712ea96ab292b5.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/67ac8b11c225e726.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"AuthProvider\"]\n"])</script>
492<script>self.__next_f.push([1,"29:I[91557,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/05947de8d1d1b0df.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/46839b330f00a800.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/68d6e5104243ae2b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/b0d72ff121ddceb8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/afd2b935774e1485.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/65712ea96ab292b5.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/67ac8b11c225e726.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"DeploymentMetadataProvider\"]\n"])</script>
492<script>self.__next_f.push([1,"2a:I[91557,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/05947de8d1d1b0df.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/46839b330f00a800.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/68d6e5104243ae2b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/b0d72ff121ddceb8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/afd2b935774e1485.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/65712ea96ab292b5.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/67ac8b11c225e726.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"DocsConfigProvider\"]\n"])</script>
492<script>self.__next_f.push([1,"19:[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"WebSite\\\",\\\"name\\\":\\\"FastMCP\\\",\\\"creator\\\":{\\\"@type\\\":\\\"Organization\\\",\\\"name\\\":\\\"Mintlify\\\",\\\"url\\\":\\\"https://mintlify.com\\\"}}\"}}],[\"$\",\"$L24\",null,{\"subdomain\":\"fastmcp\",\"siteName\":\"FastMCP\"}],[\"$\",\"$L25\",null,{\"isLivePreviewRoute\":false,\"children\":[[\"$\",\"$L26\",null,{}],[\"$\",\"$L12\",null,{\"appearance\":{\"default\":\"system\",\"strict\":false},\"codeblockTheme\":{\"theme\":{\"light\":\"snazzy-light\",\"dark\":\"dark-plus\"}},\"children\":[[\"$\",\"blockquote\",null,{\"className\":\"sr-only\",\"data-agent-docs-index\":true,\"aria-hidden\":\"true\",\"children\":[[\"$\",\"h2\",null,{\"children\":\"Documentation Index\"}],[\"$\",\"p\",null,{\"children\":[\"Fetch the complete documentation index at:\",\" \",[\"$\",\"a\",null,{\"href\":\"/llms.txt\",\"tabIndex\":-1,\"children\":\"/llms.txt\"}]]}],[\"$\",\"p\",null,{\"children\":\"Use this file to discover all available pages before exploring further.\"}]]}],false,false,null,null,[\"$\",\"script\",null,{\"id\":\"_mintlify-banner-script\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function i(a,b,c,d,e){try{let f,g,h=[];try{h=window.location.pathname.split(\\\"/\\\").filter(a=\u003e\\\"\\\"!==a\u0026\u0026\\\"global\\\"!==a).slice(0,2)}catch{h=[]}let i=h.find(a=\u003ec.includes(a)),j=[];for(let c of(i?j.push(i):j.push(b),j.push(\\\"global\\\"),j)){if(!c)continue;let b=a[c];if(b?.content){f=b.content,g=c;break}}if(!f)return void document.documentElement.setAttribute(d,\\\"hidden\\\");let k=!0,l=0;for(;l\u003clocalStorage.length;){let a=localStorage.key(l);if(l++,!a?.endsWith(e))continue;let b=localStorage.getItem(a);if(b\u0026\u0026b===f){k=!1;break}g\u0026\u0026(a.startsWith(`lang:${g}_`)||!a.startsWith(\\\"lang:\\\"))\u0026\u0026(localStorage.removeItem(a),l--)}document.documentElement.setAttribute(d,k?\\\"visible\\\":\\\"hidden\\\")}catch(a){console.error(a),document.documentElement.setAttribute(d,\\\"hidden\\\")}})(\\n  {\\\"global\\\":{\\\"content\\\":\\\"FastMCP 4 is here — built for the new MCP protocol. [See what's new](/getting-started/whats-new).\\\",\\\"color\\\":{\\\"light\\\":\\\"#1e3a5f\\\",\\\"dark\\\":\\\"#475569\\\"}}},\\n  \\\"en\\\",\\n  [],\\n  \\\"data-banner-state\\\",\\n  \\\"bannerDismissed\\\",\\n)\"},\"suppressHydrationWarning\":true}],[\"$\",\"$L27\",null,{\"appId\":\"$undefined\",\"autoBoot\":true,\"children\":[\"$\",\"$L28\",null,{\"value\":{\"auth\":\"$undefined\",\"userAuth\":\"$undefined\"},\"children\":[\"$\",\"$L29\",null,{\"value\":{\"subdomain\":\"fastmcp\",\"hasAudioNarration\":false,\"actualSubdomain\":\"fastmcp\",\"customDomains\":[\"gofastmcp.com\"],\"gitSource\":{\"type\":\"github\",\"owner\":\"prefecthq\",\"repo\":\"fastmcp\",\"deployBranch\":\"published-docs\",\"contentDirectory\":\"docs\",\"isPrivate\":true,\"mountPath\":\"\",\"label\":\"\"},\"chroma\":{\"liveDeploymentHistoryId\":\"6ab6ad65086614292f9d5fa9\",\"collectionId\":\"3294ab4c-d42b-480e-955c-d446da66cebd\",\"schemaVersion\":\"v3\",\"latestBuiltDeploymentHistoryId\":\"6ab6ad65086614292f9d5fa9\"},\"feedback\":{\"thumbs\":false},\"entitlements\":{\"AI_CHAT\":{\"status\":\"ENABLED\"},\"WEB_MCP\":{\"status\":\"ENABLED\"},\"NARRATION\":{\"status\":\"ENABLED\"}},\"buildId\":\"6ab6ad69d3fc311f3cb7c9d7\",\"clientVersion\":\"0.0.3720\",\"preview\":\"$undefined\",\"searchFilterCounts\":[{\"language\":\"default\",\"tag\":\"Documentation\",\"count\":344},{\"language\":\"default\",\"tag\":\"SDK Reference\",\"count\":226},{\"language\":\"default\",\"tag\":\"Python SDK\",\"count\":226},{\"language\":\"default\",\"tag\":\"Servers\",\"count\":123},{\"language\":\"default\",\"tag\":\"fastmcp.server\",\"count\":101},{\"language\":\"default\",\"tag\":\"Integrations\",\"count\":85},{\"language\":\"default\",\"tag\":\"Clients\",\"count\":50},{\"language\":\"default\",\"tag\":\"Auth\",\"count\":50},{\"language\":\"default\",\"tag\":\"providers\",\"count\":45},{\"language\":\"default\",\"tag\":\"Authentication\",\"count\":41}],\"searchSettings\":\"$undefined\",\"disableKonamiCode\":\"$undefined\"},\"children\":[\"$\",\"$L2a\",null,{\"value\":{\"docsConfig\":{\"theme\":\"almond\",\"$schema\":\"https://mintlify.com/docs.json\",\"name\":\"FastMCP\",\"description\":\"The fast, Pythonic 
492way to build MCP servers and clients.\",\"colors\":{\"primary\":\"#2d00f7\",\"light\":\"#4cc9f0\",\"dark\":\"#f72585\"},\"logo\":{\"light\":\"https://mintcdn.com/fastmcp/Lu2sdJVHDyHdvswk/assets/brand/wordmark.png?fit=max\u0026auto=format\u0026n=Lu2sdJVHDyHdvswk\u0026q=85\u0026s=67680e9b1c641023511881a24f296077\",\"dark\":\"https://mintcdn.com/fastmcp/Lu2sdJVHDyHdvswk/assets/brand/wordmark-white.png?fit=max\u0026auto=format\u0026n=Lu2sdJVHDyHdvswk\u0026q=85\u0026s=776d9c0663633c9b9782b9f3f9785960\"},\"favicon\":{\"light\":\"https://mintcdn.com/fastmcp/N5hFSTFl9MRHRbXd/assets/brand/favicon-light.svg?fit=max\u0026auto=format\u0026n=N5hFSTFl9MRHRbXd\u0026q=85\u0026s=bf8c9324f3c6263da7ca91b0b7e8789c\",\"dark\":\"https://mintcdn.com/fastmcp/N5hFSTFl9MRHRbXd/assets/brand/favicon-dark.svg?fit=max\u0026auto=format\u0026n=N5hFSTFl9MRHRbXd\u0026q=85\u0026s=9fc674c77e5d9bc3f601443e2873d8ae\"},\"appearance\":\"$19:2:props:children:1:props:appearance\",\"background\":{\"decoration\":\"gradient\",\"color\":{\"light\":\"#EEEEEE\",\"dark\":\"#222831\"}},\"navbar\":{\"links\":[{\"icon\":\"discord\",\"href\":\"https://discord.gg/uu8dJCgttd\",\"label\":\"\"},{\"icon\":\"cloud\",\"href\":\"https://www.prefect.io/horizon?utm_source=gofastmcp\u0026utm_medium=docs\u0026utm_campaign=docs_horizon\u0026utm_content=header\",\"label\":\"Prefect Horizon\"}],\"primary\":{\"type\":\"github\",\"href\":\"https://github.com/PrefectHQ/fastmcp\"}},\"footer\":{\"socials\":{\"discord\":\"https://discord.gg/uu8dJCgttd\",\"github\":\"https://github.com/PrefectHQ/fastmcp\",\"website\":\"https://www.prefect.io\",\"x\":\"https://x.com/fastmcp\",\"bluesky\":\"https://bsky.app/profile/gofastmcp.com\"}},\"search\":{\"prompt\":\"Search the docs...\"},\"styling\":{\"codeblocks\":\"$19:2:props:children:1:props:codeblockTheme\",\"latex\":true},\"integrations\":{\"ga4\":{\"measurementId\":\"G-64R5W1TJXG\"}},\"banner\":{\"content\":\"FastMCP 4 is here — built for the new MCP protocol. [See what's new](/getting-started/whats-new).\",\"color\":{\"light\":\"#1e3a5f\",\"dark\":\"#475569\"}},\"errors\":{\"404\":{\"redirect\":false,\"title\":\"Don't panic.\",\"description\":\"You’ve wandered outside the context.\"}},\"contextual\":{\"options\":[\"copy\",\"view\"],\"display\":\"header\"},\"thumbnails\":{\"appearance\":\"light\",\"background\":\"https://mintcdn.com/fastmcp/168oaHZRFMSLjT2T/assets/brand/thumbnail-background-4.jpeg?fit=max\u0026auto=format\u0026n=168oaHZRFMSLjT2T\u0026q=85\u0026s=b2bfba03fb25ea2127b373353cec17e9\"},\"interaction\":{\"drilldown\":false},\"navigation\":{\"pages\":[]}},\"docsNavWithMetadata\":\"$undefined\",\"anonymizedNav\":\"$undefined\",\"hasFullNav\":false},\"children\":\"$L2b\"}]}]}]}]]}]]}]]\n"])</script>
492<script>self.__next_f.push([1,"2c:I[604804,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"LoginButtonProvider\"]\n"])</script>
492<script>self.__next_f.push([1,"2d:I[141180,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"SidebarLoginButtonProvider\"]\n"])</script>
492<script>self.__next_f.push([1,"2e:I[343590,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"NavigationContextController\"]\n"])</script>
492<script>self.__next_f.push([1,"2f:I[378486,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"PageListProvider\"]\n"])</script>
492<script>self.__next_f.push([1,"30:I[742977,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"PrefetchProvider\"]\n"])</script>
492<script>self.__next_f.push([1,"31:I[237978,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"PageModeOverrideProvider\"]\n"])</script>
492<script>self.__next_f.push([1,"32:I[378896,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"ConfiguredVariationProvider\"]\n"])</script>
492<script>self.__next_f.push([1,"33:I[557611,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"Fonts\"]\n"])</script>
492<script>self.__next_f.push([1,"34:I[330080,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"BannerProvider\"]\n"])</script>
492<script>self.__next_f.push([1,"35:I[864506,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"NavbarTransitionScript\"]\n"])</script>
492<script>self.__next_f.push([1,"36:T9e0,"])</script>
492<script>self.__next_f.push([1,"(function () {\n  var measure = function(){let a=document.querySelectorAll(\"[id='navbar'], [data-top-chrome]\"),b=0;a.forEach(a=\u003e{let c=a.getBoundingClientRect();c.height\u003e0\u0026\u0026(b=Math.max(b,c.bottom))});let c=0,d=document.getElementById(\"content-container\");if(d){let{overflowY:a}=getComputedStyle(d);(\"auto\"===a||\"scroll\"===a)\u0026\u0026(c=Math.max(0,d.getBoundingClientRect().top))}let e=`${Math.round(Math.max(0,b-c))+40}px`,f=document.documentElement.style;f.getPropertyValue(\"--scroll-mt\")!==e\u0026\u0026f.setProperty(\"--scroll-mt\",e)};\n  (function(a){let b=[],c=0,d=\"undefined\"==typeof ResizeObserver?null:new ResizeObserver(f);function e(){let c=Array.from(document.querySelectorAll(\"[id='navbar'], [data-top-chrome]\"));(c.length!==b.length||c.some((a,c)=\u003ea!==b[c]))\u0026\u0026d\u0026\u0026(d.disconnect(),c.forEach(a=\u003ed.observe(a))),b=c,a()}function f(){c||(c=requestAnimationFrame(()=\u003e{c=0,e()}))}let g=\"[id='navbar'], [data-top-chrome]\";function h(a){let b=a.target;if(b instanceof Element\u0026\u0026b.closest(g))return!0;for(let b of a.addedNodes)if(b instanceof Element\u0026\u0026(b.matches(g)||b.querySelector(g)))return!0;for(let b of a.removedNodes)if(b instanceof Element\u0026\u0026(b.matches(g)||b.querySelector(g)))return!0;return!1}new MutationObserver(a=\u003e{a.some(h)\u0026\u0026f()}).observe(document.documentElement,{childList:!0,subtree:!0}),window.addEventListener(\"resize\",f),\"loading\"===document.readyState\u0026\u0026document.addEventListener(\"DOMContentLoaded\",e),e()})(measure);\n  (function(a){let b=window.location.hash.slice(1);if(!b)return;function c(){return\"smooth\"===getComputedStyle(document.documentElement).scrollBehavior}function d(c){let d=document.getElementById(b);return!!d\u0026\u0026(a(),d.scrollIntoView(c?{behavior:c}:void 0),!0)}if(\"complete\"===document.readyState)return void d();let e=new MutationObserver(()=\u003e{!c()\u0026\u0026d(\"instant\")\u0026\u0026f()});function f(){e.disconnect(),window.removeEventListener(\"load\",g)}function g(){let a=c();f(),a\u0026\u0026requestAnimationFrame(()=\u003e{d(),function(){let a=[\"wheel\",\"touchstart\",\"keydown\",\"pointerdown\"],c=0,e=window.scrollY,f=setInterval(()=\u003e{c+=1;let a=document.getElementById(b);if(!a||c\u003e=6)return g();let f=Math.abs(window.scrollY-e)\u003e1;if(e=window.scrollY,f)return;let h=parseFloat(getComputedStyle(a).scrollMarginTop)||0;Math.abs(a.getBoundingClientRect().top-h)\u003e4\u0026\u0026d()},350);function g(){clearInterval(f),a.forEach(a=\u003ewindow.removeEventListener(a,g))}a.forEach(a=\u003ewindow.addEventListener(a,g,{passive:!0}))}()})}window.addEventListener(\"load\",g),e.observe(document.documentElement,{childList:!0,subtree:!0}),!c()\u0026\u0026d(\"instant\")\u0026\u0026f()})(measure);\n})();"])</script>
492<script>self.__next_f.push([1,"2b:[\"$\",\"$L2c\",null,{\"children\":[\"$\",\"$L2d\",null,{\"children\":[\"$\",\"$L2e\",null,{\"children\":[\"$\",\"$L2f\",null,{\"pageListDataMap\":{},\"children\":[\"$\",\"$L30\",null,{\"disabled\":\"$undefined\",\"children\":[\"$\",\"$L31\",null,{\"children\":[\"$\",\"$L32\",null,{\"children\":[[\"$\",\"$L14\",null,{\"fonts\":\"$undefined\",\"theme\":\"almond\",\"subdomain\":\"fastmcp\"}],[[\"$\",\"$L13\",null,{\"docsConfig\":\"$19:2:props:children:1:props:children:6:props:children:props:children:props:children:props:value:docsConfig\"}],[[\"$\",\"link\",null,{\"rel\":\"preload\",\"href\":\"https://d4tuoctqmanu0.cloudfront.net/katex.min.css\",\"as\":\"style\"}],[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"children\":\"\\n          (function() {\\n            function loadKatex() {\\n              const link = document.querySelector('link[href=\\\"https://d4tuoctqmanu0.cloudfront.net/katex.min.css\\\"]');\\n              if (link) link.rel = 'stylesheet';\\n            }\\n            if (document.readyState === 'loading') {\\n              document.addEventListener('DOMContentLoaded', loadKatex);\\n            } else {\\n              loadKatex();\\n            }\\n          })();\\n        \"}]],[\"$\",\"$L15\",null,{\"theme\":\"almond\"}],[\"$\",\"$L33\",null,{\"fonts\":\"$undefined\",\"children\":[\"$\",\"$L34\",null,{\"bannersByLocale\":{\"global\":\"$19:2:props:children:1:props:children:6:props:children:props:children:props:children:props:value:docsConfig:banner\"},\"subdomain\":\"fastmcp\",\"children\":[[\"$\",\"$L35\",null,{\"theme\":\"almond\"}],[\"$\",\"script\",null,{\"id\":\"_mintlify-scroll-margin-script\",\"dangerouslySetInnerHTML\":{\"__html\":\"$36\"},\"suppressHydrationWarning\":true}],\"$L37\"]}]}]]]}]}]}]}]}]}]}]\n"])</script>
492<script>self.__next_f.push([1,"38:I[540345,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"ConsentProvider\"]\n"])</script>
492<script>self.__next_f.push([1,"39:I[529058,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"LocalStorageAndAnalyticsProviders\"]\n"])</script>
492<script>self.__next_f.push([1,"3a:I[958547,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"default\"]\n"])</script>
492<script>self.__next_f.push([1,"3b:I[604780,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"CaptchaProvider\"]\n"])</script>
492<script>self.__next_f.push([1,"3c:I[859465,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"AssistantUiProvider\"]\n"])</script>
492<script>self.__next_f.push([1,"3d:I[832740,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"AssistantTransportProviderSelector\"]\n"])</script>
492<script>self.__next_f.push([1,"3e:I[601054,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"SearchProvider\"]\n"])</script>
492<script>self.__next_f.push([1,"3f:I[28330,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"SkipToContent\"]\n"])</script>
492<script>self.__next_f.push([1,"40:I[382229,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"AssistantLayoutScript\"]\n"])</script>
492<script>self.__next_f.push([1,"41:I[87732,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"AssistantLayoutWrapper\"]\n"])</script>
492<script>self.__next_f.push([1,"42:I[118717,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/60a67dd9562ebe56.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"NotFoundHydrator\"]\n"])</script>
492<script>self.__next_f.push([1,"37:[\"$\",\"$L38\",null,{\"privacy\":\"$undefined\",\"children\":[\"$\",\"$L39\",null,{\"subdomain\":\"fastmcp\",\"isAtlas\":false,\"children\":[\"$\",\"$L3a\",null,{\"toggles\":[{\"name\":\"dashboard-editor-theseus\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"kill-isr\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"agent-mintlify-slack\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"editor-v7-file-tree\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"agent-integrations-settings\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"automations-pr-grouping\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"custom-prefix\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"analytics-v7\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"user-flows-analytics\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"no-publish-flow\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"llms-txt-v2\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"pause-universal-search-reconcile\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"snapshot-serving-live\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"stripTemperatureMiddleware\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"per-site-search-delta\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"support-platform-pylon-zendesk\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"editor-branches-v2-autocommit\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"editor-branches-v2\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"snapshot-serving\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"instant-rollback\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"granular-notifications-server\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"granular-notifications\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"editor-private-page-search\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"automations-fable\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"fixed-ai-action-pricing\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"automation-resolve-merge-conflict\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"scoped-publishing\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"mintql\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"page-level-analytics\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"teamspace\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"assistant-v5\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"byok-sep-25\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false}],\"children\":[\"$\",\"$L3b\",null,{\"enabled\":true,\"children\":[\"$\",\"$L3c\",\"fastmcp\",{\"children\":[\"$\",\"$L3d\",null,{\"children\":[\"$\",\"$L3e\",null,{\"subdomain\":\"fastmcp\",\"hasChatPermissions\":true,\"isLoggedInCli\":false,\"assistantConfig\":{},\"starterQuestions\":\"$undefined\",\"children\":[[\"$\",\"$L3f\",null,{}],[\"$\",\"$L40\",null,{\"hasChatPermissions\":true}],false,[\"$\",\"$L41\",null,{\"children\":[[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L11\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L42\",null,{\"source\":\"multitenant\"}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],\"$undefined\"]}]]}]}]}]}]}]}]}]\n"])</script>
492<script>self.__next_f.push([1,"1e:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Installation - FastMCP\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Install FastMCP and verify your setup\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"FastMCP\"}],[\"$\",\"meta\",\"3\",{\"name\":\"generator\",\"content\":\"Mintlify\"}],[\"$\",\"meta\",\"4\",{\"name\":\"msapplication-config\",\"content\":\"/mintlify-assets/_mintlify/favicons/fastmcp/1KQviU8vsE4vEF8n/_generated/favicon/browserconfig.xml\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"FastMCP\"}],[\"$\",\"meta\",\"6\",{\"name\":\"msapplication-TileColor\",\"content\":\"#2d00f7\"}],[\"$\",\"link\",\"7\",{\"rel\":\"canonical\",\"href\":\"https://gofastmcp.com/getting-started/installation\"}],[\"$\",\"link\",\"8\",{\"rel\":\"alternate\",\"type\":\"application/xml\",\"href\":\"/sitemap.xml\"}],[\"$\",\"link\",\"9\",{\"rel\":\"alternate\",\"type\":\"text/markdown\",\"href\":\"/getting-started/installation.md\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:title\",\"content\":\"Installation - FastMCP\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:description\",\"content\":\"Install FastMCP and verify your setup\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:url\",\"content\":\"https://gofastmcp.com/getting-started/installation\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:site_name\",\"content\":\"FastMCP\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image\",\"content\":\"https://fastmcp.mintlify.app/mintlify-assets/_next/image?url=%2F_mintlify%2Fapi%2Fog%3Fdivision%3DGet%2BStarted%26title%3DInstallation%26description%3DInstall%2BFastMCP%2Band%2Bverify%2Byour%2Bsetup%26theme%3D608adbda090d9f0671e595c4\u0026w=1200\u0026q=100\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:title\",\"content\":\"Installation - FastMCP\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:description\",\"content\":\"Install FastMCP and verify your setup\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:image\",\"content\":\"https://fastmcp.mintlify.app/mintlify-assets/_next/image?url=%2F_mintlify%2Fapi%2Fog%3Fdivision%3DGet%2BStarted%26title%3DInstallation%26description%3DInstall%2BFastMCP%2Band%2Bverify%2Byour%2Bsetup%26theme%3D608adbda090d9f0671e595c4\u0026w=1200\u0026q=100\"}],[\"$\",\"meta\",\"22\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"link\",\"24\",{\"rel\":\"icon\",\"href\":\"/mintlify-assets/_mintlify/favicons/fastmcp/1KQviU8vsE4vEF8n/_generated/favicon/android-chrome-192x192.png\",\"type\":\"image/png\",\"sizes\":\"192x192\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"link\",\"25\",{\"rel\":\"apple-touch-icon\",\"href\":\"/mintlify-assets/_mintlify/favicons/fastmcp/1KQviU8vsE4vEF8n/_generated/favicon/apple-touch-icon.png\",\"type\":\"image/png\",\"sizes\":\"180x180\",\"media\":\"$undefined\"}],[\"$\",\"link\",\"26\",{\"rel\":\"icon\",\"href\":\"/mintlify-assets/_mintlify/favicons/fastmcp/1KQviU8vsE4vEF8n/_generated/favicon/favicon-16x16.png\",\"type\":\"image/png\",\"sizes\":\"16x16\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"link\",\"27\",{\"rel\":\"icon\",\"href\":\"/mintlify-assets/_mintlify/favicons/fastmcp/1KQviU8vsE4vEF8n/_generated/favicon/favicon-32x32.png\",\"type\":\"image/png\",\"sizes\":\"32x32\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"link\",\"28\",{\"rel\":\"shortcut icon\",\"href\":\"/mintlify-assets/_mintlify/favicons/fastmcp/1KQviU8vsE4vEF8n/_generated/favicon/favicon.ico\",\"type\":\"image/x-icon\",\"sizes\":\"$undefined\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"link\",\"29\",{\"rel\":\"icon\",\"href\":\"/mintlify-assets/_mintlify/favicons/fastmcp/1KQviU8vsE4vEF8n/_generated/favicon-dark/android-chrome-192x192.png\",\"type\":\"image/png\",\"sizes\":\"192x192\",\"media\":\"(prefers-color-scheme: dark)\"}],[\"$\",\"link\",\"30\",{\"rel\":\"icon\",\"href\":\"/mintlify-assets/_mintlify/favicons/fastmcp/1KQviU8vsE4vEF8n/_generated/favicon-dark/favicon-16x16.png\",\"type\":\"image/png\",\"sizes\":\"16x16\",\"media\":\"(prefers-color-scheme: dark)\"}],[\"$\",\"link\",\"31\",{\"rel\":\"icon\",\"href\":\"/mintlify-assets/_mintlify/favicons/fastmcp/1KQviU8vsE4vEF8n/_generated/favicon-dark/favicon-32x32.png\",\"type\":\"image/png\",\"sizes\":\"32x32\",\"media\":\"(prefers-color-scheme: dark)\"}],\"$L43\",\"$L44\"],\"error\":null,\"digest\":\"$undefined\"}\n"])</script>
492<script>self.__next_f.push([1,"23:\"$1e:metadata\"\n"])</script>
492<script>self.__next_f.push([1,"45:I[27201,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"IconMark\"]\n43:[\"$\",\"link\",\"32\",{\"rel\":\"shortcut icon\",\"href\":\"/mintlify-assets/_mintlify/favicons/fastmcp/1KQviU8vsE4vEF8n/_generated/favicon-dark/favicon.ico\",\"type\":\"image/x-icon\",\"sizes\":\"$undefined\",\"media\":\"(prefers-color-scheme: dark)\"}]\n44:[\"$\",\"$L45\",\"33\",{}]\n"])</script>
492<script>self.__next_f.push([1,"46:I[597003,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/05947de8d1d1b0df.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/46839b330f00a800.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/68d6e5104243ae2b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/b0d72ff121ddceb8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/afd2b935774e1485.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/65712ea96ab292b5.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/67ac8b11c225e726.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"ScopedNavProvider\"]\n"])</script>
492<script>self.__next_f.push([1,"1a:[\"$\",\"$L46\",null,{\"scopedNav\":{\"global\":null,\"versions\":[{\"version\":\"v4.0.5\",\"dropdowns\":[{\"dropdown\":\"Documentation\",\"icon\":\"book\",\"groups\":[{\"group\":\"Get Started\",\"pages\":[{\"title\":\"FastMCP: The Framework for MCP\",\"sidebarTitle\":\"Welcome!\",\"description\":\"FastMCP is the standard framework for building Model Context Protocol (MCP) servers, clients, and interactive applications.\",\"icon\":\"hand-wave\",\"mode\":\"center\",\"href\":\"/getting-started/welcome\"},{\"title\":\"Installation\",\"description\":\"Install FastMCP and verify your setup\",\"icon\":\"arrow-down-to-line\",\"href\":\"/getting-started/installation\"},{\"title\":\"Quickstart\",\"icon\":\"rocket-launch\",\"description\":null,\"href\":\"/getting-started/quickstart\"},{\"title\":\"What's New in FastMCP 4\",\"sidebarTitle\":\"What's New\",\"description\":\"FastMCP 4 makes stateful MCP applications work on the sessionless protocol while one server serves every protocol era.\",\"icon\":\"sparkles\",\"href\":\"/getting-started/whats-new\"}]},{\"group\":\"Servers\",\"pages\":[{\"title\":\"The FastMCP Server\",\"sidebarTitle\":\"Overview\",\"description\":\"The core FastMCP server class for building MCP applications\",\"icon\":\"server\",\"href\":\"/servers/server\"},{\"group\":\"Core Components\",\"icon\":\"toolbox\",\"pages\":[{\"title\":\"Tools\",\"sidebarTitle\":\"Tools\",\"description\":\"Expose functions as executable capabilities for your MCP client.\",\"icon\":\"wrench\",\"href\":\"/servers/tools\"},{\"title\":\"Resources \u0026 Templates\",\"sidebarTitle\":\"Resources\",\"description\":\"Expose data sources and dynamic content generators to your MCP client.\",\"icon\":\"folder-open\",\"href\":\"/servers/resources\"},{\"title\":\"Prompts\",\"sidebarTitle\":\"Prompts\",\"description\":\"Create reusable, parameterized prompt templates for MCP clients.\",\"
492icon\":\"message-lines\",\"href\":\"/servers/prompts\"},{\"title\":\"MCP Context\",\"sidebarTitle\":\"Context\",\"description\":\"Access MCP capabilities like logging, progress, and resources within your MCP objects.\",\"icon\":\"rectangle-code\",\"href\":\"/servers/context\"}]},{\"group\":\"Working with Tools\",\"icon\":\"wand-magic-sparkles\",\"pages\":[{\"title\":\"Transforms Overview\",\"sidebarTitle\":\"Overview\",\"description\":\"Modify components as they flow through your server\",\"icon\":\"wand-magic-sparkles\",\"href\":\"/servers/transforms/transforms\"},{\"title\":\"Tool Transformation\",\"sidebarTitle\":\"Tool Transformation\",\"description\":\"Modify tool schemas - rename, reshape arguments, and customize behavior\",\"icon\":\"wrench\",\"href\":\"/servers/transforms/tool-transformation\"},{\"title\":\"Code Mode\",\"sidebarTitle\":\"Code Mode\",\"description\":\"Let LLMs write Python to orchestrate tools in a sandbox\",\"icon\":\"flask\",\"href\":\"/servers/transforms/code-mode\"},{\"title\":\"Tool Search\",\"sidebarTitle\":\"Tool Search\",\"description\":\"Replace large tool catalogs with on-demand search\",\"icon\":\"magnifying-glass\",\"href\":\"/servers/transforms/tool-search\"},{\"title\":\"Namespace Transform\",\"sidebarTitle\":\"Namespace\",\"description\":\"Prefix component names to prevent conflicts\",\"icon\":\"tag\",\"href\":\"/servers/transforms/namespace\"},{\"title\":\"Component Visibility\",\"sidebarTitle\":\"Visibility\",\"description\":\"Control which components are available to clients\",\"icon\":\"toggle-on\",\"href\":\"/servers/visibility\"},{\"title\":\"Resources as Tools\",\"sidebarTitle\":\"Resources as Tools\",\"description\":\"Expose resources to tool-only clients\",\"icon\":\"toolbox\",\"href\":\"/servers/transforms/resources-as-tools\"},{\"title\":\"Prompts as Tools\",\"sidebarTitle\":\"Prompts as Tools\",\"description\":\"Expose prompts to tool-only clients\",\"icon\":\"message-lines\",\"href\":\"/servers/transforms/prompts-as-tools\"},{\"title\":\"Tool Fingerprinting\",\"sidebarTitle\":\"Tool Fingerprinting\",\"description\":\"Build stable fingerprints for tool identity and schema change detection\",\"icon\":\"fingerprint\",\"href\":\"/servers/tool-fingerprinting\"}]},{\"group\":\"MCP Providers\",\"icon\":\"layer-group\",\"pages\":[{\"title\":\"Providers\",\"sidebarTitle\":\"Overview\",\"description\":\"How FastMCP sources tools, resources, and prompts\",\"icon\":\"layer-group\",\"href\":\"/servers/providers/overview\"},{\"title\":\"Local Provider\",\"sidebarTitle\":\"Local\",\"description\":\"The default provider for decorator-registered components\",\"icon\":\"house\",\"href\":\"/servers/providers/local\"},{\"title\":\"Filesystem Provider\",\"sidebarTitle\":\"Filesystem\",\"description\":\"Automatic component discovery from Python files\",\"icon\":\"folder-tree\",\"href\":\"/servers/providers/filesystem\"},{\"title\":\"MCP Proxy Provider\",\"sidebarTitle\":\"MCP Proxy\",\"description\":\"Source components from other MCP servers\",\"icon\":\"arrows-retweet\",\"href\":\"/servers/providers/proxy\"},{\"title\":\"Skills Provider\",\"sidebarTitle\":\"Skills\",\"description\":\"Expose agent skills as MCP resources\",\"icon\":\"wand-magic-sparkles\",\"href\":\"/servers/providers/skills\"},{\"title\":\"Composing Servers\",\"sidebarTitle\":\"Composition\",\"description\":\"Combine multiple servers into one\",\"icon\":\"puzzle-piece\",\"href\":\"/servers/composition\"},{\"title\":\"Custom Providers\",\"sidebarTitle\":\"Custom\",\"description\":\"Build providers that source components from any data source\",\"icon\":\"code\",\"href\":\"/servers/providers/custom\"}]},{\"group\":\"Interactivity\",\"icon\":\"comments\",\"pages\":[{\"title\":\"User Elicitation\",\"sidebarTitle\":\"Elicitation\",\"description\":\"Ask users for input while a tool is running, on both the handshake and modern protocols.\",\"icon\":\"message-question\",\"href\":\"/servers/elicitation\"},{\"title\":\"Sampling\",\"sidebarTitle\":\"Sampling\",\"description\":\"Generate text from a FastMCP server — by calling an LLM directly, or by asking the client to sample.\",\"icon\":\"robot\",\"href\":\"/servers/sampling\"},{\"title\":\"Argument Completion\",\"sidebarTitle\":\"Completions\",\"description\":\"Suggest values for prompt arguments and resource template parameters as the user types.\",\"icon\":\"list-check\",\"href\":\"/servers/completions\"},{\"title\":\"Progress Reporting\",\"sidebarTitle\":\"Progress\",\"description\":\"Update clients on the progress of long-running operations through the MCP context.\",\"icon\":\"chart-line\",\"href\":\"/servers/progress\"},{\"title\":\"Client Logging\",\"sidebarTitle\":\"Logging\",\"description\":\"Send log messages back to MCP clients through the context.\",\"icon\":\"receipt\",\"href\":\"/servers/logging\"},{\"title\":\"Pagination\",\"sidebarTitle\":\"Pagination\",\"description\":\"Control how servers return large lists of components to clients.\",\"
492icon\":\"page\",\"href\":\"/servers/pagination\"},{\"title\":\"Icons\",\"description\":\"Add visual icons to your servers, tools, resources, and prompts\",\"icon\":\"image\",\"href\":\"/servers/icons\"}]},{\"group\":\"Extensibility\",\"icon\":\"puzzle-piece\",\"pages\":[{\"title\":\"Middleware\",\"sidebarTitle\":\"Middleware\",\"description\":\"Add cross-cutting functionality to your MCP server with middleware that intercepts and modifies requests and responses.\",\"icon\":\"layer-group\",\"href\":\"/servers/middleware\"},{\"title\":\"Dependency Injection\",\"sidebarTitle\":\"Dependencies\",\"description\":\"Inject runtime values like HTTP requests, access tokens, and custom dependencies into your MCP components.\",\"icon\":\"syringe\",\"href\":\"/servers/dependency-injection\"},{\"title\":\"Lifespans\",\"sidebarTitle\":\"Lifespan\",\"description\":\"Server-level setup and teardown with composable lifespans\",\"icon\":\"heart-pulse\",\"href\":\"/servers/lifespan\"},{\"title\":\"Storage Backends\",\"sidebarTitle\":\"Storage Backends\",\"description\":\"Configure persistent and distributed storage for caching and OAuth state management\",\"icon\":\"database\",\"href\":\"/servers/storage-backends\"},{\"title\":\"Session State\",\"sidebarTitle\":\"Sessions\",\"description\":\"Persist state across requests on stateless connections.\",\"icon\":\"id-badge\",\"href\":\"/servers/sessions\"},{\"title\":\"Server Extensions\",\"sidebarTitle\":\"Extensions\",\"description\":\"Add negotiated protocol features to a server without forking the framework.\",\"icon\":\"plug\",\"href\":\"/servers/extensions\"},{\"title\":\"Background Tasks\",\"sidebarTitle\":\"Background Tasks\",\"description\":\"Run long-running tools asynchronously with progress tracking\",\"icon\":\"clock\",\"tag\":\"NEW\",\"href\":\"/servers/tasks\"},{\"title\":\"Versioning\",\"sidebarTitle\":\"Versioning\",\"description\":\"Serve multiple API versions from a single codebase\",\"icon\":\"code-branch\",\"href\":\"/servers/versioning\"}]},{\"group\":\"Auth\",\"icon\":\"shield-check\",\"pages\":[{\"group\":\"Authentication\",\"icon\":\"key\",\"pages\":[{\"title\":\"Authentication\",\"sidebarTitle\":\"Overview\",\"description\":\"Secure your FastMCP server with flexible authentication patterns, from simple API keys to full OAuth 2.1 integration with external identity providers.\",\"icon\":\"user-shield\",\"href\":\"/servers/auth/authentication\"},{\"title\":\"Token Verification\",\"sidebarTitle\":\"Token Verification\",\"description\":\"Protect your server by validating bearer tokens issued by external systems.\",\"icon\":\"key\",\"href\":\"/servers/auth/token-verification\"},{\"title\":\"Remote OAuth\",\"sidebarTitle\":\"Remote OAuth\",\"description\":\"Integrate your FastMCP server with external identity providers like Descope, WorkOS, Auth0, and corporate SSO systems.\",\"icon\":\"camera-cctv\",\"href\":\"/servers/auth/remote-oauth\"},{\"title\":\"OAuth Proxy\",\"sidebarTitle\":\"OAuth Proxy\",\"description\":\"Bridge traditional OAuth providers to work seamlessly with MCP's authentication flow.\",\"icon\":\"share\",\"href\":\"/servers/auth/oauth-proxy\"},{\"title\":\"OIDC Proxy\",\"sidebarTitle\":\"OIDC Proxy\",\"description\":\"Bridge OIDC providers to work seamlessly with MCP's authentication flow.\",\"icon\":\"share\",\"href\":\"/servers/auth/oidc-proxy\"},{\"title\":\"Full OAuth Server\",\"sidebarTitle\":\"Full OAuth Server\",\"description\":\"Build a self-contained authentication system where your FastMCP server manages users, issues tokens, and validates them.\",\"icon\":\"users-between-lines\",\"href\":\"/servers/auth/full-oauth-server\"},{\"title\":\"Multiple Auth Sources\",\"sidebarTitle\":\"Multiple Auth Sources\",\"description\":\"Accept tokens from multiple authentication sources with a single server.\",\"icon\":\"layer-group\",\"href\":\"/servers/auth/multi-auth\"}]},{\"title\":\"Authorization\",\"sidebarTitle\":\"Authorization\",\"description\":\"Control access to components using callable-based authorization checks that filter visibility and enforce permissions.\",\"icon\":\"shield-halved\",\"href\":\"/servers/authorization\"}]},{\"group\":\"Deployment\",\"icon\":\"rocket\",\"pages\":[{\"title\":\"Running Your Server\",\"sidebarTitle\":\"Running Your Server\",\"description\":\"Learn how to run your FastMCP server locally for development and testing\",\"
492icon\":\"circle-play\",\"href\":\"/deployment/running-server\"},{\"title\":\"HTTP Deployment\",\"sidebarTitle\":\"HTTP Deployment\",\"description\":\"Deploy your FastMCP server over HTTP for remote access\",\"icon\":\"server\",\"href\":\"/deployment/http\"},{\"title\":\"Sandboxed Agents\",\"sidebarTitle\":\"Sandboxed Agents\",\"description\":\"Expose MCP tools to isolated agents without giving the sandbox long-lived credentials.\",\"icon\":\"box-open\",\"href\":\"/deployment/sandboxed-agents\"},{\"title\":\"Prefect Horizon\",\"sidebarTitle\":\"Prefect Horizon\",\"description\":\"The MCP platform from the FastMCP team\",\"icon\":\"cloud\",\"href\":\"/deployment/prefect-horizon\"},{\"title\":\"Project Configuration\",\"sidebarTitle\":\"Project Configuration\",\"description\":\"Use fastmcp.json for portable, declarative project configuration\",\"icon\":\"file-code\",\"href\":\"/deployment/server-configuration\"},{\"title\":\"Testing your FastMCP Server\",\"sidebarTitle\":\"Testing\",\"description\":\"How to test your FastMCP server.\",\"icon\":\"vial\",\"href\":\"/servers/testing\"},{\"title\":\"OpenTelemetry\",\"sidebarTitle\":\"Telemetry\",\"description\":\"Native OpenTelemetry instrumentation for distributed tracing.\",\"icon\":\"chart-line\",\"tag\":\"NEW\",\"href\":\"/servers/telemetry\"}]}]},{\"group\":\"Apps\",\"pages\":[{\"title\":\"Apps\",\"sidebarTitle\":\"Overview\",\"description\":\"Give your tools interactive UIs rendered directly in the conversation.\",\"icon\":\"grid-2\",\"mode\":\"center\",\"href\":\"/apps/overview\"},{\"title\":\"Quickstart\",\"sidebarTitle\":\"Quickstart\",\"description\":\"Build your first FastMCP app in under a minute.\",\"icon\":\"rocket\",\"href\":\"/apps/quickstart\"},{\"title\":\"FastMCPApp\",\"sidebarTitle\":\"FastMCPApp\",\"description\":\"Wire an interactive UI to backend tools with managed visibility and composition safety.\",\"icon\":\"puzzle-piece\",\"href\":\"/apps/fastmcp-app\"},{\"title\":\"Interactive Tools\",\"sidebarTitle\":\"Interactive Tools\",\"description\":\"Turn your tools into interactive UIs with charts, tables, and dashboards.\",\"icon\":\"palette\",\"href\":\"/apps/prefab\"},{\"title\":\"Generative UI\",\"sidebarTitle\":\"Generative UI\",\"description\":\"Let the LLM build custom Prefab UIs on the fly.\",\"icon\":\"wand-magic-sparkles\",\"href\":\"/apps/generative\"},{\"title\":\"Custom HTML Apps\",\"sidebarTitle\":\"Custom HTML\",\"description\":\"Build apps with your own HTML, CSS, and JavaScript using the MCP Apps extension directly.\",\"
492icon\":\"code\",\"href\":\"/apps/low-level\"},{\"group\":\"Reference\",\"icon\":\"book\",\"pages\":[{\"group\":\"Prefab Providers\",\"icon\":\"cube\",\"pages\":[{\"title\":\"Approval\",\"sidebarTitle\":\"Approval\",\"description\":\"Human-in-the-loop approval gates for agent actions\",\"icon\":\"shield-check\",\"href\":\"/apps/providers/approval\"},{\"title\":\"Choice\",\"sidebarTitle\":\"Choice\",\"description\":\"Present clickable options instead of free-text responses\",\"icon\":\"list-check\",\"href\":\"/apps/providers/choice\"},{\"title\":\"File Upload\",\"sidebarTitle\":\"File Upload\",\"description\":\"Drag-and-drop file upload for any MCP server\",\"icon\":\"upload\",\"href\":\"/apps/providers/file-upload\"},{\"title\":\"Form Input\",\"sidebarTitle\":\"Form Input\",\"description\":\"Collect structured data from users via Pydantic models\",\"icon\":\"rectangle-list\",\"href\":\"/apps/providers/form\"}]},{\"title\":\"Development\",\"sidebarTitle\":\"Development\",\"description\":\"Preview and test your app tools locally without a full MCP host.\",\"icon\":\"flask\",\"href\":\"/apps/development\"},{\"title\":\"Examples\",\"sidebarTitle\":\"Examples\",\"description\":\"Example apps you can run right now.\",\"icon\":\"images\",\"href\":\"/apps/examples\"},{\"title\":\"Architecture\",\"sidebarTitle\":\"Architecture\",\"description\":\"How FastMCP apps work under the hood — from Python to pixels.\",\"icon\":\"sitemap\",\"href\":\"/apps/architecture\"}]}]},{\"group\":\"Clients\",\"pages\":[{\"title\":\"The FastMCP Client\",\"sidebarTitle\":\"Overview\",\"description\":\"Programmatic client for interacting with MCP servers through a well-typed, Pythonic interface.\",\"icon\":\"user-robot\",\"href\":\"/clients/client\"},{\"title\":\"Client-Only Package\",\"description\":\"Use FastMCP's client without installing the full server framework.\",\"icon\":\"box\",\"href\":\"/clients/client-only-package\"},{\"title\":\"Client Transports\",\"sidebarTitle\":\"Transports\",\"description\":\"Configure how clients connect to and communicate with MCP servers.\",\"icon\":\"link\",\"href\":\"/clients/transports\"},{\"title\":\"Client Groups\",\"sidebarTitle\":\"Client Groups\",\"icon\":\"layer-group\",\"tag\":\"NEW\",\"description\":null,\"href\":\"/clients/client-groups\"},{\"title\":\"fastmcp-remote\",\"description\":\"Bridge remote MCP servers into stdio-only MCP hosts with uvx fastmcp-remote.\",\"icon\":\"bridge\",\"href\":\"/clients/fastmcp-remote\"},{\"group\":\"Operations\",\"icon\":\"toolbox\",\"tag\":\"UPDATED\",\"pages\":[{\"title\":\"Calling Tools\",\"sidebarTitle\":\"Tools\",\"description\":\"Execute server-side tools and handle structured results.\",\"icon\":\"wrench\",\"href\":\"/clients/tools\"},{\"title\":\"Reading Resources\",\"sidebarTitle\":\"Resources\",\"description\":\"Access static and templated data sources from MCP servers.\",\"icon\":\"folder-open\",\"href\":\"/clients/resources\"},{\"title\":\"Getting Prompts\",\"sidebarTitle\":\"Prompts\",\"description\":\"Retrieve rendered message templates with automatic argument serialization.\",\"icon\":\"message-lines\",\"href\":\"/clients/prompts\"},{\"title\":\"LLM Sampling\",\"sidebarTitle\":\"Sampling\",\"description\":\"Answer a server's request for an LLM completion.\",\"icon\":\"robot\",\"href\":\"/clients/sampling\"},{\"title\":\"User Elicitation\",\"sidebarTitle\":\"Elicitation\",\"description\":\"Handle server requests for structured user input.\",\"icon\":\"message-question\",\"href\":\"/clients/elicitation\"},{\"title\":\"Background Tasks\",\"sidebarTitle\":\"Tasks\",\"description\":\"Call long-running tools without blocking, and answer questions they ask mid-run.\",\"icon\":\"clock\",\"tag\":\"NEW\",\"href\":\"/clients/tasks\"},{\"title\":\"Progress Monitoring\",\"sidebarTitle\":\"Progress\",\"description\":\"Handle progress notifications from long-running server operations.\",\"icon\":\"bars-progress\",\"href\":\"/clients/progress\"},{\"title\":\"Server Logging\",\"sidebarTitle\":\"Logging\",\"description\":\"Receive and handle log messages from MCP servers.\",\"icon\":\"receipt\",\"href\":\"/clients/logging\"},{\"title\":\"Client Roots\",\"sidebarTitle\":\"Roots\",\"description\":\"Tell servers which local paths your client can reach.\",\"icon\":\"folder-tree\",\"href\":\"/clients/roots\"},{\"title\":\"Notifications\",\"sidebarTitle\":\"Notifications\",\"description\":\"Handle server-sent notifications for list changes and other events.\",\"
492icon\":\"envelope\",\"href\":\"/clients/notifications\"}]},{\"group\":\"Authentication\",\"icon\":\"key\",\"tag\":\"UPDATED\",\"pages\":[{\"title\":\"OAuth Authentication\",\"sidebarTitle\":\"OAuth\",\"description\":\"Authenticate your FastMCP client via OAuth 2.1.\",\"icon\":\"window\",\"href\":\"/clients/auth/oauth\"},{\"title\":\"Machine-to-Machine Authentication\",\"sidebarTitle\":\"Client Credentials\",\"description\":\"Authenticate your FastMCP client to a protected server without a browser.\",\"icon\":\"robot\",\"href\":\"/clients/auth/client-credentials\"},{\"title\":\"CIMD Authentication\",\"sidebarTitle\":\"CIMD\",\"description\":\"Use Client ID Metadata Documents for verifiable, domain-based client identity.\",\"icon\":\"id-badge\",\"href\":\"/clients/auth/cimd\"},{\"title\":\"Bearer Token Authentication\",\"sidebarTitle\":\"Bearer Auth\",\"description\":\"Authenticate your FastMCP client with a Bearer token.\",\"icon\":\"key\",\"href\":\"/clients/auth/bearer\"}]}]},{\"group\":\"Integrations\",\"pages\":[{\"group\":\"Auth\",\"icon\":\"key\",\"pages\":[{\"title\":\"Auth0 OAuth 🤝 FastMCP\",\"sidebarTitle\":\"Auth0\",\"description\":\"Secure your FastMCP server with Auth0 OAuth\",\"icon\":\"shield-check\",\"href\":\"/integrations/auth0\"},{\"title\":\"AuthKit 🤝 FastMCP\",\"sidebarTitle\":\"AuthKit\",\"description\":\"Secure your FastMCP server with AuthKit by WorkOS\",\"icon\":\"shield-check\",\"href\":\"/integrations/authkit\"},{\"title\":\"AWS Cognito OAuth 🤝 FastMCP\",\"sidebarTitle\":\"AWS Cognito\",\"description\":\"Secure your FastMCP server with AWS Cognito user pools\",\"icon\":\"aws\",\"href\":\"/integrations/aws-cognito\"},{\"title\":\"Azure (Microsoft Entra ID) OAuth 🤝 FastMCP\",\"sidebarTitle\":\"Azure (Entra ID)\",\"description\":\"Secure your FastMCP server with Azure/Microsoft Entra OAuth\",\"icon\":\"microsoft\",\"href\":\"/integrations/azure\"},{\"title\":\"Descope 🤝 FastMCP\",\"sidebarTitle\":\"Descope\",\"description\":\"Secure your FastMCP server with Descope\",\"icon\":\"shield-check\",\"href\":\"/integrations/descope\"},{\"title\":\"Discord OAuth 🤝 FastMCP\",\"sidebarTitle\":\"Discord\",\"description\":\"Secure your FastMCP server with Discord OAuth\",\"icon\":\"discord\",\"href\":\"/integrations/discord\"},{\"title\":\"Eunomia Authorization 🤝 FastMCP\",\"sidebarTitle\":\"Eunomia Auth\",\"description\":\"Add policy-based authorization to your FastMCP servers with Eunomia\",\"icon\":\"shield-check\",\"href\":\"/integrations/eunomi
492a-authorization\"},{\"title\":\"GitHub OAuth 🤝 FastMCP\",\"sidebarTitle\":\"GitHub\",\"description\":\"Secure your FastMCP server with GitHub OAuth\",\"icon\":\"github\",\"href\":\"/integrations/github\"},{\"title\":\"Google OAuth 🤝 FastMCP\",\"sidebarTitle\":\"Google\",\"description\":\"Secure your FastMCP server with Google OAuth\",\"icon\":\"google\",\"href\":\"/integrations/google\"},{\"title\":\"Hugging Face OAuth 🤝 FastMCP\",\"sidebarTitle\":\"Hugging Face\",\"description\":\"Secure your FastMCP server with Hugging Face OAuth\",\"icon\":\"hugging-face\",\"iconType\":\"brands\",\"href\":\"/integrations/huggingface\"},{\"title\":\"Keycloak OAuth 🤝 FastMCP\",\"sidebarTitle\":\"Keycloak\",\"description\":\"Secure your FastMCP server with Keycloak OAuth\",\"icon\":\"shield-check\",\"href\":\"/integrations/keycloak\"},{\"title\":\"OCI IAM OAuth 🤝 FastMCP\",\"sidebarTitle\":\"Oracle\",\"description\":\"Secure your FastMCP server with OCI IAM OAuth\",\"icon\":\"shield-check\",\"href\":\"/integrations/oci\"},{\"title\":\"Permit.io Authorization 🤝 FastMCP\",\"sidebarTitle\":\"Permit.io\",\"description\":\"Add fine-grained authorization to your FastMCP servers with Permit.io\",\"icon\":\"shield-check\",\"href\":\"/integrations/permit\"},{\"title\":\"PropelAuth 🤝 FastMCP\",\"sidebarTitle\":\"PropelAuth\",\"description\":\"Secure your FastMCP server with PropelAuth\",\"icon\":\"shield-check\",\"href\":\"/integrations/propelauth\"},{\"title\":\"Scalekit 🤝 FastMCP\",\"sidebarTitle\":\"Scalekit\",\"description\":\"Secure your FastMCP server with Scalekit\",\"icon\":\"shield-check\",\"href\":\"/integrations/scalekit\"},{\"title\":\"Supabase 🤝 FastMCP\",\"sidebarTitle\":\"Supabase\",\"description\":\"Secure your FastMCP server with Supabase Auth\",\"icon\":\"shield-check\",\"href\":\"/integrations/supabase\"},{\"title\":\"WorkOS 🤝 FastMCP\",\"sidebarTitle\":\"WorkOS\",\"description\":\"Authenticate FastMCP servers with WorkOS Connect\",\"icon\":\"shield-check\",\"href\":\"/integrations/workos\"}]},{\"group\":\"Web Frameworks\",\"icon\":\"code\",\"pages\":[{\"title\":\"FastAPI 🤝 FastMCP\",\"sidebarTitle\":\"FastAPI\",\"description\":\"Integrate FastMCP with FastAPI applications\",\"icon\":\"bolt\",\"href\":\"/integrations/fastapi\"},{\"title\":\"OpenAPI 🤝 FastMCP\",\"sidebarTitle\":\"OpenAPI\",\"description\":\"Generate MCP servers from any OpenAPI specification\",\"icon\":\"list-tree\",\"href\":\"/integrations/openapi\"}]},{\"group\":\"AI Assistants\",\"icon\":\"robot\",\"pages\":[{\"title\":\"ChatGPT 🤝 FastMCP\",\"sidebarTitle\":\"ChatGPT\",\"description\":\"Connect FastMCP servers to ChatGPT in Chat and Deep Research modes\",\"icon\":\"message-smile\",\"href\":\"/integrations/chatgpt\"},{\"title\":\"Claude Code 🤝 FastMCP\",\"sidebarTitle\":\"Claude Code\",\"description\":\"Install and use FastMCP servers in Claude Code\",\"icon\":\"message-smile\",\"href\":\"/integrations/claude-code\"},{\"title\":\"Claude Desktop 🤝 FastMCP\",\"sidebarTitle\":\"Claude Desktop\",\"description\":\"Connect FastMCP servers to Claude Desktop\",\"icon\":\"message-smile\",\"href\":\"/integrations/claude-desktop\"},{\"title\":\"Cursor 🤝 FastMCP\",\"sidebarTitle\":\"Cursor\",\"description\":\"Install and use FastMCP servers in Cursor\",\"icon\":\"message-smile\",\"href\":\"/integrations/cursor\"},{\"title\":\"Gemini CLI 🤝 FastMCP\",\"sidebarTitle\":\"Gemini CLI\",\"description\":\"Install and use FastMCP servers in Gemini CLI\",\"icon\":\"message-smile\",\"href\":\"/integrations/gemini-cli\"},{\"title\":\"Goose 🤝 FastMCP\",\"sidebarTitle\":\"Goose\",\"description\":\"Install and use FastMCP servers in Goose\",\"icon\":\"message-smile\",\"href\":\"/integrations/goose\"}]},{\"group\":\"AI SDKs\",\"icon\":\"microchip\",\"pages\":[{\"title\":\"Anthropic API 🤝 FastMCP\",\"sidebarTitle\":\"Anthropic API\",\"description\":\"Connect FastMCP servers to the Anthropic API\",\"icon\":\"message-code\",\"href\":\"/integrations/anthropic\"},{\"title\":\"Gemini SDK 🤝 FastMCP\",\"sidebarTitle\":\"Gemini SDK\",\"description\":\"Connect FastMCP servers to the Google Gemini SDK\",\"icon\":\"message-code\",\"href\":\"/integrations/gemini\"},{\"title\":\"OpenAI API 🤝 FastMCP\",\"sidebarTitle\":\"OpenAI API\",\"description\":\"Connect FastMCP servers to the OpenAI API\",\"icon\":\"message-code\",\"href\":\"/integrations/openai\"},{\"title\":\"Pydantic AI 🤝 FastMCP\",\"sidebarTitle\":\"Pydantic AI\",\"description\":\"Connect FastMCP servers to Pydantic AI agents with MCPToolset\",\"icon\":\"message-code\",\"href\":\"/integrations/pydantic-ai\"}]},{\"title\":\"MCP JSON Configuration 🤝 FastMCP\",\"sidebarTitle\":\"MCP.json\",\"description\":\"Generate standard MCP configuration files for any compatible client\",\"icon\":\"brackets-curly\",\"href\":\"/integrations/mcp-json-configuration\"}]},{\"group\":\"More\",\"pages\":[{\"title\":\"Settings\",\"description\":\"Configure FastMCP behavior through environment variables or a .env file.\",\"icon\":\"gear\",\"href\":\"/more/settings\"},{\"group\":\"CLI\",\"icon\":\"terminal\",\"pages\":[{\"title\":\"CLI\",\"sidebarTitle\":\"Overview\",\"description\":\"The fastmcp command-line interface\",\"icon\":\"terminal\",\"href\":\"/cli/overview\"},{\"title\":\"Running Servers\",\"sidebarTitle\":\"Running\",\"description\":\"Start, develop, and configure servers from the command line\",\"icon\":\"play\",\"href\":\"/cli/running\"},{\"title\":\"Install MCP Servers\",\"sidebarTitle\":\"Install MCPs\",\"description\":\"Install MCP servers into Claude, Cursor, Gemini, and other clients\",\"icon\":\"download\",\"href\":\"/cli/install-mcp\"},{\"title\":\"Inspecting Servers\",\"sidebarTitle\":\"Inspecting\",\"description\":\"View a server's components and metadata\",\"icon\":\"magnifying-glass\",\"href\":\"/cli/inspecting\"},{\"title\":\"Client Commands\",\"sidebarTitle\":\"Client\",\"description\":\"List tools, call them, and discover configured servers\",\"icon\":\"satellite-dish\",\"href\":\"/cli/client\"},{\"title\":\"Generate CLI\",\"sidebarTitle\":\"Generate CLI\",\"description\":\"Scaffold a standalone typed CLI from any MCP server\",\"icon\":\"wand-magic-sparkles\",\"href\":\"/cli/generate-cli\"},{\"title\":\"Auth Utilities\",\"sidebarTitle\":\"Auth\",\"description\":\"Create and validate CIMD documents for OAuth\",\"icon\":\"key\",\"href\":\"/cli/auth\"}]},{\"group\":\"Upgrading\",\"icon\":\"up\",\"pages\":[{\"title\":\"Upgrading from FastMCP 3\",\"sidebarTitle\":\"From FastMCP 3\",\"description\":\"What changes when you upgrade to FastMCP 4, which builds on the MCP Python SDK v2\",\"icon\":\"up\",\"href\":\"/getting-started/upgrading/from-fastmcp-3\"},{\"title\":\"Upgrading from FastMCP 2\",\"sidebarTitle\":\"From FastMCP 2\",\"description\":\"What changed in FastMCP 3 for servers written against FastMCP 2\",\"icon\":\"up\",\"href\":\"/getting-started/upgrading/from-fastmcp-2\"},{\"title\":\"Upgrading from MCP SDK v1\",\"sidebarTitle\":\"From MCP SDK v1\",\"description\":\"Upgrade from FastMCP 1.0, bundled in v1 of the MCP Python SDK, to the standalone FastMCP framework\",\"icon\":\"up\",\"href\":\"/getting-started/upgrading/from-mcp-sdk-v1\"},{\"title\":\"Upgrading from MCP SDK v2\",\"sidebarTitle\":\"From MCP SDK v2\",\"description\":\"Move a server built on the MCP Python SDK v2's MCPServer class to FastMCP\",\"icon\":\"up\",\"href\":\"/getting-started/upgrading/from-mcp-sdk-v2\"},{\"title\":\"Upgrading from the Low-Level SDK v1\",\"sidebarTitle\":\"From Low-Level SDK v1\",\"description\":\"Upgrade your MCP server from v1 of the low-level Python SDK's Server class to FastMCP\",\"icon\":\"up\",\"href\":\"/getting-started/upgrading/from-low-level-sdk-v1\"},{\"title\":\"Upgrading from the Low-Level SDK v2\",\"sidebarTitle\":\"From Low-Level SDK v2\",\"description\":\"Move a server built on v2 of the low-level Python SDK's Server class to FastMCP\",\"icon\":\"up\",\"href\":\"/getting-started/upgrading/from-low-level-sdk-v2\"}]},{\"group\":\"Development\",\"icon\":\"code\",\"pages\":[{\"title\":\"Contributing\",\"description\":\"Development workflow for FastMCP contributors\",\"icon\":\"code-pull-request\",\"href\":\"/development/contributing\"},{\"title\":\"Tests\",\"description\":\"Testing patterns and requirements for FastMCP\",\"icon\":\"vial\",\"href\":\"/development/tests\"},{\"title\":\"Releases\",\"description\":\"FastMCP versioning and release process\",\"icon\":\"truck-fast\",\"href\":\"/development/releases\"},{\"title\":\"Contrib Modules\",\"description\":\"Community-contributed modules extending FastMCP\",\"icon\":\"cubes\",\"href\":\"/patterns/contrib\"}]},{\"group\":\"What's New\",\"icon\":\"sparkles\",\"pages\":[{\"title\":\"FastMCP Updates\",\"sidebarTitle\":\"Updates\",\"icon\":\"sparkles\",\"tag\":\"NEW\",\"description\":null,\"href\":\"/updates\"}
492,{\"title\":\"Changelog\",\"icon\":\"list-check\",\"rss\":true,\"tag\":\"NEW\",\"description\":null,\"href\":\"/changelog\"}]},{\"title\":\"FAQ\",\"description\":\"Direct answers to the questions that come up most often about FastMCP 4, the protocol eras, and installation\",\"icon\":\"circle-question\",\"href\":\"/more/faq\"}]}]},{\"dropdown\":\"SDK Reference\",\"icon\":\"code\",\"anchors\":[{\"anchor\":\"Python SDK\",\"icon\":\"python\",\"pages\":[{\"title\":\"decorators\",\"sidebarTitle\":\"decorators\",\"description\":null,\"href\":\"/python-sdk/fastmcp-decorators\"},{\"title\":\"dependencies\",\"sidebarTitle\":\"dependencies\",\"description\":null,\"href\":\"/python-sdk/fastmcp-dependencies\"},{\"title\":\"exceptions\",\"sidebarTitle\":\"exceptions\",\"description\":null,\"href\":\"/python-sdk/fastmcp-exceptions\"},{\"title\":\"mcp_config\",\"sidebarTitle\":\"mcp_config\",\"description\":null,\"href\":\"/python-sdk/fastmcp-mcp_config\"},{\"title\":\"settings\",\"sidebarTitle\":\"settings\",\"description\":null,\"href\":\"/python-sdk/fastmcp-settings\"},{\"title\":\"telemetry\",\"sidebarTitle\":\"telemetry\",\"description\":null,\"href\":\"/python-sdk/fastmcp-telemetry\"},{\"title\":\"types\",\"sidebarTitle\":\"types\",\"description\":null,\"href\":\"/python-sdk/fastmcp-types\"},{\"group\":\"fastmcp.apps\",\"pages\":[{\"title\":\"__init__\",\"sidebarTitle\":\"__init__\",\"description\":null,\"href\":\"/python-sdk/fastmcp-apps-__init__\"},{\"title\":\"app\",\"sidebarTitle\":\"app\",\"description\":null,\"href\":\"/python-sdk/fastmcp-apps-app\"},{\"title\":\"approval\",\"sidebarTitle\":\"approval\",\"description\":null,\"href\":\"/python-sdk/fastmcp-apps-approval\"},{\"title\":\"choice\",\"sidebarTitle\":\"choice\",\"description\":null,\"href\":\"/python-sdk/fastmcp-apps-choice\"},{\"title\":\"config\",\"sidebarTitle\":\"config\",\"description\":null,\"href\":\"/python-sdk/fastmcp-apps-config\"},{\"title\":\"file_upload\",\"sidebarTitle\":\"file_upload\",\"description\":null,\"href\":\"/python-sdk/fastmcp-apps-file_upload\"},{\"title\":\"form\",\"sidebarTitle\":\"form\",\"description\":null,\"href\":\"/python-sdk/fastmcp-apps-form\"},{\"title\":\"generative\",\"sidebarTitle\":\"generative\",\"description\":null,\"href\":\"/python-sdk/fastmcp-apps-generative\"}]},{\"group\":\"fastmcp.cli\",\"pages\":[{\"title\":\"__init__\",\"sidebarTitle\":\"__init__\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-__init__\"},{\"title\":\"apps_dev\",\"sidebarTitle\":\"apps_dev\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-apps_dev\"},{\"title\":\"auth\",\"sidebarTitle\":\"auth\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-auth\"},{\"title\":\"cimd\",\"sidebarTitle\":\"cimd\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-cimd\"},{\"title\":\"cli\",\"sidebarTitle\":\"cli\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-cli\"},{\"title\":\"client\",\"sidebarTitle\":\"client\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-client\"},{\"group\":\"deploy\",\"pages\":[{\"title\":\"__init__\",\"sidebarTitle\":\"__init__\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-deploy-__init__\"},{\"title\":\"authentication\",\"sidebarTitle\":\"authentication\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-deploy-authentication\"},{\"title\":\"command\",\"sidebarTitle\":\"command\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-deploy-command\"},{\"title\":\"configuration\",\"sidebarTitle\":\"configuration\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-deploy-configuration\"},{\"title\":\"credentials\",\"sidebarTitle\":\"credentials\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-deploy-credentials\"},{\"title\":\"horizon_client\",\"sidebarTitle\":\"horizon_client\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-deploy-horizon_client\"},{\"title\":\"output\",\"sidebarTitle\":\"output\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-deploy-output\"},{\"title\":\"state\",\"sidebarTitle\":\"state\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-deploy-state\"}]},{\"title\":\"discovery\",\"sidebarTitle\":\"discovery\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-discovery\"},{\"title\":\"generate\",\"sidebarTitle\":\"generate\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-generate\"},{\"group\":\"install\",\"pages\":[{\"title\":\"__init__\",\"sidebarTitle\":\"__init__\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-install-__init__\"},{\"title\":\"claude_code\",\"sidebarTitle\":\"claude_code\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-install-claude_code\"},{\"title\":\"claude_desktop\",\"sidebarTitle\":\"claude_desktop\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-install-claude_desktop\"},{\"title\":\"cursor\",\"sidebarTitle\":\"cursor\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-install-cursor\"},{\"title\":\"gemini_cli\",\"sidebarTitle\":\"gemini_cli\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-install-gemini_cli\"},{\"title\":\"goose\",\"sidebarTitle\":\"goose\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-install-goose\"},{\"title\":\"mcp_json\",\"sidebarTitle\":\"mcp_json\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-install-mcp_json\"},{\"title\":\"shared\",\"sidebarTitle\":\"shared\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-install-shared\"},{\"title\":\"stdio\",\"sidebarTitle\":\"stdio\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-install-stdio\"}]},{\"title\":\"run\",\"sidebarTitle\":\"run\",\"description\":null,\"href\":\"/python-sdk/fastmcp-cli-run\"}]},{\"group\":\"fastmcp.client\",\"pages\":[{\"group\":\"auth\",\"pages\":[{\"title\":\"bearer\",\"sidebarTitle\":\"bearer\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-auth-bearer\"},{\"title\":\"client_credentials\",\"sidebarTitle\":\"client_credentials\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-auth-client_credentials\"},{\"title\":\"oauth\",\"sidebarTitle\":\"oauth\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-auth-oauth\"}]},{\"title\":\"caching\",\"sidebarTitle\":\"caching\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-caching\"},{\"title\":\"client\",\"sidebarTitle\":\"client\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-client\"},{\"title\":\"dependencies\",\"sidebarTitle\":\"dependencies\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-dependencies\"},{\"title\":\"elicitation\",\"sidebarTitle\":\"elicitation\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-elicitation\"},{\"title\":\"extension_hooks\",\"sidebarTitle\":\"extension_hooks\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-extension_hooks\"},{\"title\":\"group\",\"sidebarTitle\":\"group\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-group\"},{\"title\":\"logging\",\"sidebarTitle\":\"logging\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-logging\"},{\"title\":\"messages\",\"sidebarTitle\":\"messages\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-messages\"},{\"group\":\"mixins\",\"pages\":[{\"title\":\"__init__\",\"sidebarTitle\":\"__init__\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-mixins-__init__\"},{\"title\":\"prompts\",\"sidebarTitle\":\"prompts\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-mixins-prompts\"},{\"title\":\"resources\",\"sidebarTitle\":\"resources\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-mixins-resources\"},{\"title\":\"tools\",\"sidebarTitle\":\"tools\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-mixins-tools\"}]},{\"title\":\"oauth_callback\",\"sidebarTitle\":\"oauth_callback\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-oauth_callback\"},{\"title\":\"progress\",\"sidebarTitle\":\"progress\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-progress\"},{\"title\":\"roots\",\"sidebarTitle\":\"roots\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-roots\"},{\"group\":\"sampling\",\"pages\":[{\"title\":\"__init__\",\"sidebarTitle\":\"__init__\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-sampling-__init__\"},{\"group\":\"handlers\",\"pages\":[{\"title\":\"anthropic\",\"sidebarTitle\":\"anthropic\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-sampling-handlers-anthropic\"},{\"title\":\"google_genai\",\"sidebarTitle\":\"google_genai\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-sampling-handlers-google_genai\"},{\"title\":\"openai\",\"sidebarTitle\":\"openai\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-sampling-handlers-openai\"}]}]},{\"title\":\"telemetry\",\"sidebarTitle\":\"telemetry\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-telemetry\"},{\"group\":\"transports\",\"pages\":[{\"title\":\"base\",\"sidebarTitle\":\"base\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-transports-base\"},{\"title\":\"config\",\"sidebarTitle\":\"config\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-transports-config\"},{\"title\":\"http\",\"sidebarTitle\":\"http\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-transports-http\"},{\"title\":\"inference\",\"sidebarTitle\":\"inference\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-transports-inference\"},{\"title\":\"memory\",\"sidebarTitle\":\"memory\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-transports-memory\"},{\"title\":\"sse\",\"sidebarTitle\":\"sse\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-transports-sse\"},{\"title\":\"stdio\",\"sidebarTitle\":\"stdio\",\"description\":null,\"href\":\"/python-sdk/fastmcp-client-transports-stdio\"}]}]},{\"group\":\"fastmcp.experimental\",\"pages\":[{\"group\":\"transforms\",\"pages\":[{\"title\":\"code_mode\",\"sidebarTitle\":\"code_mode\",\"description\":null,\"href\":\"/python-sdk/fastmcp-experimental-transforms-code_mode\"},{\"title\":\"jev_search\",\"sidebarTitle\":\"jev_search\",\"description\":null,\"href\":\"/python-sdk/fastmcp-experimental-transforms-jev_search\"}]}]},{\"group\":\"fastmcp.prompts\",\"pages\":[{\"title\":\"base\",\"sidebarTitle\":\"base\",\"description\":null,\"href\":\"/python-sdk/fastmcp-prompts-base\"},{\"title\":\"function_prompt\",\"sidebarTitle\":\"function_prompt\",\"description\":null,\"href\":\"/python-sdk/fastmcp-prompts-function_prompt\"}]},{\"group\":\"fastmcp.resources\",\"pages\":[{\"title\":\"base\",\"sidebarTitle\":\"base\",\"description\":null,\"href\":\"/python-sdk/fastmcp-resources-base\"},{\"title\":\"function_resource\",\"sidebarTitle\":\"function_resource\",\"description\":null,\"href\":\"/python-sdk/fastmcp-resources-function_resource\"},{\"title\":\"security\",\"sidebarTitle\":\"security\",\"description\":null,\"href\":\"/python-sdk/fastmcp-resources-security\"},{\"title\":\"template\",\"sidebarTitle\":\"template\",\"description\":null,\"href\":\"/python-sdk/fastmcp-resources-template\"},{\"title\":\"types\",\"sidebarTitle\":\"types\",\"description\":null,\"href\":\"/python-sdk/fastmcp-resources-types\"}]},{\"group\":\"fastmcp.server\",\"pages\":[{\"group\":\"auth\",\"pages\":[{\"title\":\"auth\",\"sidebarTitle\":\"auth\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-auth\"},{\"title\":\"cimd\",\"sidebarTitle\":\"cimd\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-cimd\"},{\"group\":\"handlers\",\"pages\":[{\"title\":\"authorize\",\"sidebarTitle\":\"authorize\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-
492handlers-authorize\"}]},{\"title\":\"identity_assertion\",\"sidebarTitle\":\"identity_assertion\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-identity_assertion\"},{\"title\":\"jwt_issuer\",\"sidebarTitle\":\"jwt_issuer\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-jwt_issuer\"},{\"title\":\"middleware\",\"sidebarTitle\":\"middleware\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-middleware\"},{\"group\":\"oauth_proxy\",\"pages\":[{\"title\":\"__init__\",\"sidebarTitle\":\"__init__\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-oauth_proxy-__init__\"},{\"title\":\"consent\",\"sidebarTitle\":\"consent\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-oauth_proxy-consent\"},{\"title\":\"models\",\"sidebarTitle\":\"models\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-oauth_proxy-models\"},{\"title\":\"proxy\",\"sidebarTitle\":\"proxy\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-oauth_proxy-proxy\"},{\"title\":\"ui\",\"sidebarTitle\":\"ui\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-oauth_proxy-ui\"},{\"title\":\"upstream\",\"sidebarTitle\":\"upstream\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-oauth_proxy-upstream\"}]},{\"title\":\"oidc_proxy\",\"sidebarTitle\":\"oidc_proxy\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-oidc_proxy\"},{\"group\":\"providers\",\"pages\":[{\"title\":\"auth0\",\"sidebarTitle\":\"auth0\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-providers-auth0\"},{\"title\":\"aws\",\"sidebarTitle\":\"aws\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-providers-aws\"},{\"title\":\"azure\",\"sidebarTitle\":\"azure\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-providers-azure\"},{\"title\":\"clerk\",\"sidebarTitle\":\"clerk\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-providers-clerk\"},{\"title\":\"debug\",\"sidebarTitle\":\"debug\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-providers-debug\"},{\"title\":\"descope\",\"sidebarTitle\":\"descope\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-providers-descope\"},{\"title\":\"discord\",\"sidebarTitle\":\"discord\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-providers-discord\"},{\"title\":\"github\",\"sidebarTitle\":\"github\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-providers-github\"},{\"title\":\"google\",\"sidebarTitle\":\"google\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-providers-google\"},{\"title\":\"huggingface\",\"sidebarTitle\":\"huggingface\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-providers-huggingface\"},{\"title\":\"in_memory\",\"sidebarTitle\":\"in_memory\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-providers-in_memory\"},{\"title\":\"introspection\",\"sidebarTitle\":\"introspection\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-providers-introspection\"},{\"title\":\"jwt\",\"sidebarTitle\":\"jwt\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-providers-jwt\"},{\"title\":\"keycloak\",\"sidebarTitle\":\"keycloak\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-providers-keycloak\"},{\"title\":\"oci\",\"sidebarTitle\":\"oci\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-providers-oci\"},{\"title\":\"propelauth\",\"sidebarTitle\":\"propelauth\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-providers-propelauth\"},{\"title\":\"scalekit\",\"sidebarTitle\":\"scalekit\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-providers-scalekit\"},{\"title\":\"supabase\",\"sidebarTitle\":\"supabase\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-providers-supabase\"},{\"title\":\"workos\",\"sidebarTitle\":\"workos\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-providers-workos\"}]}
492,{\"title\":\"redirect_validation\",\"sidebarTitle\":\"redirect_validation\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-redirect_validation\"},{\"title\":\"ssrf\",\"sidebarTitle\":\"ssrf\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-auth-ssrf\"}]},{\"title\":\"caching\",\"sidebarTitle\":\"caching\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-caching\"},{\"title\":\"completions\",\"sidebarTitle\":\"completions\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-completions\"},{\"title\":\"context\",\"sidebarTitle\":\"context\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-context\"},{\"title\":\"dependencies\",\"sidebarTitle\":\"dependencies\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-dependencies\"},{\"title\":\"elicitation\",\"sidebarTitle\":\"elicitation\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-elicitation\"},{\"title\":\"event_store\",\"sidebarTitle\":\"event_store\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-event_store\"},{\"title\":\"extensions\",\"sidebarTitle\":\"extensions\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-extensions\"},{\"title\":\"http\",\"sidebarTitle\":\"http\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-http\"},{\"title\":\"lifespan\",\"sidebarTitle\":\"lifespan\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-lifespan\"},{\"title\":\"low_level\",\"sidebarTitle\":\"low_level\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-low_level\"},{\"group\":\"middleware\",\"pages\":[{\"title\":\"authorization\",\"sidebarTitle\":\"authorization\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-middleware-authorization\"},{\"title\":\"caching\",\"sidebarTitle\":\"caching\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-middleware-caching\"},{\"title\":\"dereference\",\"sidebarTitle\":\"dereference\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-middleware-dereference\"},{\"title\":\"error_handling\",\"sidebarTitle\":\"error_handling\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-middleware-error_handling\"},{\"title\":\"logging\",\"sidebarTitle\":\"logging\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-middleware-logging\"},{\"title\":\"middleware\",\"sidebarTitle\":\"middleware\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-middleware-middleware\"},{\"title\":\"ping\",\"sidebarTitle\":\"ping\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-middleware-ping\"},{\"title\":\"rate_limiting\",\"sidebarTitle\":\"rate_limiting\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-middleware-rate_limiting\"},{\"title\":\"response_limiting\",\"sidebarTitle\":\"response_limiting\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-middleware-response_limiting\"},{\"title\":\"timing\",\"sidebarTitle\":\"timing\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-middleware-timing\"},{\"title\":\"tool_injection\",\"sidebarTitle\":\"tool_injection\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-middleware-tool_injection\"}]},{\"group\":\"mixins\",\"pages\":[{\"title\":\"__init__\",\"sidebarTitle\":\"__init__\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-mixins-__init__\"},{\"title\":\"lifespan\",\"sidebarTitle\":\"lifespan\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-mixins-lifespan\"},{\"title\":\"mcp_operations\",\"sidebarTitle\":\"mcp_operations\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-mixins-mcp_operations\"},{\"title\":\"transport\",\"sidebarTitle\":\"transport\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-mixins-transport\"}]},{\"group\":\"providers\",\"pages\":[{\"title\":\"__init__\",\"sidebarTitle\":\"__init__\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-__init__\"},{\"title\":\"addressing\",\"sidebarTitle\":\"addressing\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-addressing\"},{\"title\":\"aggregate\",\"sidebarTitle\":\"aggregate\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-aggregate\"},{\"title\":\"base\",\"sidebarTitle\":\"base\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-base\"},{\"title\":\"fastmcp_provider\",\"sidebarTitle\":\"fastmcp_provider\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-fastmcp_provider\"}
492,{\"title\":\"filesystem\",\"sidebarTitle\":\"filesystem\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-filesystem\"},{\"title\":\"filesystem_discovery\",\"sidebarTitle\":\"filesystem_discovery\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-filesystem_discovery\"},{\"group\":\"local_provider\",\"pages\":[{\"title\":\"__init__\",\"sidebarTitle\":\"__init__\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-local_provider-__init__\"},{\"group\":\"decorators\",\"pages\":[{\"title\":\"__init__\",\"sidebarTitle\":\"__init__\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-local_provider-decorators-__init__\"},{\"title\":\"prompts\",\"sidebarTitle\":\"prompts\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-local_provider-decorators-prompts\"},{\"title\":\"resources\",\"sidebarTitle\":\"resources\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-local_provider-decorators-resources\"},{\"title\":\"tools\",\"sidebarTitle\":\"tools\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-local_provider-decorators-tools\"}]},{\"title\":\"local_provider\",\"sidebarTitle\":\"local_provider\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-local_provider-local_provider\"}]},{\"group\":\"openapi\",\"pages\":[{\"title\":\"__init__\",\"sidebarTitle\":\"__init__\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-openapi-__init__\"},{\"title\":\"components\",\"sidebarTitle\":\"components\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-openapi-components\"},{\"title\":\"provider\",\"sidebarTitle\":\"provider\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-openapi-provider\"},{\"title\":\"routing\",\"sidebarTitle\":\"routing\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-openapi-routing\"}]},{\"title\":\"prefab_payload\",\"sidebarTitle\":\"prefab_payload\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-prefab_payload\"},{\"title\":\"prefab_synthesis\",\"sidebarTitle\":\"prefab_synthesis\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-prefab_synthesis\"},{\"title\":\"proxy\",\"sidebarTitle\":\"proxy\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-proxy\"},{\"group\":\"skills\",\"pages\":[{\"title\":\"__init__\",\"sidebarTitle\":\"__init__\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-skills-__init__\"},{\"title\":\"claude_provider\",\"sidebarTitle\":\"claude_provider\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-skills-claude_provider\"},{\"title\":\"directory_provider\",\"sidebarTitle\":\"directory_provider\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-skills-directory_provider\"},{\"title\":\"skill_provider\",\"sidebarTitle\":\"skill_provider\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-skills-skill_provider\"},{\"title\":\"vendor_providers\",\"sidebarTitle\":\"vendor_providers\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-skills-vendor_providers\"}]},{\"title\":\"wrapped_provider\",\"sidebarTitle\":\"wrapped_provider\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-providers-wrapped_provider\"}]},{\"title\":\"server\",\"sidebarTitle\":\"server\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-server\"},{\"title\":\"session_scoped_event_store\",\"sidebarTitle\":\"session_scoped_event_store\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-session_scoped_event_store\"},{\"title\":\"sessions\",\"sidebarTitle\":\"sessions\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-sessions\"},{\"title\":\"telemetry\",\"sidebarTitle\":\"telemetry\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-telemetry\"},{\"group\":\"transforms\",\"pages\":[{\"title\":\"__init__\",\"sidebarTitle\":\"__init__\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-transforms-__init__\"},{\"title\":\"catalog\",\"sidebarTitle\":\"catalog\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-transforms-catalog\"},{\"title\":\"namespace\",\"sidebarTitle\":\"namespace\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-transforms-namespace\"},{\"title\":\"prompts_as_tools\",\"sidebarTitle\":\"prompts_as_tools\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-transforms-prompts_as_tools\"},{\"title\":\"resources_as_tools\",\"sidebarTitle\":\"resources_as_tools\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-transforms-resources_as_tools\"},{\"group\":\"search\",\"pages\":[{\"title\":\"__init__\",\"sidebarTitle\":\"__init__\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-transforms-search-__init__\"},{\"title\":\"base\",\"sidebarTitle\":\"base\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-transforms-search-base\"},{\"title\":\"bm25\",\"sidebarTitle\":\"bm25\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-transforms-search-bm25\"},{\"title\":\"regex\",\"sidebarTitle\":\"regex\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-transforms-search-regex\"}]},{\"title\":\"tool_transform\",\"sidebarTitle\":\"tool_transform\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-transforms-tool_transform\"},{\"title\":\"version_filter\",\"sidebarTitle\":\"version_filter\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-transforms-version_filter\"},{\"title\":\"visibility\",\"sidebarTitle\":\"visibility\",\"description\":null,\"href\":\"/python-sdk/fastmcp-server-transforms-visibility\"}]}]},{\"group\":\"fastmcp.tools\",\"pages\":[{\"title\":\"base\",\"sidebarTitle\":\"base\",\"description\":null,\"href\":\"/python-sdk/fastmcp-tools-base\"},{\"title\":\"function_parsing\",\"sidebarTitle\":\"function_parsing\",\"description\":null,\"href\":\"/python-sdk/fastmcp-tools-function_parsing\"},{\"title\":\"function_tool\",\"sidebarTitle\":\"function_tool\",\"description\":null,\"href\":\"/python-sdk/fastmcp-tools-function_tool\"},{\"title\":\"tool_transform\",\"sidebarTitle\":\"tool_transform\",\"description\":null,\"href\":\"/python-sdk/fastmcp-tools-tool_transform\"}]},{\"group\":\"fastmcp.utilities\",\"pages\":[{\"title\":\"__init__\",\"sidebarTitle\":\"__init__\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-__init__\"},{\"title\":\"asgi_transport\",\"sidebarTitle\":\"asgi_transport\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-asgi_transport\"},{\"title\":\"async_utils\",\"sidebarTitle\":\"async_utils\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-async_utils\"},{\"title\":\"auth\",\"sidebarTitle\":\"auth\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-auth\"},{\"title\":\"authorization\",\"sidebarTitle\":\"authorization\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-authorization\"},{\"title\":\"cli\",\"sidebarTitle\":\"cli\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-cli\"},{\"title\":\"components\",\"sidebarTitle\":\"components\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-components\"},{\"title\":\"docstring_parsing\",\"sidebarTitle\":\"docstring_parsing\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-docstring_parsing\"},{\"title\":\"exceptions\",\"sidebarTitle\":\"exceptions\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-exceptions\"},{\"title\":\"http\",\"sidebarTitle\":\"http\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-http\"},{\"title\":\"inspect\",\"sidebarTitle\":\"inspect\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-inspect\"},{\"title\":\"json_schema\",\"sidebarTitle\":\"json_schema\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-json_schema\"},{\"title\":\"json_schema_type\",\"sidebarTitle\":\"json_schema_type\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-json_schema_type\"},{\"title\":\"lifespan\",\"sidebarTitle\":\"lifespan\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-lifespan\"},{\"title\":\"logging\",\"sidebarTitle\":\"logging\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-logging\"},{\"group\":\"mcp_server_config\",\"pages\":[{\"title\":\"__init__\",\"sidebarTitle\":\"__init__\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-mcp_server_config-__init__\"},{\"group\":\"v1\",\"pages\":[{\"group\":\"environments\",\"pages\":[{\"title\":\"__init__\",\"sidebarTitle\":\"__init__\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-__init__\"},{\"title\":\"base\",\"sidebarTitle\":\"base\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-base\"},{\"title\":\"uv\",\"sidebarTitle\":\"uv\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-mcp_server_config-v1-environments-uv\"}]},{\"title\":\"mcp_server_config\",\"sidebarTitle\":\"mcp_server_config\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-mcp_server_config-v1-mcp_server_config\"},{\"group\":\"sources\",\"pages\":[{\"title\":\"base\",\"sidebarTitle\":\"base\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-base\"}
492,{\"title\":\"filesystem\",\"sidebarTitle\":\"filesystem\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-mcp_server_config-v1-sources-filesystem\"}]}]}]},{\"title\":\"mime\",\"sidebarTitle\":\"mime\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-mime\"},{\"group\":\"openapi\",\"pages\":[{\"title\":\"__init__\",\"sidebarTitle\":\"__init__\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-openapi-__init__\"},{\"title\":\"director\",\"sidebarTitle\":\"director\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-openapi-director\"},{\"title\":\"formatters\",\"sidebarTitle\":\"formatters\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-openapi-formatters\"},{\"title\":\"json_schema_converter\",\"sidebarTitle\":\"json_schema_converter\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-openapi-json_schema_converter\"},{\"title\":\"models\",\"sidebarTitle\":\"models\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-openapi-models\"},{\"title\":\"parser\",\"sidebarTitle\":\"parser\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-openapi-parser\"},{\"title\":\"schemas\",\"sidebarTitle\":\"schemas\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-openapi-schemas\"}]},{\"title\":\"pagination\",\"sidebarTitle\":\"pagination\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-pagination\"},{\"title\":\"prefab\",\"sidebarTitle\":\"prefab\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-prefab\"},{\"title\":\"skills\",\"sidebarTitle\":\"skills\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-skills\"},{\"title\":\"tasks\",\"sidebarTitle\":\"tasks\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-tasks\"},{\"title\":\"tests\",\"sidebarTitle\":\"tests\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-tests\"},{\"title\":\"timeout\",\"sidebarTitle\":\"timeout\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-timeout\"},{\"title\":\"token_cache\",\"sidebarTitle\":\"token_cache\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-token_cache\"},{\"title\":\"types\",\"sidebarTitle\":\"types\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-types\"},{\"title\":\"ui\",\"sidebarTitle\":\"ui\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-ui\"},{\"title\":\"version_check\",\"sidebarTitle\":\"version_check\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-version_check\"},{\"title\":\"versions\",\"sidebarTitle\":\"versions\",\"description\":null,\"href\":\"/python-sdk/fastmcp-utilities-versions\"}]}]}]}]},{\"version\":\"v3.4.4\",\"pages\":[{\"title\":\"v3.4.4\",\"href\":\"/v3/getting-started/installation\"}]},{\"version\":\"v2.14.5\",\"pages\":[{\"title\":\"v2.14.5\",\"href\":\"/v2/getting-started/installation\"}]}]},\"maps\":{\"firstHrefInVersion\":{\"v4.0.5\":{\"href\":\"/getting-started/installation\",\"matchLevel\":0},\"v3.4.4\":{\"href\":\"/v3/getting-started/installation\",\"matchLevel\":1},\"v2.14.5\":{\"href\":\"/v2/getting-started/installation\",\"matchLevel\":1}},\"firstHrefInLanguage\":{}},\"children\":\"$L47\"}]\n"])</script>
492<script>self.__next_f.push([1,"48:I[763509,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/05947de8d1d1b0df.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/46839b330f00a800.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/68d6e5104243ae2b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/b0d72ff121ddceb8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/afd2b935774e1485.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/65712ea96ab292b5.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/67ac8b11c225e726.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"ThemeLayout\"]\n"])</script>
492<script>self.__next_f.push([1,"49:I[91557,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/05947de8d1d1b0df.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/46839b330f00a800.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/68d6e5104243ae2b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/b0d72ff121ddceb8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/afd2b935774e1485.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/65712ea96ab292b5.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/67ac8b11c225e726.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"ApiReferenceProvider\"]\n"])</script>
492<script>self.__next_f.push([1,"4a:I[114793,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/05947de8d1d1b0df.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/46839b330f00a800.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/68d6e5104243ae2b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/b0d72ff121ddceb8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/afd2b935774e1485.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/65712ea96ab292b5.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/67ac8b11c225e726.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"PageProvider\"]\n"])</script>
492<script>self.__next_f.push([1,"4b:I[91557,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/05947de8d1d1b0df.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/46839b330f00a800.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/68d6e5104243ae2b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/b0d72ff121ddceb8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/afd2b935774e1485.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/65712ea96ab292b5.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/67ac8b11c225e726.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"OpenApiProvider\"]\n"])</script>
492<script>self.__next_f.push([1,"4c:I[525343,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/05947de8d1d1b0df.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/46839b330f00a800.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/68d6e5104243ae2b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/b0d72ff121ddceb8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/afd2b935774e1485.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/65712ea96ab292b5.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/67ac8b11c225e726.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"TabSyncContextProvider\"]\n"])</script>
492<script>self.__next_f.push([1,"4d:T6de,"])</script>
492<script>self.__next_f.push([1,"{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://gofastmcp.com/#organization\",\"name\":\"FastMCP\",\"url\":\"https://gofastmcp.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/fastmcp/Lu2sdJVHDyHdvswk/assets/brand/wordmark.png?fit=max\u0026auto=format\u0026n=Lu2sdJVHDyHdvswk\u0026q=85\u0026s=67680e9b1c641023511881a24f296077\"}},{\"@type\":\"WebSite\",\"@id\":\"https://gofastmcp.com#website\",\"name\":\"FastMCP\",\"url\":\"https://gofastmcp.com\",\"publisher\":{\"@id\":\"https://gofastmcp.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://gofastmcp.com/getting-started/installation#webpage\",\"url\":\"https://gofastmcp.com/getting-started/installation\",\"name\":\"Installation\",\"description\":\"Install FastMCP and verify your setup\",\"dateModified\":\"2026-09-19T06:29:52.375Z\",\"isPartOf\":{\"@id\":\"https://gofastmcp.com#website\"},\"breadcrumb\":{\"@id\":\"https://gofastmcp.com/getting-started/installation#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://gofastmcp.com/getting-started/installation#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Get Started\",\"item\":\"https://gofastmcp.com/getting-started/welcome\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Installation\",\"item\":\"https://gofastmcp.com/getting-started/installation\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://gofastmcp.com/getting-started/installation#article\",\"headline\":\"Installation\",\"name\":\"Installation\",\"description\":\"Install FastMCP and verify your setup\",\"url\":\"https://gofastmcp.com/getting-started/installation\",\"mainEntityOfPage\":{\"@id\":\"https://gofastmcp.com/getting-started/installation#webpage\"},\"dateModified\":\"2026-09-19T06:29:52.375Z\",\"publisher\":{\"@id\":\"https://gofastmcp.com/#organization\"},\"isPartOf\":{\"@id\":\"https://gofastmcp.com#website\"}}]}"])</script>
492<script>self.__next_f.push([1,"47:[\"$\",\"$L48\",null,{\"theme\":\"almond\",\"pageMetadata\":{\"title\":\"Installation\",\"description\":\"Install FastMCP and verify your setup\",\"icon\":\"arrow-down-to-line\",\"href\":\"/getting-started/installation\"},\"children\":[\"$\",\"$L49\",null,{\"value\":{\"apiReferenceData\":{},\"graphqlReferenceData\":\"$undefined\"},\"children\":[\"$\",\"$L4a\",null,{\"value\":{\"pageMetadata\":\"$47:props:pageMetadata\",\"lastModified\":\"2026-09-19T06:29:52.375Z\",\"gitLastModified\":\"$undefined\",\"originalFileLocation\":\"getting-started/installation.mdx\",\"description\":{\"compiledSource\":\"\\\"use strict\\\";\\nconst {jsx: _jsx} = arguments[0];\\nconst {useMDXComponents: _provideComponents} = arguments[0];\\nfunction _createMdxContent(props) {\\n  const _components = {\\n    p: \\\"p\\\",\\n    ..._provideComponents(),\\n    ...props.components\\n  };\\n  return _jsx(_components.p, {\\n    children: \\\"Install FastMCP and verify your setup\\\"\\n  });\\n}\\nfunction MDXContent(props = {}) {\\n  const {wrapper: MDXLayout} = {\\n    ..._provideComponents(),\\n    ...props.components\\n  };\\n  return MDXLayout ? _jsx(MDXLayout, {\\n    ...props,\\n    children: _jsx(_createMdxContent, {\\n      ...props\\n    })\\n  }) : _createMdxContent(props);\\n}\\nreturn {\\n  default: MDXContent\\n};\\n\",\"frontmatter\":{},\"scope\":{}},\"mdxExtracts\":{\"tableOfContents\":[{\"title\":\"Install FastMCP\",\"slug\":\"install-fastmcp\",\"depth\":2,\"children\":[{\"title\":\"Optional Dependencies\",\"slug\":\"optional-dependencies\",\"depth\":3,\"children\":[]},{\"title\":\"Verify Installation\",\"slug\":\"verify-installation\",\"depth\":3,\"children\":[]},{\"title\":\"Dependency Licensing\",\"slug\":\"dependency-licensing\",\"depth\":3,\"children\":[]}]},{\"title\":\"Upgrading\",\"slug\":\"upgrading\",\"depth\":2,\"children\":[{\"title\":\"From FastMCP 3.0\",\"slug\":\"from-fastmcp-3-0\",\"depth\":3,\"children\":[]},{\"title\":\"From FastMCP 2.0\",\"slug\":\"from-fastmcp-2-0\",\"depth\":3,\"children\":[]},{\"title\":\"From the MCP SDK\",\"slug\":\"from-the-mcp-sdk\",\"depth\":3,\"children\":[]},{\"title\":\"From the high-level server\",\"slug\":\"from-the-high-level-server\",\"depth\":4,\"children\":[]},{\"title\":\"From the low-level server\",\"slug\":\"from-the-low-level-server\",\"depth\":4,\"children\":[]}]},{\"title\":\"Troubleshooting\",\"slug\":\"troubleshooting\",\"depth\":2,\"children\":[{\"title\":\"import fastmcp fails after a pip upgrade\",\"slug\":\"import-fastmcp-fails-after-a-pip-upgrade\",\"depth\":3,\"children\":[]}]},{\"title\":\"Versioning Policy\",\"slug\":\"versioning-policy\",\"depth\":2,\"children\":[]},{\"title\":\"Contributing to FastMCP\",\"slug\":\"contributing-to-fastmcp\",\"depth\":2,\"children\":[]}],\"codeExamples\":{}},\"pageType\":\"$undefined\",\"panelMdxSource\":\"$undefined\",\"panelMdxSourceWithNoJs\":\"$undefined\",\"contextualStarterQuestions\":\"$undefined\",\"relatedPages\":\"$undefined\",\"relatedPagesConfig\":\"$undefined\",\"narration\":\"$undefined\"},\"children\":[\"$\",\"$L4b\",null,{\"pageMetadata\":\"$47:props:pageMetadata\",\"mdxExtracts\":\"$47:props:children:props:children:props:value:mdxExtracts\",\"openApiReferenceData\":\"$undefined\",\"children\":[\"$\",\"$L4c\",null,{\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$4d\"}}],\"$L4e\",\"$L4f\",\"$L50\",\"$L51\",\"$L52\"]}]}]}]}]}]\n"])</script>
492<script>self.__next_f.push([1,"53:I[228341,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/05947de8d1d1b0df.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/46839b330f00a800.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/68d6e5104243ae2b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/b0d72ff121ddceb8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/afd2b935774e1485.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/65712ea96ab292b5.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/67ac8b11c225e726.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"PageModeUpdater\"]\n"])</script>
492<script>self.__next_f.push([1,"54:I[575126,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/05947de8d1d1b0df.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/46839b330f00a800.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/68d6e5104243ae2b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/b0d72ff121ddceb8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/afd2b935774e1485.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/65712ea96ab292b5.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/67ac8b11c225e726.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"Background\"]\n"])</script>
492<script>self.__next_f.push([1,"59:I[36098,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/05947de8d1d1b0df.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/46839b330f00a800.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/68d6e5104243ae2b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/b0d72ff121ddceb8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/afd2b935774e1485.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/65712ea96ab292b5.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/67ac8b11c225e726.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"CustomJsFiles\"]\n"])</script>
492<script>self.__next_f.push([1,"60:I[530359,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/05947de8d1d1b0df.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/46839b330f00a800.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/68d6e5104243ae2b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/b0d72ff121ddceb8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/afd2b935774e1485.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/65712ea96ab292b5.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/67ac8b11c225e726.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"MDXContentController\"]\n"])</script>
492<script>self.__next_f.push([1,"61:I[448287,[\"/mintlify-assets/_next/static/chunks/36c5362201361dc4.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/874fe37644eeb1f9.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/114447d6045ff422.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6667067405062ccf.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c3b8be372989851c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/6a56f881674babba.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/e38277eae5c378d8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/80733857bcb836af.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/300027ac55b30858.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fc835c547bb5952c.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/fe4920f2c5454c7a.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/8e9da56019900654.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/c56b2bc7e1de32a8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/f00371fdfe3851d6.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/92fba71ad7a33d89.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/05947de8d1d1b0df.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/46839b330f00a800.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/68d6e5104243ae2b.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/b0d72ff121ddceb8.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/afd2b935774e1485.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/65712ea96ab292b5.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\",\"/mintlify-assets/_next/static/chunks/67ac8b11c225e726.js?dpl=dpl_5WfBKS6uvB3ch6FqbAMNWRNXnopx\"],\"default\"]\n"])</script>
492<script>self.__next_f.push([1,"4e:[[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"document.documentElement.setAttribute('data-page-mode', \\\"none\\\");\"}}],[\"$\",\"$L53\",null,{\"pageMetadata\":\"$47:props:pageMetadata\"}]]\n4f:[\"$\",\"$L54\",null,{\"pageMetadata\":\"$47:props:pageMetadata\"}]\n55:T57a,"])</script>
492<script>self.__next_f.push([1,"/* Banner: an animated brand-rainbow wash behind Mintlify's white text.\n   Mintlify always renders banner text white, so every gradient stop is a\n   deep, saturated shade (all \u003e=7:1 on white) — the colors evoke the FastMCP\n   watercolor logo while keeping the announcement legible in both themes.\n   A dark fallback color is configured in docs.json for the no-CSS case. */\n#banner {\n  font-size: 0.95rem !important;\n  font-weight: 600 !important;\n  padding-top: 12px !important;\n  padding-bottom: 12px !important;\n  overflow: hidden !important;\n}\n\n#banner::before {\n  content: \"\";\n  position: absolute;\n  inset: 0;\n  z-index: 0;\n  background: linear-gradient(\n    90deg,\n    #1e40af 0%,\n    #5b21b6 22%,\n    #115e59 44%,\n    #9a3412 66%,\n    #9d174d 88%,\n    #1e40af 100%\n  );\n  background-size: 250% 100%;\n  animation: colorWave 18s ease-in-out infinite alternate;\n  pointer-events: none;\n}\n\n/* Keep the announcement text above the animated wash. */\n#banner \u003e * {\n  position: relative;\n  z-index: 1;\n}\n\n@keyframes colorWave {\n  0% {\n    background-position: 0% 50%;\n  }\n  100% {\n    background-position: 100% 50%;\n  }\n}\n\n#banner * {\n  margin: 0 !important;\n}\n\n@media (max-width: 767px) {\n  #banner {\n    font-size: 0.8rem !important;\n    padding-top: 8px !important;\n    padding-bottom: 8px !important;\n  }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  #banner::before {\n    animation: none;\n  }\n}\n"])</script>
492<script>self.__next_f.push([1,"56:T7f2,"])</script>
492<script>self.__next_f.push([1,"html:not([data-page-mode=\"wide\"]) #content-area {\n  max-width: 44rem !important;\n}\n\nimg.nav-logo {\n  max-width: 200px;\n}\n\n/* Code highlighting -- target only inline code elements, not code blocks */\np code:not(pre code),\ntable code:not(pre code),\n.prose code:not(pre code),\nli code:not(pre code),\nh1 code:not(pre code),\nh2 code:not(pre code),\nh3 code:not(pre code),\nh4 code:not(pre code),\nh5 code:not(pre code),\nh6 code:not(pre code) {\n  color: #f72585 !important;\n  background-color: rgba(247, 37, 133, 0.09);\n}\n\n/* V2 banner - inside content-container, breaks out of padding with negative margins */\n#v2-banner {\n  display: block;\n  background: linear-gradient(135deg, #4cc9f0 0%, #2d00f7 100%);\n  color: white;\n  text-align: center;\n  padding: 10px 16px;\n  font-size: 0.875rem;\n  font-weight: 600;\n  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n  margin: -2rem -2rem 1.5rem -2rem;\n  width: calc(100% + 4rem);\n  border-radius: 8px 8px 0 0;\n}\n\n#v2-banner a {\n  color: white;\n  text-decoration: underline;\n  font-weight: 700;\n}\n\n#v2-banner a:hover {\n  opacity: 0.9;\n}\n\n@media (min-width: 1024px) {\n  #v2-banner {\n    margin: -3rem -4rem 1.5rem -4rem;\n    width: calc(100% + 8rem);\n  }\n}\n\n.dark #v2-banner {\n  background: linear-gradient(135deg, #2d00f7 0%, #4cc9f0 100%);\n}\n\n/* V3 banner - inside content-container, breaks out of padding with negative margins */\n#v3-banner {\n  display: block;\n  background: linear-gradient(135deg, #4cc9f0 0%, #2d00f7 100%);\n  color: white;\n  text-align: center;\n  padding: 10px 16px;\n  font-size: 0.875rem;\n  font-weight: 600;\n  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n  margin: -2rem -2rem 1.5rem -2rem;\n  width: calc(100% + 4rem);\n  border-radius: 8px 8px 0 0;\n}\n\n#v3-banner a {\n  color: white;\n  text-decoration: underline;\n  font-weight: 700;\n}\n\n#v3-banner a:hover {\n  opacity: 0.9;\n}\n\n@media (min-width: 1024px) {\n  #v3-banner {\n    margin: -3rem -4rem 1.5rem -4rem;\n    width: calc(100% + 8rem);\n  }\n}\n\n.dark #v3-banner {\n  background: linear-gradient(135deg, #2d00f7 0%, #4cc9f0 100%);\n}\n\n\n\n\n\n"])</script>
492<script>self.__next_f.push([1,"50:[[\"$\",\"style\",\"0\",{\"data-custom-css-index\":0,\"data-custom-css-path\":\"css/banner.css\",\"dangerouslySetInnerHTML\":{\"__html\":\"$55\"}}],[\"$\",\"style\",\"1\",{\"data-custom-css-index\":1,\"data-custom-css-path\":\"css/python-sdk.css\",\"dangerouslySetInnerHTML\":{\"__html\":\"a:has(svg.icon) {\\n  border: none !important;\\n}\"}}],[\"$\",\"style\",\"2\",{\"data-custom-css-index\":2,\"data-custom-css-path\":\"css/style.css\",\"dangerouslySetInnerHTML\":{\"__html\":\"$56\"}}],\"$L57\",\"$L58\"]\n5a:T4d5,"])</script>
492<script>self.__next_f.push([1,"// Add v2 banner inside content-container with negative margins\n(function() {\n  if (typeof window === 'undefined') return;\n  \n  function addBanner() {\n    const isV2 = window.location.pathname.includes('/v2/');\n    const container = document.getElementById('content-container');\n    let banner = document.getElementById('v2-banner');\n    \n    if (isV2 \u0026\u0026 container) {\n      if (!banner) {\n        banner = document.createElement('div');\n        banner.id = 'v2-banner';\n        banner.innerHTML = 'These are the docs for FastMCP 2.0. \u003ca href=\"/getting-started/welcome\" style=\"color: white; text-decoration: underline; font-weight: 700;\"\u003eFastMCP 3.0\u003c/a\u003e is now available.';\n        container.insertBefore(banner, container.firstChild);\n      }\n    } else if (!isV2 \u0026\u0026 banner) {\n      banner.remove();\n    }\n  }\n  \n  function run() {\n    if (document.readyState === 'loading') {\n      document.addEventListener('DOMContentLoaded', addBanner);\n    } else {\n      addBanner();\n    }\n  }\n  \n  run();\n  \n  let lastUrl = location.href;\n  new MutationObserver(() =\u003e {\n    if (location.href !== lastUrl) {\n      lastUrl = location.href;\n      setTimeout(addBanner, 100);\n    }\n  }).observe(document.body, {subtree: true, childList: true});\n})();\n"])</script>
492<script>self.__next_f.push([1,"5b:T7bf,"])</script>
492<script>self.__next_f.push([1,"// Load Unify intent tag on selected pages\n(function () {\n  if (typeof window === \"undefined\") return;\n\n  function isTaggedPage() {\n    var path = window.location.pathname;\n    return (\n      path.includes(\"/servers/auth/\") ||\n      path.includes(\"/clients/auth/\") ||\n      path.includes(\"/deployment/running-server\") ||\n      path.includes(\"/deployment/http\") ||\n      path.includes(\"/deployment/prefect-horizon\")\n    );\n  }\n\n  function loadUnify() {\n    var e = [\n      \"identify\",\n      \"page\",\n      \"startAutoPage\",\n      \"stopAutoPage\",\n      \"startAutoIdentify\",\n      \"stopAutoIdentify\",\n    ];\n    function t(o) {\n      return Object.assign(\n        [],\n        e.reduce(function (r, n) {\n          r[n] = function () {\n            return o.push([n, [].slice.call(arguments)]), o;\n          };\n          return r;\n        }, {}),\n      );\n    }\n    if (!window.unify) window.unify = t(window.unify);\n    if (!window.unifyBrowser) window.unifyBrowser = t(window.unifyBrowser);\n\n    var n = document.createElement(\"script\");\n    n.async = true;\n    n.setAttribute(\n      \"src\",\n      \"https://tag.unifyintent.com/v1/Rj9KrQqMhyYcU5qfJtVszE/script.js\",\n    );\n    n.setAttribute(\n      \"data-api-key\",\n      \"wk_SBvJ4jyD_wRgPAHCNJb89seVmREhcj2NspRpxAywi\",\n    );\n    n.setAttribute(\"id\", \"unifytag\");\n    (document.body || document.head).appendChild(n);\n  }\n\n  function update() {\n    if (isTaggedPage() \u0026\u0026 !document.getElementById(\"unifytag\")) {\n      loadUnify();\n    } else if (!isTaggedPage() \u0026\u0026 document.getElementById(\"unifytag\")) {\n      document.getElementById(\"unifytag\").remove();\n    }\n  }\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", update);\n  } else {\n    update();\n  }\n\n  var lastUrl = location.href;\n  new MutationObserver(function () {\n    if (location.href !== lastUrl) {\n      lastUrl = location.href;\n      setTimeout(update, 100);\n    }\n  }).observe(document.body, { subtree: true, childList: true });\n})();\n"])</script>
492<script>self.__next_f.push([1,"5c:T1ae1,"])</script>
492<script>self.__next_f.push([1,"(function () {\n  if (typeof window === \"undefined\") return;\n\n  // Public browser key for the shared Prefect Amplitude project.\n  // This is intentionally client-side; the secret key must never ship to the browser.\n  var AMPLITUDE_API_KEY = \"c361ed56e7bdc1a48a38773c40120b39\";\n  var AMPLITUDE_SCRIPT_URL =\n    \"https://cdn.amplitude.com/libs/analytics-browser-2.8.1-min.js.gz\";\n  var AMPLITUDE_SERVER_URL = \"https://api2.amplitude.com/2/httpapi\";\n  var PAGE_VIEW_EVENT = \"Page View: FastMCP Docs\";\n  var OUTBOUND_CLICK_EVENT = \"Docs Outbound Clicked\";\n  var SOURCE = \"docs\";\n  var SOURCE_DETAIL = \"fastmcp\";\n  var SURFACE = \"fastmcp_docs\";\n  var DEVICE_ID_PARAM = \"deviceId\";\n  var routeListenersInstalled = false;\n  var amplitudeInitialized = false;\n  var lastTrackedUrl = null;\n\n  var PREFECT_DESTINATION_HOSTNAMES = [\n    \"www.prefect.io\",\n    \"prefect.io\",\n    \"horizon.prefect.io\",\n    \"app.prefect.cloud\",\n  ];\n\n  var routeChangeCallbacks = [];\n\n  function loadScript(src, onload) {\n    var script = document.createElement(\"script\");\n    script.src = src;\n    script.async = true;\n\n    if (typeof onload === \"function\") {\n      script.addEventListener(\"load\", onload);\n    }\n\n    document.head.appendChild(script);\n    return script;\n  }\n\n  function getAmplitude() {\n    return window.amplitude || window.amplitudeAnalytics;\n  }\n\n  function normalizePathname(pathname) {\n    if (pathname === \"/\") return pathname;\n    return pathname.replace(/\\/+$/, \"\");\n  }\n\n  function observeRouteChanges(callback) {\n    routeChangeCallbacks.push(callback);\n\n    if (!routeListenersInstalled) {\n      var fireCallbacks = function () {\n        routeChangeCallbacks.forEach(function (cb) {\n          window.setTimeout(cb, 0);\n        });\n      };\n\n      var wrapHistoryMethod = function (methodName) {\n        var original = window.history[methodName];\n        window.history[methodName] = function () {\n          var result = original.apply(this, arguments);\n          fireCallbacks();\n          return result;\n        };\n      };\n\n      wrapHistoryMethod(\"pushState\");\n      wrapHistoryMethod(\"replaceState\");\n      window.addEventListener(\"popstate\", fireCallbacks);\n      window.addEventListener(\"hashchange\", fireCallbacks);\n      routeListenersInstalled = true;\n    }\n\n    callback();\n  }\n\n  function buildPageViewProperties() {\n    return {\n      url: window.location.href,\n      title: document.title,\n      referrer: document.referrer || null,\n      path: normalizePathname(window.location.pathname),\n      source: SOURCE,\n      source_detail: SOURCE_DETAIL,\n      surface: SURFACE,\n    };\n  }\n\n  function trackPageView() {\n    var amplitude = getAmplitude();\n    if (!amplitude || typeof amplitude.track !== \"function\") {\n      return;\n    }\n\n    var url = window.location.href;\n    if (url === lastTrackedUrl) {\n      return;\n    }\n\n    amplitude.track(PAGE_VIEW_EVENT, buildPageViewProperties());\n    lastTrackedUrl = url;\n  }\n\n  function parseUrl(href) {\n    try {\n      return new URL(href, window.location.origin);\n    } catch (error) {\n      return null;\n    }\n  }\n\n  function isPrefectDestination(url) {\n    return PREFECT_DESTINATION_HOSTNAMES.indexOf(url.hostname) !== -1;\n  }\n\n  function addDeviceIdToLink(event) {\n    var amplitude = getAmplitude();\n    if (!amplitude || typeof amplitude.getDeviceId !== \"function\") {\n      return;\n    }\n\n    var link = event.currentTarget;\n    var href = link.getAttribute(\"href\") || \"\";\n\n    var url = parseUrl(href);\n    if (!url || !isPrefectDestination(url)) {\n      return;\n    }\n\n    url.searchParams.set(DEVICE_ID_PARAM, amplitude.getDeviceId());\n    link.href = url.toString();\n  }\n\n  function removeDeviceIdFromLink(event) {\n    var link = event.currentTarget;\n    var href = link.getAttribute(\"href\") || \"\";\n\n    var url = parseUrl(href);\n    if (!url || !isPrefectDestination(url)) {\n      return;\n    }\n\n    url.searchParams.delete(DEVICE_ID_PARAM);\n    link.href = url.toString();\n  }\n\n  function attachDeviceIdForwarding() {\n    var elements = document.querySelectorAll(\"a[href]\");
492\n    elements.forEach(function (element) {\n      if (element.dataset.fastmcpDeviceIdBound === \"true\") {\n        return;\n      }\n\n      var url = parseUrl(element.getAttribute(\"href\") || \"\");\n      if (!url || !isPrefectDestination(url)) {\n        return;\n      }\n\n      element.addEventListener(\"mouseenter\", addDeviceIdToLink);\n      element.addEventListener(\"mouseleave\", removeDeviceIdFromLink);\n      element.addEventListener(\"focus\", addDeviceIdToLink);\n      element.addEventListener(\"blur\", removeDeviceIdFromLink);\n      element.addEventListener(\"touchstart\", addDeviceIdToLink);\n      element.addEventListener(\"touchcancel\", removeDeviceIdFromLink);\n      element.dataset.fastmcpDeviceIdBound = \"true\";\n    });\n  }\n\n  function trackOutboundClick(event) {\n    var link = event.target \u0026\u0026 event.target.closest\n      ? event.target.closest(\"a[href]\")\n      : null;\n\n    if (!link) {\n      return;\n    }\n\n    var href = link.getAttribute(\"href\");\n    if (!href || href[0] === \"#\") {\n      return;\n    }\n\n    var destination;\n    destination = parseUrl(href);\n    if (!destination) {\n      return;\n    }\n\n    if (destination.hostname === window.location.hostname) {\n      return;\n    }\n\n    var amplitude = getAmplitude();\n    if (!amplitude || typeof amplitude.track !== \"function\") {\n      return;\n    }\n\n    amplitude.track(OUTBOUND_CLICK_EVENT, {\n      path: normalizePathname(window.location.pathname),\n      url: window.location.href,\n      title: document.title,\n      source: SOURCE,\n      source_detail: SOURCE_DETAIL,\n      surface: SURFACE,\n      destination: destination.href,\n      destination_domain: destination.hostname,\n      link_text: (link.textContent || \"\").trim().slice(0, 200),\n      is_prefect_destination: isPrefectDestination(destination),\n    });\n  }\n\n  function initializeAmplitude() {\n    var amplitude = getAmplitude();\n    if (\n      amplitudeInitialized ||\n      !amplitude ||\n      typeof amplitude.init !== \"function\"\n    ) {\n      return;\n    }\n\n    amplitude.init(AMPLITUDE_API_KEY, undefined, {\n      useBatch: true,\n      serverUrl: AMPLITUDE_SERVER_URL,\n      attribution: {\n        disabled: false,\n        trackNewCampaigns: true,\n        trackPageViews: true,\n        resetSessionOnNewCampaign: true,\n      },\n      defaultTracking: {\n        pageViews: false,\n        sessions: false,\n        formInteractions: true,\n        fileDownloads: true,\n      },\n    });\n\n    amplitudeInitialized = true;\n    observeRouteChanges(trackPageView);\n    observeRouteChanges(attachDeviceIdForwarding);\n  }\n\n  function initialize() {\n    document.addEventListener(\"click\", trackOutboundClick, true);\n    loadScript(AMPLITUDE_SCRIPT_URL, initializeAmplitude);\n  }\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", initialize);\n  } else {\n    initialize();\n  }\n})();\n"])</script>
492<script>self.__next_f.push([1,"5d:T14106,"])</script>
492<script>self.__next_f.push([1,"window.__FASTMCP_PREFAB_DEMOS__ = {\"bar-chart\":\"\u003c!doctype html\u003e\\n\u003chtml lang=\\\"en\\\"\u003e\\n\u003chead\u003e\\n  \u003ctitle\u003ePrefab\u003c/title\u003e\\n  \u003cmeta charset=\\\"UTF-8\\\"\u003e\\n  \u003cmeta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1.0\\\"\u003e\\n  \u003clink rel=\\\"stylesheet\\\" crossorigin href=\\\"https://cdn.jsdelivr.net/npm/@prefecthq/[email protected]/dist/app/renderer.css\\\"\u003e\\n  \u003cscript type=\\\"module\\\" crossorigin src=\\\"https://cdn.jsdelivr.net/npm/@prefecthq/[email protected]/dist/app/renderer.js\\\"\u003e\u003c/script\u003e\\n\u003c/head\u003e\\n\u003cbody\u003e\\n  \u003cdiv id=\\\"root\\\" style=\\\"max-width:64rem;margin:0 auto;padding:2rem\\\"\u003e\u003c/div\u003e\\n  \u003cscript id=\\\"prefab:initial-data\\\" type=\\\"application/json\\\"\u003e{\\n  \\\"$prefab\\\": {\\n    \\\"version\\\": \\\"0.2\\\"\\n  },\\n  \\\"view\\\": {\\n    \\\"cssClass\\\": \\\"pf-app-root\\\",\\n    \\\"type\\\": \\\"Div\\\",\\n    \\\"children\\\": [\\n      {\\n        \\\"cssClass\\\": \\\"p-6\\\",\\n        \\\"type\\\": \\\"Column\\\",\\n        \\\"children\\\": [\\n          {\\n            \\\"type\\\": \\\"BarChart\\\",\\n            \\\"data\\\": [\\n              {\\n                \\\"quarter\\\": \\\"Q1\\\",\\n                \\\"revenue\\\": 42000,\\n                \\\"costs\\\": 28000\\n              },\\n              {\\n                \\\"quarter\\\": \\\"Q2\\\",\\n                \\\"revenue\\\": 51000,\\n                \\\"costs\\\": 31000\\n              },\\n              {\\n                \\\"quarter\\\": \\\"Q3\\\",\\n                \\\"revenue\\\": 47000,\\n                \\\"costs\\\": 29000\\n              },\\n              {\\n                \\\"quarter\\\": \\\"Q4\\\",\\n                \\\"revenue\\\": 63000,\\n                \\\"costs\\\": 35000\\n              }\\n            ],\\n            \\\"series\\\": [\\n              {\\n                \\\"dataKey\\\": \\\"revenue\\\",\\n                \\\"label\\\": \\\"Revenue\\\"\\n              },\\n              {\\n                \\\"dataKey\\\": \\\"costs\\\",\\n                \\\"label\\\": \\\"Costs\\\"\\n              }\\n            ],\\n            \\\"xAxis\\\": \\\"quarter\\\",\\n            \\\"height\\\": 250,\\n            \\\"stacked\\\": false,\\n            \\\"horizontal\\\": false,\\n            \\\"barRadius\\\": 4,\\n            \\\"showLegend\\\": true,\\n            \\\"showTooltip\\\": true,\\n            \\\"animate\\\": true,\\n            \\\"showGrid\\\": true,\\n            \\\"showYAxis\\\": true,\\n            \\\"yAxisFormat\\\": \\\"auto\\\"\\n          }\\n        ]\\n      }\\n    ]\\n  }\\n}\u003c/script\u003e\\n\u003c/body\u003e\\n\u003c/html\u003e\",\"contacts\":\"\u003c!doctype html\u003e\\n\u003chtml lang=\\\"en\\\"\u003e\\n\u003chead\u003e\\n  \u003ctitle\u003ePrefab\u003c/title\u003e\\n  \u003cmeta charset=\\\"UTF-8\\\"\u003e\\n  \u003cmeta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1.0\\\"\u003e\\n  \u003clink rel=\\\"stylesheet\\\" crossorigin href=\\\"https://cdn.jsdelivr.net/npm/@prefecthq/[email protected]/dist/app/renderer.css\\\"\u003e\\n  \u003cscript type=\\\"module\\\" crossorigin src=\\\"https://cdn.jsdelivr.net/npm/@prefecthq/[email protected]/dist/app/renderer.js\\\"\u003e\u003c/script\u003e\\n\u003c/head\u003e\\n\u003cbody\u003e\\n  \u003cdiv id=\\\"root\\\" style=\\\"max-width:64rem;margin:0 auto;padding:2rem\\\"\u003e\u003c/div\u003e\\n  \u003cscript id=\\\"prefab:initial-data\\\" type=\\\"application/json\\\"\u003e{\\n  \\\"$prefab\\\": {\\n    \\\"version\\\": \\\"0.2\\\"\\n  },\\n  \\\"view\\\": {\\n    \\\"cssClass\\\": \\\"pf-app-root\\\",\\n    \\\"type\\\": \\\"Div\\\",\\n    \\\"children\\\": [\\n      {\\n        \\\"cssClass\\\": \\\"gap-4 p-6\\\",\\n        \\\"type\\\": \\\"Column\\\",\\n        \\\"children\\\": [\\n          {\\n            \\\"type\\\": \\\"DataTable\\\",\\n            \\\"columns\\\": [\\n              {\\n                \\\"key\\\": \\\"name\\\",\\n                \\\"header\\\": \\\"Name\\\",\\n                \\\"sortable\\\": true\\n              },\\n              {\\n                \\\"key\\\": \\\"email\\\",\\n                \\\"header\\\": \\\"Email\\\",\\n                \\\"sortable\\\": false\\n              },\\n              {\\n                \\\"key\\\": \\\"category\\\",\\n                \\\"header\\\": \\\"Category\\\",\\n                \\\"sortable\\\": false\\n              }\\n            ],\\n            \\\"rows\\\": [\\n              {\\n                \\\"name\\\": \\\"Arthur Dent\\\",\\n                \\\"email\\\": \\\"[email protected]\\\",\\n                \\\"category\\\": {\\n                  \\\"type\\\": \\\"Badge\\\",\\n                  \\\"label\\\": \\\"Customer\\\",\\n                  \\\"variant\\\": \\\"success\\\"\\n                }\\n              },\\n              {\\n                \\\"name\\\": \\\"Ford Prefect\\\",\\n                \\\"email\\\": \\\"[email protected]\\\",\\n                \\\"category\\\": {\\n                  \\\"type\\\": \\\"Badge\\\",\\n                  \\\"label\\\": \\\"Partner\\\",\\n                  \\\"variant\\\": \\\"secondary\\\"\\n                }\\n              },\\n              {\\n                \\\"name\\\": \\\"Trillian Astra\\\",\\n                \\\"email\\\": \\\"[email protected]\\\",\\n                \\\"category\\\": {\\n                  \\\"type\\\": \\\"Badge\\\",\\n                  \\\"label\\\": \\\"Customer\\\",\\n                  \\\"variant\\\": \\\"success\\\"\\n                }\\n              },\\n              {\\n                \\\"name\\\": \\\"Zaphod Beeblebrox\\\",\\n                \\\"email\\\": \\\"[email protected]\\\",\\n                \\\"category\\\": {\\n                  \\\"type\\\": \\\"Badge\\\",\\n                  \\\"label\\\": \\\"Vendor\\\",\\n                  \\\"variant\\\": \\\"outline\\\"\\n                }\\n              }\\n            ],\\n            \\\"search\\\": true,\\n            \\\"paginated\\\": false,\\n            \\\"pageSize\\\": 10\\n          },\\n          {\\n            \\\"type\\\": \\\"Separator\\\",\\n            \\\"orientation\\\": \\\"horizontal\\\"\\n          },\\n          {\\n            \\\"content\\\": \\\"Add Contact\\\",\\n            \\\"type\\\": \\\"H3\\\"\\n          },\\n          {\\n            \\\"cssClass\\\": \\\"gap-4\\\",\\n            \\\"type\\\": \\\"Form\\\",\\n            \\\"onSubmit\\\": {\\n              \\\"action\\\": \\\"showToast\\\",\\n              \\\"message\\\": \\\"Contact saved! (preview demo \\\\u2014 no backend wired)\\\",\\n              \\\"variant\\\": \\\"success\\\"\\n            },\\n            \\\"children\\\": [\\n              {\\n                \\\"cssClass\\\": \\\"gap-4\\\",\\n                \\\"type\\\": \\\"Row\\\",\\n                \\\"children\\\": [\\n                  {\\n                    \\\"name\\\": \\\"name\\\",\\n                    \\\"type\\\": \\\"Input\\\",\\n                    \\\"inputType\\\": \\\"text\\\",\\n                    \\\"placeholder\\\": \\\"Full name\\\",\\n                    \\\"disabled\\\": false,\\n                    \\\"readOnly\\\": false,\\n                    \\\"required\\\": true\\n                  },\\n                  {\\n                    \\\"name\\\": \\\"email\\\",\\n                    \\\"type\\\": \\\"Input\\\",\\n                    \\\"inputType\\\": \\\"text\\\",\\n                    \\\"placeholder\\\": \\\"[email protected]\\\",\\n                    \\\"disabled\\\": false,\\n                    \\\"readOnly\\\": false,\\n                    \\\"required\\\": true\\n                  }\\n                ]\\n              },\\n              {\\n                \\\"name\\\": \\\"category\\\",\\n                \\\"type\\\": \\\"Select\\\",\\n                \\\"size\\\": \\\"default\\\",\\n                \\\"disabled\\\": false,\\n                \\\"required\\\": false,\\n                \\\"invali
492d\\\": false,\\n                \\\"children\\\": [\\n                  {\\n                    \\\"type\\\": \\\"SelectOption\\\",\\n                    \\\"value\\\": \\\"Customer\\\",\\n                    \\\"label\\\": \\\"Customer\\\",\\n                    \\\"selected\\\": false,\\n                    \\\"disabled\\\": false\\n                  },\\n                  {\\n                    \\\"type\\\": \\\"SelectOption\\\",\\n                    \\\"value\\\": \\\"Partner\\\",\\n                    \\\"label\\\": \\\"Partner\\\",\\n                    \\\"selected\\\": false,\\n                    \\\"disabled\\\": false\\n                  },\\n                  {\\n                    \\\"type\\\": \\\"SelectOption\\\",\\n                    \\\"value\\\": \\\"Vendor\\\",\\n                    \\\"label\\\": \\\"Vendor\\\",\\n                    \\\"selected\\\": false,\\n                    \\\"disabled\\\": false\\n                  }\\n                ]\\n              },\\n              {\\n                \\\"type\\\": \\\"Button\\\",\\n                \\\"label\\\": \\\"Save Contact\\\",\\n                \\\"variant\\\": \\\"default\\\",\\n                \\\"size\\\": \\\"default\\\",\\n                \\\"disabled\\\": false\\n              }\\n            ]\\n          }\\n        ]\\n      }\\n    ]\\n  }\\n}\u003c/script\u003e\\n\u003c/body\u003e\\n\u003c/html\u003e\",\"dashboard\":\"\u003c!doctype html\u003e\\n\u003chtml lang=\\\"en\\\"\u003e\\n\u003chead\u003e\\n  \u003ctitle\u003ePrefab\u003c/title\u003e\\n  \u003cmeta charset=\\\"UTF-8\\\"\u003e\\n  \u003cmeta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1.0\\\"\u003e\\n  \u003clink rel=\\\"stylesheet\\\" crossorigin href=\\\"https://cdn.jsdelivr.net/npm/@prefecthq/[email protected]/dist/app/renderer.css\\\"\u003e\\n  \u003cscript type=\\\"module\\\" crossorigin src=\\\"https://cdn.jsdelivr.net/npm/@prefecthq/[email protected]/dist/app/renderer.js\\\"\u003e\u003c/script\u003e\\n\u003c/head\u003e\\n\u003cbody\u003e\\n  \u003cdiv id=\\\"root\\\" style=\\\"max-width:64rem;margin:0 auto;padding:2rem\\\"\u003e\u003c/div\u003e\\n  \u003cscript id=\\\"prefab:initial-data\\\" type=\\\"application/json\\\"\u003e{\\n  \\\"$prefab\\\": {\\n    \\\"version\\\": \\\"0.2\\\"\\n  },\\n  \\\"view\\\": {\\n    \\\"cssClass\\\": \\\"pf-app-root\\\",\\n    \\\"type\\\": \\\"Div\\\",\\n    \\\"children\\\": [\\n      {\\n        \\\"cssClass\\\": \\\"gap-4 p-6\\\",\\n        \\\"type\\\": \\\"Column\\\",\\n        \\\"children\\\": [\\n          {\\n            \\\"cssClass\\\": \\\"gap-6\\\",\\n            \\\"type\\\": \\\"Row\\\",\\n            \\\"children\\\": [\\n              {\\n                \\\"type\\\": \\\"Metric\\\",\\n                \\\"label\\\": \\\"Revenue (Q1-Q4)\\\",\\n                \\\"value\\\": \\\"$220,500\\\"\\n              },\\n              {\\n                \\\"type\\\": \\\"Metric\\\",\\n                \\\"label\\\": \\\"Deals\\\",\\n                \\\"value\\\": \\\"4\\\"\\n              }\\n            ]\\n          },\\n          {\\n            \\\"type\\\": \\\"BarChart\\\",\\n            \\\"data\\\": [\\n              {\\n                \\\"month\\\": \\\"Jan\\\",\\n                \\\"revenue\\\": 48200,\\n                \\\"costs\\\": 31000\\n              },\\n              {\\n                \\\"month\\\": \\\"Feb\\\",\\n                \\\"revenue\\\": 52100,\\n                \\\"costs\\\": 32500\\n              },\\n              {\\n                \\\"month\\\": \\\"Mar\\\",\\n                \\\"revenue\\\": 61800,\\n                \\\"costs\\\": 34200\\n              },\\n              {\\n                \\\"month\\\": \\\"Apr\\\",\\n                \\\"revenue\\\": 58400,\\n                \\\"costs\\\": 33800\\n              }\\n            ],\\n            \\\"series\\\": [\\n              {\\n                \\\"dataKey\\\": \\\"revenue\\\",\\n                \\\"label\\\": \\\"Revenue\\\"\\n              },\\n              {\\n                \\\"dataKey\\\": \\\"costs\\\",\\n                \\\"label\\\": \\\"Costs\\\"\\n              }\\n            ],\\n            \\\"xAxis\\\": \\\"month\\\",\\n            \\\"height\\\": 200,\\n            \\\"stacked\\\": false,\\n            \\\"horizontal\\\": false,\\n            \\\"barRadius\\\": 4,\\n            \\\"showLegend\\\": true,\\n            \\\"showTooltip\\\": true,\\n            \\\"animate\\\": true,\\n            \\\"showGrid\\\": true,\\n            \\\"showYAxis\\\": true,\\n            \\\"yAxisFormat\\\": \\\"auto\\\"\\n          },\\n          {\\n            \\\"type\\\": \\\"Separator\\\",\\n            \\\"orientation\\\": \\\"horizontal\\\"\\n          },\\n          {\\n            \\\"type\\\": \\\"DataTable\\\",\\n            \\\"columns\\\": [\\n              {\\n                \\\"key\\\": \\\"account\\\",\\n                \\\"header\\\": \\\"Account\\\",\\n                \\\"sortable\\\": true\\n              },\\n              {\\n                \\\"key\\\": \\\"value\\\",\\n                \\\"header\\\": \\\"Value\\\",\\n                \\\"sortable\\\": true\\n              },\\n              {\\n                \\\"key\\\": \\\"stage\\\",\\n                \\\"header\\\": \\\"Stage\\\",\\n                \\\"sortable\\\": false\\n              }\\n            ],\\n            \\\"rows\\\": [\\n              {\\n                \\\"account\\\": \\\"Acme Corp\\\",\\n                \\\"value\\\": \\\"$84,000\\\",\\n                \\\"stage\\\": {\\n                  \\\"type\\\": \\\"Badge\\\",\\n                  \\\"label\\\": \\\"Won\\\",\\n                  \\\"variant\\\": \\\"success\\\"\\n                }\\n              },\\n              {\\n                \\\"account\\\": \\\"Globex Inc\\\",\\n                \\\"value\\\": \\\"$52,000\\\",\\n                \\\"stage\\\": {\\n                  \\\"type\\\": \\\"Badge\\\",\\n                  \\\"label\\\": \\\"Negotiation\\\",\\n                  \\\"variant\\\": \\\"secondary\\\"\\n                }\\n              },\\n              {\\n                \\\"account\\\": \\\"Initech\\\",\\n                \\\"value\\\": \\\"$31,500\\\",\\n                \\\"stage\\\": {\\n                  \\\"type\\\": \\\"Badge\\\",\\n                  \\\"label\\\": \\\"Proposal\\\",\\n                  \\\"variant\\\": \\\"secondary\\\"\\n                }\\n              },\\n              {\\n                \\\"account\\\": \\\"Wayne Enterprises\\\",\\n                \\\"value\\\": \\\"$45,000\\\",\\n                \\\"stage\\\": {\\n                  \\\"type\\\": \\\"Badge\\\",\\n                  \\\"label\\\": \\\"Lost\\\",\\n                  \\\"variant\\\": \\\"destructive\\\"\\n                }\\n              }\\n            ],\\n            \\\"search\\\": false,\\n            \\\"paginated\\\": false,\\n            \\\"pageSize\\\": 10\\n          }\\n        ]\\n      }\\n    ]\\n  }\\n}\u003c/script\u003e\\n\u003c/body\u003e\\n\u003c/html\u003e\",\"data-table\":\"\u003c!doctype html\u003e\\n\u003chtml lang=\\\"en\\\"\u003e\\n\u003chead\u003e\\n  \u003ctitle\u003ePrefab\u003c/title\u003e\\n  \u003cmeta charset=\\\"UTF-8\\\"\u003e\\n  \u003cmeta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1.0\\\"\u003e\\n  \u003clink rel=\\\"stylesheet\\\" crossorigin href=\\\"https://cdn.jsdelivr.net/npm/@prefecthq/[email protected]/dist/app/renderer.css\\\"\u003e\\n  \u003cscript type=\\\"module\\\" crossorigin src=\\\"https://cdn.jsdelivr.net/npm/@prefecthq/[email protected]/dist/app/renderer.js\\\"\u003e\u003c/script\u003e\\n\u003c/head\u003e\\n\u003cbody\u003e\\n  \u003cdiv id=\\\"root\\\" style=\\\"max-width:64rem;margin:0 auto;padding:2rem\\\"\u003e\u003c/div\u003e\\n  \u003cscript id=\\\"prefab:initial-data\\\" type=\\\"application/json\\\"\u003e{\\n  \\\"$prefab\\\": {\\n    \\\"version\\\": \\\"0.2\\\"\\n  },\\n  \\\"view\\\": {\\n    \\\"cssClass\\\": \\\"pf-app-root\\\",\\n    \\\"type\\\": \\\"Div\\\",\\n    \\\"children\\\": [\\n      {\\n        \\\"cssClass\\\": \\\"gap-4 p-6\\\",\\n        \\\"type\\\": \\\"Column\\\",\\n        \\\"children\\\": [\\n          {\\n            \\\"type\\\": \\\"DataTable\\\",\\n            \\\"columns\\\": [\\n              {\\n                \\\"key\\\": \\\"name\\\",\\n                \\\"header\\\": \\\"Name\\\",\\n                \\\"sortable\\\": true\\n              },\\n              {\\n                \\\"key\\\": \\\"role\\\",\\n                \\\"header\\\": \\\"Role\\\",\\n                \\\"sortable\\\": true\\n              },\\n              {\\n                \\\"key\\\": \\\"dept\\\",\\n                \\\"header\\\": \\\"Dept\\\",\\n                \\\"sortable\\\": true\\n              }\\n            ],\\n            \\\"rows\\\": [\\n              {\\n                \\\"name\\\": \\\"Alice Chen\\\",\\n                \\\"role\\\": \\\"Staff Engineer\\\",\\n                \\\"dept\\\": \\\"Platform\\\"\\n              },\\n              {\\n                \\\"name\\\": \\\"Bob Martinez\\\",\\n                \\\"role\\\": \\\"Lead Designer\\\",\\n                \\\"dept\\\": \\\"Design\\\"\\n              },\\n              {\\n                \\\"name\\\": \\\"Carol Johnson\\\",\\n                \\\"role\\\": \\\"Senior Engineer\\\",\\n                \\\"dept\\\": \\\"Platform\\\"\\n              },\\n              {\\n                \\\"name\\\": \\\"David Kim\\\",\\n                \\\"role\\\": \\\"Product Manager\\\",\\n                \\\"dept\\\": \\\"Product\\\"\\n              },\\n              {\\n                \\\"name\\\": \\\"Eva Mueller\\\",\\n                \\\"role\\\": \\\"Engineer\\\",\\n                \\\"dept\\\": \\\"Platform\\\"\\n              },\\n              {\\n                \\\"name\\\": \\\"Frank Lee\\\",\\n                \\\"role\\\": \\\"Data Scientist\\\",\\n                \\\"dept\\\": \\\"ML\\\"\\n              },\\n              {\\n                \\\"name\\\": \\\"Grace Park\\\",\\n                \\\"role\\\": \\\"Eng Manager\\\",\\n                \\\"dept\\\": \\\"Platform\\\"\\n              }\\n            ],\\n            \\\"search\\\": true,\\n            \\\"paginated\\\": false,\\n            \\\"pageSize\\\": 10\\n          }\\n        ]\\n      }\\n    ]\\n  }\\n}\u003c/script\u003e\\n\u003c/body\u003e\\n\u003c/html\u003e\",\"hitchhikers\":\"\u003c!doctype html\u003e\\n\u003chtml lang=\\\"en\\\"\u003e\\n\u003chead\u003e\\n  \u003ctitle\u003ePrefab Showcase\u003c/title\u003e\\n  \u003cmeta charset=\\\"UTF-8\\\"\u003e\\n  \u003cmeta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1.0\\\"\u003e\\n  \u003clink rel=\\\"stylesheet\\\" crossorigin href=\\\"https://cdn.jsdelivr.net/npm/@prefecthq/[email protected]/dist/app/renderer.css\\\"\u003e\\n  \u003cscript type=\\\"module\\\" crossorigin src=\\\"https://cdn.jsdelivr.net/npm/@prefecthq/[email protected]/dist/app/renderer.js\\\"\u003e\u003c/script\u003e\\n\u003cstyle\u003ehtml, body, #root { background: transparent !important; }\u003c/style\u003e\u003c/head\u003e\\n\u003cbody\u003e\\n  \u003cdiv id=\\\"root\\\" style=\\\"max-width:64rem;margin:0 auto;padding:2rem\\\"\u003e\u003c/div\u003e\\n  \u003cscript id=\\\"prefab:initial-data\\\" type=\\\"application/json\\\"\u003e{\\n  \\\"$prefab\\\": {\\n    \\\"version\\\": \\\"0.2\\\"\\n  },\\n  \\\"view\\\": {\\n    \\\"cssClass\\\": \\\"pf-app-root\\\",\\n    \\\"onMount\\\": {\\n      \\\"action\\\": \\\"setInterval\\\",\\n      \\\"duration\\\": 400,\\n      \\\"onTick\\\": {\\n        \\\"action\\\": \\\"setState\\\",\\n        \\\"key\\\": \\\"ctx_t
492ick\\\",\\n        \\\"value\\\": \\\"{{ ctx_tick + 1 }}\\\"\\n      }\\n    },\\n    \\\"type\\\": \\\"Div\\\",\\n    \\\"children\\\": [\\n      {\\n        \\\"cssClass\\\": \\\"gap-4 grid-cols-1 md:grid-cols-2 lg:grid-cols-4\\\",\\n        \\\"type\\\": \\\"Grid\\\",\\n        \\\"children\\\": [\\n          {\\n            \\\"cssClass\\\": \\\"gap-4\\\",\\n            \\\"type\\\": \\\"Column\\\",\\n            \\\"children\\\": [\\n              {\\n                \\\"type\\\": \\\"Card\\\",\\n                \\\"children\\\": [\\n                  {\\n                    \\\"type\\\": \\\"CardHeader\\\",\\n                    \\\"children\\\": [\\n                      {\\n                        \\\"type\\\": \\\"CardTitle\\\",\\n                        \\\"content\\\": \\\"Register Towel\\\"\\n                      },\\n                      {\\n                        \\\"type\\\": \\\"CardDescription\\\",\\n                        \\\"content\\\": \\\"The most important item in the galaxy\\\"\\n                      }\\n                    ]\\n                  },\\n                  {\\n                    \\\"type\\\": \\\"CardContent\\\",\\n                    \\\"children\\\": [\\n                      {\\n                        \\\"cssClass\\\": \\\"gap-3\\\",\\n                        \\\"type\\\": \\\"Column\\\",\\n                        \\\"children\\\": [\\n                          {\\n                            \\\"name\\\": \\\"combobox_1\\\",\\n                            \\\"type\\\": \\\"Combobox\\\",\\n                            \\\"placeholder\\\": \\\"Type...\\\",\\n                            \\\"searchPlaceholder\\\": \\\"Search types...\\\",\\n                            \\\"disabled\\\": false,\\n                            \\\"invalid\\\": false,\\n                            \\\"children\\\": [\\n                              {\\n                                \\\"type\\\": \\\"ComboboxOption\\\",\\n                                \\\"value\\\": \\\"bath\\\",\\n                                \\\"label\\\": \\\"Bath\\\",\\n                                \\\"disabled\\\": false\\n                              },\\n                              {\\n                                \\\"type\\\": \\\"ComboboxOption\\\",\\n                                \\\"value\\\": \\\"beach\\\",\\n                                \\\"label\\\": \\\"Beach\\\",\\n                                \\\"disabled\\\": false\\n                              },\\n                              {\\n                                \\\"type\\\": \\\"ComboboxOption\\\",\\n                                \\\"value\\\": \\\"interstellar\\\",\\n                                \\\"label\\\": \\\"Interstellar\\\",\\n                                \\\"disabled\\\": false\\n                              },\\n                              {\\n                                \\\"type\\\": \\\"ComboboxOption\\\",\\n                                \\\"value\\\": \\\"micro\\\",\\n                                \\\"label\\\": \\\"Microfiber\\\",\\n                                \\\"disabled\\\": false\\n                              }\\n                            ]\\n                          },\\n                          {\\n                            \\\"name\\\": \\\"datepicker_1\\\",\\n                            \\\"type\\\": \\\"DatePicker\\\",\\n                            \\\"placeholder\\\": \\\"Registration date\\\"\\n                          }\\n                        ]\\n                      }\\n                    ]\\n                  },\\n                  {\\n                    \\\"type\\\": \\\"CardFooter\\\",\\n                    \\\"children\\\": [\\n                      {\\n                        \\\"cssClass\\\": \\\"gap-2\\\",\\n                        \\\"type\\\": \\\"Row\\\",\\n                        \\\"children\\\": [\\n                          {\\n                            \\\"type\\\": \\\"Dialog\\\",\\n                            \\\"title\\\": \\\"Towel Registered!\\\",\\n                            \\\"description\\\": \\\"Your towel has been added to the galactic registry.\\\",\\n                            \\\"dismissible\\\": true,\\n                            \\\"children\\\": [\\n                              {\\n                                \\\"type\\\": \\\"Button\\\",\\n                                \\\"label\\\": \\\"Register\\\",\\n                                \\\"variant\\\": \\\"default\\\",\\n                                \\\"size\\\": \\\"default\\\",\\n                                \\\"disabled\\\": false\\n                              },\\n                              {\\n                                \\\"content\\\": \\\"Don't forget to bring it.\\\",\\n                                \\\"type\\\": \\\"Text\\\"\\n                              }\\n                            ]\\n                          },\\n                          {\\n                            \\\"type\\\": \\\"Button\\\",\\n                            \\\"label\\\": \\\"Cancel\\\",\\n                            \\\"variant\\\": \\\"outline\\\",\\n                            \\\"size\\\": \\\"default\\\",\\n                            \\\"disabled\\\": false\\n                          }\\n                        ]\\n                      }\\n                    ]\\n                  }\\n                ]\\n              },\\n              {\\n                \\\"type\\\": \\\"Condition\\\",\\n                \\\"cases\\\": [\\n                  {\\n                    \\\"when\\\": \\\"{{ !pressed }}\\\",\\n                    \\\"children\\\": [\\n                      {\\n                        \\\"type\\\": \\\"Button\\\",\\n                        \\\"label\\\": \\\"This is probably the best button to press.\\\",\\n                        \\\"variant\\\": \\\"success\\\",\\n                        \\\"size\\\": \\\"default\\\",\\n                        \\\"disabled\\\": false,\\n                        \\\"onClick\\\": {\\n                          \\\"action\\\": \\\"setState\\\",\\n                          \\\"key\\\": \\\"pressed\\\",\\n                          \\\"value\\\": true\\n                        }\\n                      }\\n                    ]\\n                  }\\n                ],\\n                \\\"else\\\": [\\n                  {\\n                    \\\"type\\\": \\\"Button\\\",\\n                    \\\"label\\\": \\\"Please do not press this button again.\\\",\\n                    \\\"variant\\\": \\\"destructive\\\",\\n                    \\\"size\\\": \\\"default\\\",\\n                    \\\"disabled\\\": false,\\n                    \\\"onClick\\\": {\\n                      \\\"action\\\": \\\"setState\\\",\\n                      \\\"key\\\": \\\"pressed\\\",\\n                      \\\"value\\\": false\\n                    }\\n                  }\\n                ]\\n              },\\n              {\\n                \\\"type\\\": \\\"Card\\\",\\n                \\\"children\\\": [\\n                  {\\n                    \\\"type\\\": \\\"CardHeader\\\",\\n                    \\\"children\\\": [\\n                      {\\n                        \\\"type\\\": \\\"CardTitle\\\",\\n                        \\\"content\\\": \\\"Ship Status\\\"\\n                      }\\n                    ]\\n                  },\\n                  {\\n                    \\\"type\\\": \\\"CardContent\\\",\\n                    \\\"children\\\": [\\n                      {\\n                        \\\"cssClass\\\": \\\"gap-3\\\",\\n                        \\\"type\\\": \\\"Column\\\",\\n                        \\\"children\\\": [\\n                          {\\n                            \\\"cssClass\\\": \\\"items-center justify-between\\\",\\n                            \\\"type\\\": \\\"Row\\\",\\n                            \\\"children\\\": [\\n                              {\\n                                \\\"content\\\": \\\"heart-of-gold\\\",\\n                                \\\"type\\\": \\\"Text\\\"\\n                              },\\n                              {\\n                                \\\"type\\\": \\\"HoverCard\\\",\\n                                \\\"openDelay\\\": 0,\\n                                \\\"closeDelay\\\": 200,\\n                                \\\"children\\\": [\\n                                  {\\n                                    \\\"type\\\": \\\"Badge\\\",\\n                                    \\\"label\\\": \\\"In Orbit\\\",\\n                                    \\\"variant\\\": \\\"default\\\"\\n                                  },\\n                                  {\\n                                    \\\"cssClass\\\": \\\"gap-2\\\",\\n                                    \\\"type\\\": \\\"Column\\\",\\n                                    \\\"children\\\": [\\n                                      {\\n                                        \\\"content\\\": \\\"heart-of-gold\\\",\\n                                        \\\"type\\\": \\\"Text\\\"\\n                                      },\\n                                      {\\n                                        \\\"content\\\": \\\"Deployed 2h ago\\\",\\n                                        \\\"type\\\": \\\"Muted\\\"\\n                                      },\\n                                      {\\n                                        \\\"type\\\": \\\"Progress\\\",\\n                                        \\\"value\\\": 100.0,\\n                                        \\\"max\\\": 100.0,\\n                                        \\\"variant\\\": \\\"success\\\",\\n                                        \\\"size\\\": \\\"default\\\"\\n                                      }\\n                                    ]\\n                                  }\\n                                ]\\n                              }\\n                            ]\\n                          },\\n                          {\\n                            \\\"cssClass\\\": \\\"pf-progress-flat\\\",\\n                            \\\"type\\\": \\\"Progress\\\",\\n                            \\\"value\\\": 100.0,\\n                            \\\"max\\\": 100.0,\\n                            \\\"variant\\\": \\\"default\\\",\\n                            \\\"size\\\": \\\"default\\\",\\n                            \\\"indicatorClass\\\": \\\"bg-yellow-400\\\"\\n                          },\\n                          {\\n                            \\\"cssClass\\\": \\\"items-center justify-between\\\",\\n                            \\\"type\\\": \\\"Row\\\",\\n                            \\\"children\\\": [\\n                              {\\n                                \\\"content\\\": \\\"vogon-poetry\\\",\\n                                \\\"type\\\": \\\"Text\\\"\\n                              },\\n                              {\\n                                \\\"type\\\": \\\"Tooltip\\\",\\n                                \\\"content\\\": \\\"64% \\\\u2014 ETA 12 min\\\",\\n                                \\\"delay\\\": 0,\\n                                \\\"children\\\": [\\n                                  {\\n                                    \\\"type\\\": \\\"Badge\\\",\\n                                    \\\"variant\\\": \\\"secondary\\\",\\n                                    \\\"children\\\": [\\n                                      {\\n                                        \\\"type\\\": \\\"Loader\\\",\\n                                        \\\"variant\\\": \\\"spin\\\",\\n                                        \\\"size\\\": \\\"sm\\\"\\n                                      },\\n                                      {\\n                                        \\\"content\\\": \\\"Deploying\\\",\\n                                        \\\"type\\\": \\\"Text\\\"\\n                                      }\\n                                    ]\\n                                  }\\n                                ]\\n                              }\\n                            ]\\n                          },\\n                          {\\n                            \\\"type\\\": \\\"Progress\\\",\\n                            \\\"value\\\": 64.0,\\n                            \\\"max\\\": 100.0,\\n                            \\\"variant\\\": \\\"default\\\",\\n                            \\\"size\\\": \\\"default\\\"\\n                          },\\n                          {\\n                            \\\"cssClass\\\": \\\"items-center justify-between\\\",\\n                            \\\"type\\\": \\\"Row\\\",\\n                            \\\"children\\\": [\\n                              {\\n                                \\\"content\\\": \\\"deep-thought\\\",\\n                                \\\"type\\\": \\\"Text\\\"\\n                              },\\n                              {\\n                                \\\"type\\\": \\\"Tooltip\\\",\\n                                \\\"content\\\": \\\"Computing... 7.5 million years remaining\\\",\\n                                \\\"delay\\\": 0,\\n                                \\\"children\\\": [\\n                                  {\\n                                    \\\"type\\\": \\\"Badge\\\",\\n                                    \\\"variant\\\": \\\"outline\\\",\\n                                    \\\"children\\\": [\\n                                      {\\n                                        \\\"type\\\": \\\"Loader\\\",\\n                                        \\\"variant\\\": \\\"ios\\\",\\n                                        \\\"size\\\": \\\"sm\\\"\\n                                      },\\n                                      {\\n                                        \\\"content\\\": \\\"Soon...\\\",\\n                                        \\\"type\\\": \\\"Text\\\"\\n                                      }\\n                                    ]\\n                                  }\\n                                ]\\n                              }\\n                            ]\\n                          },\\n                          {\\n                            \\\"type\\\": \\\"Progress\\\",\\n                            \\\"value\\\": 12.0,\\n                            \\\"max\\\": 100.0,\\n                            \\\"variant\\\": \\\"default\\\",\\n                            \\\"size\\\": \\\"default\\\"\\n                          }\\n                        ]\\n                      }\\n                    ]\\n                  }\\n                ]\\n              },\\n              {\\n                \\\"type\\\": \\\"Card\\\",\\n                \\\"children\\\": [\\n                  {\\n                    \\\"type\\\": \\\"CardHeader\\\",\\n                    \\\"children\\\": [\\n                      {\\n                        \\\"type\\\": \\\"CardTitle\\\",\\n                        \\\"content\\\": \\\"Planet Ratings\\\"\\n                      }\\n                    ]\\n                  },\\n                  {\\n                    \\\"type\\\": \\\"CardContent\\\",\\n                    \\\"children\\\": [\\n                      {\\n                        \\\"type\\\": \\\"RadarChart\\\",\\n                        \\\"data\\\": [\\n                          {\\n                            \\\"axis\\\": \\\"Views\\\",\\n                            \\\"earth\\\": 30,\\n                            \\\"mag\\\": 95\\n                          },\\n                          {\\n                            \\\"axis\\\": \\\"Fjords\\\",\\n                            \\\"earth\\\": 65,\\n                            \\\"mag\\\": 100\\n                          },\\n                          {\\n                            \\\"axis\\\": \\\"Pubs\\\",\\n                            \\\"earth\\\": 90,\\n                            \\\"mag\\\": 10\\n                          },\\n                          {\\n                            \\\"axis\\\": \\\"Mice\\\",\\n                            \\\"earth\\\": 40,\\n                            \\\"mag\\\": 85\\n                          
492},\\n                          {\\n                            \\\"axis\\\": \\\"Tea\\\",\\n                            \\\"earth\\\": 95,\\n                            \\\"mag\\\": 15\\n                          },\\n                          {\\n                            \\\"axis\\\": \\\"Safety\\\",\\n                            \\\"earth\\\": 45,\\n                            \\\"mag\\\": 70\\n                          }\\n                        ],\\n                        \\\"series\\\": [\\n                          {\\n                            \\\"dataKey\\\": \\\"earth\\\",\\n                            \\\"label\\\": \\\"Earth\\\"\\n                          },\\n                          {\\n                            \\\"dataKey\\\": \\\"mag\\\",\\n                            \\\"label\\\": \\\"Magrathea\\\"\\n                          }\\n                        ],\\n                        \\\"axisKey\\\": \\\"axis\\\",\\n                        \\\"height\\\": 200,\\n                        \\\"filled\\\": true,\\n                        \\\"showDots\\\": false,\\n                        \\\"showLegend\\\": true,\\n                        \\\"showTooltip\\\": true,\\n                        \\\"animate\\\": true,\\n                        \\\"showGrid\\\": true\\n                      }\\n                    ]\\n                  }\\n                ]\\n              }\\n            ]\\n          },\\n          {\\n            \\\"cssClass\\\": \\\"gap-4\\\",\\n            \\\"type\\\": \\\"Column\\\",\\n            \\\"children\\\": [\\n              {\\n                \\\"type\\\": \\\"Card\\\",\\n                \\\"children\\\": [\\n                  {\\n                    \\\"type\\\": \\\"CardHeader\\\",\\n                    \\\"children\\\": [\\n                      {\\n                        \\\"type\\\": \\\"CardTitle\\\",\\n                        \\\"content\\\": \\\"Survival Odds\\\"\\n                      }\\n                    ]\\n                  },\\n                  {\\n                    \\\"cssClass\\\": \\\"w-fit mx-auto\\\",\\n                    \\\"type\\\": \\\"CardContent\\\",\\n                    \\\"children\\\": [\\n                      {\\n                        \\\"type\\\": \\\"Ring\\\",\\n                        \\\"value\\\": 42.0,\\n                        \\\"min\\\": 0,\\n                        \\\"max\\\": 100,\\n                        \\\"label\\\": \\\"42%\\\",\\n                        \\\"variant\\\": \\\"info\\\",\\n                        \\\"size\\\": \\\"lg\\\",\\n                        \\\"thickness\\\": 12.0,\\n                        \\\"indicatorClass\\\": \\\"group-hover:drop-shadow-[0_0_24px_rgba(59,130,246,0.9)]\\\"\\n                      }\\n                    ]\\n                  }\\n                ]\\n              },\\n              {\\n                \\\"type\\\": \\\"Card\\\",\\n                \\\"children\\\": [\\n                  {\\n                    \\\"type\\\": \\\"CardHeader\\\",\\n                    \\\"children\\\": [\\n                      {\\n                        \\\"cssClass\\\": \\\"gap-2 items-center\\\",\\n                        \\\"type\\\": \\\"Row\\\",\\n                        \\\"children\\\": [\\n                          {\\n                            \\\"type\\\": \\\"CardTitle\\\",\\n                            \\\"content\\\": \\\"Improbability Drive\\\"\\n                          },\\n                          {\\n                            \\\"cssClass\\\": \\\"text-blue-500\\\",\\n                            \\\"type\\\": \\\"Loader\\\",\\n                            \\\"variant\\\": \\\"pulse\\\",\\n                            \\\"size\\\": \\\"sm\\\"\\n                          }\\n                        ]\\n                      }\\n                    ]\\n                  },\\n                  {\\n                    \\\"type\\\": \\\"CardContent\\\",\\n                    \\\"children\\\": [\\n                      {\\n                        \\\"cssClass\\\": \\\"gap-2\\\",\\n                        \\\"type\\\": \\\"Column\\\",\\n                        \\\"children\\\": [\\n                          {\\n                            \\\"name\\\": \\\"improbability\\\",\\n                            \\\"value\\\": 42.0,\\n                            \\\"type\\\": \\\"Slider\\\",\\n                            \\\"min\\\": 0.0,\\n                            \\\"max\\\": 100.0,\\n                            \\\"disabled\\\": false,\\n                            \\\"size\\\": \\\"default\\\"\\n                          },\\n                          {\\n                            \\\"cssClass\\\": \\\"items-center justify-between\\\",\\n                            \\\"type\\\": \\\"Row\\\",\\n                            \\\"children\\\": [\\n                              {\\n                                \\\"content\\\": \\\"Probable\\\",\\n                                \\\"type\\\": \\\"Muted\\\"\\n                              },\\n                              {\\n                                \\\"content\\\": \\\"Infinite\\\",\\n                                \\\"type\\\": \\\"Muted\\\"\\n                              }\\n                            ]\\n                          }\\n                        ]\\n                      }\\n                    ]\\n                  }\\n                ]\\n              },\\n              {\\n                \\\"type\\\": \\\"Carousel\\\",\\n                \\\"visible\\\": 1,\\n                \\\"gap\\\": 16,\\n                \\\"direction\\\": \\\"up\\\",\\n                \\\"loop\\\": true,\\n                \\\"autoAdvance\\\": 3000,\\n                \\\"continuous\\\": false,\\n                \\\"speed\\\": 2,\\n                \\\"effect\\\": \\\"slide\\\",\\n                \\\"dimInactive\\\": false,\\n                \\\"showControls\\\": false,\\n                \\\"controlsPosition\\\": \\\"outside\\\",\\n                \\\"showDots\\\": false,\\n                \\\"pauseOnHover\\\": true,\\n                \\\"align\\\": \\\"start\\\",\\n                \\\"slidesToScroll\\\": 1,\\n                \\\"drag\\\": true,\\n                \\\"children\\\": [\\n                  {\\n                    \\\"type\\\": \\\"Alert\\\",\\n                    \\\"variant\\\": \\\"success\\\",\\n                    \\\"icon\\\": \\\"circle-check\\\",\\n                    \\\"children\\\": [\\n                      {\\n                        \\\"type\\\": \\\"AlertTitle\\\",\\n                        \\\"content\\\": \\\"Don't Panic\\\"\\n                      },\\n                      {\\n                        \\\"type\\\": \\\"AlertDescription\\\",\\n                        \\\"content\\\": \\\"Normality achieved.\\\"\\n                      }\\n                    ]\\n                  },\\n                  {\\n                    \\\"type\\\": \\\"Alert\\\",\\n                    \\\"variant\\\": \\\"destructive\\\",\\n                    \\\"icon\\\": \\\"triangle-alert\\\",\\n                    \\\"children\\\": [\\n                      {\\n                        \\\"type\\\": \\\"AlertTitle\\\",\\n                        \\\"content\\\": \\\"Display Department\\\"\\n                      },\\n                      {\\n                        \\\"type\\\": \\\"AlertDescription\\\",\\n                        \\\"content\\\": \\\"Beware of the leopard.\\\"\\n                      }\\n                    ]\\n                  }\\n                ]\\n              },\\n              {\\n                \\\"type\\\": \\\"Card\\\",\\n                \\\"children\\\": [\\n                  {\\n                    \\\"type\\\": \\\"CardHeader\\\",\\n                    \\\"children\\\": [\\n                      {\\n                        \\\"type\\\": \\\"CardTitle\\\",\\n                        \\\"content\\\": \\\"Prefect Horizon Config\\\"\\n                      }\\n                    ]\\n                  },\\n                  {\\n                    \\\"type\\\": \\\"CardContent\\\",\\n                    \\\"children\\\": [\\n                      {\\n                        \\\"cssClass\\\": \\\"gap-3\\\",\\n                        \\\"type\\\": \\\"Column\\\",\\n                        \\\"children\\\": [\\n                          {\\n                            \\\"name\\\": \\\"autoscale\\\",\\n                            \\\"value\\\": true,\\n                            \\\"type\\\": \\\"Switch\\\",\\n                            \\\"label\\\": \\\"Auto-scale agents\\\",\\n                            \\\"size\\\": \\\"default\\\",\\n                            \\\"disabled\\\": false,\\n                            \\\"required\\\": false\\n                          },\\n                          {\\n                            \\\"type\\\": \\\"Separator\\\",\\n                            \\\"orientation\\\": \\\"horizontal\\\"\\n                          },\\n                          {\\n                            \\\"name\\\": \\\"code_mode\\\",\\n                            \\\"value\\\": true,\\n                            \\\"type\\\": \\\"Switch\\\",\\n                            \\\"label\\\": \\\"Code Mode\\\",\\n                            \\\"size\\\": \\\"default\\\",\\n                            \\\"disabled\\\": false,\\n                            \\\"required\\\": false\\n                          },\\n                          {\\n                            \\\"type\\\": \\\"Separator\\\",\\n                            \\\"orientation\\\": \\\"horizontal\\\"\\n                          },\\n                          {\\n                            \\\"name\\\": \\\"cache\\\",\\n                            \\\"value\\\": false,\\n                            \\\"type\\\": \\\"Switch\\\",\\n                            \\\"label\\\": \\\"Tool call caching\\\",\\n                            \\\"size\\\": \\\"default\\\",\\n                            \\\"disabled\\\": false,\\n                            \\\"required\\\": false\\n                          }\\n                        ]\\n                      }\\n                    ]\\n                  },\\n                  {\\n                    \\\"type\\\": \\\"CardFooter\\\",\\n                    \\\"children\\\": [\\n                      {\\n                        \\\"type\\\": \\\"Button\\\",\\n                        \\\"label\\\": \\\"Save Preferences\\\",\\n                        \\\"variant\\\": \\\"default\\\",\\n                        \\\"size\\\": \\\"default\\\",\\n                        \\\"disabled\\\": false,\\n                        \\\"onClick\\\": {\\n                          \\\"action\\\": \\\"showToast\\\",\\n                          \\\"message\\\": \\\"Preferences saved!\\\"\\n                        }\\n                      }\\n                    ]\\n                  }\\n                ]\\n              },\\n              {\\n                \\\"type\\\": \\\"Card\\\",\\n                \\\"children\\\": [\\n                  {\\n                    \\\"type\\\": \\\"CardHeader\\\",\\n                    \\\"children\\\": [\\n                      {\\n                        \\\"type\\\": \\\"CardTitle\\\",\\n                        \\\"content\\\": \\\"Travel Class\\\"\\n                      }\\n                    ]\\n                  },\\n                  {\\n                    \\\"type\\\": \\\"CardContent\\\",\\n                    \\\"children\\\": [\\n                      {\\n                        \\\"name\\\": \\\"travel_class\\\",\\n                        \\\"type\\\": \\\"RadioGroup\\\",\\n                        \\\"children\\\": [\\n                          {\\n                            \\\"name\\\": \\\"radio_1\\\",\\n                            \\\"value\\\": false,\\n                            \\\"type\\\": \\\"Radio\\\",\\n                            \\\"option\\\": \\\"economy\\\",\\n                            \\\"label\\\": \\\"Economy\\\",\\n                            \\\"disabled\\\": false,\\n                            \\\"required\\\": false\\n                          },\\n                          {\\n                            \\\"name\\\": \\\"radio_2\\\",\\n                            \\\"value\\\": false,\\n                            \\\"type\\\": \\\"Radio\\\",\\n                            \\\"option\\\": \\\"business\\\",\\n                            \\\"label\\\": \\\"Business Class\\\",\\n                            \\\"disabled\\\": false,\\n                            \\\"required\\\": false\\n                          },\\n                          {\\n                            \\\"name\\\": \\\"radio_3\\\",\\n                            \\\"value\\\": true,\\n                            \\\"type\\\": \\\"Radio\\\",\\n                            \\\"option\\\": \\\"improbability\\\",\\n                            \\\"label\\\": \\\"Infinite Improbability\\\",\\n                            \\\"disabled\\\": false,\\n                            \\\"required\\\": false\\n                          }\\n                        ]\\n                      }\\n                    ]\\n                  }\\n                ]\\n              }\\n            ]\\n          },\\n          {\\n            \\\"cssClass\\\": \\\"md:col-span-2\\\",\\n            \\\"type\\\": \\\"GridItem\\\",\\n            \\\"colSpan\\\": 1,\\n            \\\"rowSpan\\\": 1,\\n            \\\"children\\\": [\\n              {\\n                \\\"cssClass\\\": \\\"gap-4\\\",\\n                \\\"type\\\": \\\"Column\\\",\\n                \\\"children\\\": [\\n                  {\\n                    \\\"cssClass\\\": \\\"gap-4 grid-cols-2 h-32\\\",\\n                    \\\"type\\\": \\\"Grid\\\",\\n                    \\\"children\\\": [\\n                      {\\n                        \\\"type\\\": \\\"Card\\\",\\n                        \\\"children\\\": [\\n                          {\\n                            \\\"type\\\": \\\"CardHeader\\\",\\n                            \\\"children\\\": [\\n                              {\\n                                \\\"type\\\": \\\"CardTitle\\\",\\n                                \\\"content\\\": \\\"Context Window\\\"\\n                              }\\n                            ]\\n                          },\\n                          {\\n                            \\\"type\\\": \\\"CardContent\\\",\\n                            \\\"children\\\": [\\n                              {\\n                                \\\"cssClass\\\": \\\"gap-6 justify-center h-full\\\",\\n                                \\\"type\\\": \\\"Column\\\",\\n                                \\\"children\\\": [\\n                                  {\\n                                    \\\"cssClass\\\": \\\"items-center justify-between\\\",\\n                                    \\\"type\\\": \\\"Row\\\",\\n                                    \\\"children\\\": [\\n                                      {\\n                                        \\\"content\\\": \\\"{{ ctx_tick % 20 * 3 + 20 }}% used\\\",\\n                                        \\\"type\\\": \\\"Text\\\"\\n                                      },\\n                                      {\\n                                        \\\"content\\\": \\\"{{ (ctx_tick % 20 * 3 + 20) * 2 }}k / 200k tokens\\\",\\n                                        \\\"type\\\": \\\"Muted\\\"\\n                                      }\\n                                    ]\\n                                  },\\n                                  {\\n                                    \\\"type\\\": \\\"Tooltip\\\",\\n                                    \\\"content\\\": \\\"Auto-compact buffer: 12%\\\",\\n                                    \\\"delay\\\": 0,\\n                                    \\\"children\\\": [\\n                                      {\\n                                        \\\"type\\\": \\\"Progress\\\",\\n                                        \\\"value\\\": \\\"{{ ctx_tick % 20 * 3 + 20 }}\\\",\\n                                        \\\"max\\\": 100.0,\\n                                        \\
492\"variant\\\": \\\"{{ ctx_tick % 20 * 3 + 20 \u003e 70 ? 'destructive' : (ctx_tick % 20 * 3 + 20 \u003c= 33 ? 'success' : 'default') }}\\\",\\n                                        \\\"size\\\": \\\"default\\\"\\n                                      }\\n                                    ]\\n                                  }\\n                                ]\\n                              }\\n                            ]\\n                          }\\n                        ]\\n                      },\\n                      {\\n                        \\\"cssClass\\\": \\\"pb-0 gap-0\\\",\\n                        \\\"type\\\": \\\"Card\\\",\\n                        \\\"children\\\": [\\n                          {\\n                            \\\"type\\\": \\\"CardContent\\\",\\n                            \\\"children\\\": [\\n                              {\\n                                \\\"type\\\": \\\"Metric\\\",\\n                                \\\"label\\\": \\\"Fjords designed\\\",\\n                                \\\"value\\\": \\\"1,847\\\",\\n                                \\\"delta\\\": \\\"+3 coastlines\\\"\\n                              }\\n                            ]\\n                          },\\n                          {\\n                            \\\"cssClass\\\": \\\"h-16\\\",\\n                            \\\"type\\\": \\\"Sparkline\\\",\\n                            \\\"data\\\": [\\n                              820,\\n                              950,\\n                              1100,\\n                              980,\\n                              1250,\\n                              1400,\\n                              1350,\\n                              1500,\\n                              1680,\\n                              1847\\n                            ],\\n                            \\\"variant\\\": \\\"success\\\",\\n                            \\\"fill\\\": true,\\n                            \\\"curve\\\": \\\"linear\\\",\\n                            \\\"strokeWidth\\\": 1.5\\n                          }\\n                        ]\\n                      }\\n                    ]\\n                  },\\n                  {\\n                    \\\"type\\\": \\\"Card\\\",\\n                    \\\"children\\\": [\\n                      {\\n                        \\\"type\\\": \\\"CardHeader\\\",\\n                        \\\"children\\\": [\\n                          {\\n                            \\\"type\\\": \\\"CardTitle\\\",\\n                            \\\"content\\\": \\\"Towel Incidents\\\"\\n                          }\\n                        ]\\n                      },\\n                      {\\n                        \\\"type\\\": \\\"CardContent\\\",\\n                        \\\"children\\\": [\\n                          {\\n                            \\\"type\\\": \\\"BarChart\\\",\\n                            \\\"data\\\": [\\n                              {\\n                                \\\"month\\\": \\\"Jan\\\",\\n                                \\\"lost\\\": 8,\\n                                \\\"found\\\": 5\\n                              },\\n                              {\\n                                \\\"month\\\": \\\"Feb\\\",\\n                                \\\"lost\\\": 24,\\n                                \\\"found\\\": 15\\n                              },\\n                              {\\n                                \\\"month\\\": \\\"Mar\\\",\\n                                \\\"lost\\\": 12,\\n                                \\\"found\\\": 28\\n                              },\\n                              {\\n                                \\\"month\\\": \\\"Apr\\\",\\n                                \\\"lost\\\": 35,\\n                                \\\"found\\\": 19\\n                              },\\n                              {\\n                                \\\"month\\\": \\\"May\\\",\\n                                \\\"lost\\\": 18,\\n                                \\\"found\\\": 38\\n                              },\\n                              {\\n                                \\\"month\\\": \\\"Jun\\\",\\n                                \\\"lost\\\": 42,\\n                                \\\"found\\\": 30\\n                              }\\n                            ],\\n                            \\\"series\\\": [\\n                              {\\n                                \\\"dataKey\\\": \\\"lost\\\",\\n                                \\\"label\\\": \\\"Lost\\\"\\n                              },\\n                              {\\n                                \\\"dataKey\\\": \\\"found\\\",\\n                                \\\"label\\\": \\\"Found\\\"\\n                              }\\n                            ],\\n                            \\\"xAxis\\\": \\\"month\\\",\\n                            \\\"height\\\": 200,\\n                            \\\"stacked\\\": false,\\n                            \\\"horizontal\\\": false,\\n                            \\\"barRadius\\\": 4,\\n                            \\\"showLegend\\\": true,\\n                            \\\"showTooltip\\\": true,\\n                            \\\"animate\\\": true,\\n                            \\\"showGrid\\\": true,\\n                            \\\"showYAxis\\\": true,\\n                            \\\"yAxisFormat\\\": \\\"auto\\\"\\n                          }\\n                        ]\\n                      }\\n                    ]\\n                  },\\n                  {\\n                    \\\"cssClass\\\": \\\"gap-4 grid-cols-2\\\",\\n                    \\\"type\\\": \\\"Grid\\\",\\n                    \\\"children\\\": [\\n                      {\\n                        \\\"cssClass\\\": \\\"gap-4\\\",\\n                        \\\"type\\\": \\\"Column\\\",\\n                        \\\"children\\\": [\\n                          {\\n                            \\\"type\\\": \\\"Card\\\",\\n                            \\\"children\\\": [\\n                              {\\n                                \\\"type\\\": \\\"CardContent\\\",\\n                                \\\"children\\\": [\\n                                  {\\n                                    \\\"cssClass\\\": \\\"gap-2\\\",\\n                                    \\\"type\\\": \\\"Column\\\",\\n                                    \\\"children\\\": [\\n                                      {\\n                                        \\\"name\\\": \\\"checkbox_1\\\",\\n                                        \\\"value\\\": true,\\n                                        \\\"type\\\": \\\"Checkbox\\\",\\n                                        \\\"label\\\": \\\"Towel packed\\\",\\n                                        \\\"disabled\\\": false,\\n                                        \\\"required\\\": false\\n                                      },\\n                                      {\\n                                        \\\"name\\\": \\\"checkbox_2\\\",\\n                                        \\\"value\\\": true,\\n                                        \\\"type\\\": \\\"Checkbox\\\",\\n                                        \\\"label\\\": \\\"Guide charged\\\",\\n                                        \\\"disabled\\\": false,\\n                                        \\\"required\\\": false\\n                                      },\\n                                      {\\n                                        \\\"name\\\": \\\"checkbox_3\\\",\\n                                        \\\"value\\\": false,\\n                                        \\\"type\\\": \\\"Checkbox\\\",\\n                                        \\\"label\\\": \\\"Babel fish inserted\\\",\\n                                        \\\"disabled\\\": false,\\n                                        \\\"required\\\": false\\n                                      }\\n                                    ]\\n                                  }\\n                                ]\\n                              }\\n                            ]\\n                          },\\n                          {\\n                            \\\"type\\\": \\\"Card\\\",\\n                            \\\"children\\\": [\\n                              {\\n                                \\\"type\\\": \\\"CardHeader\\\",\\n                                \\\"children\\\": [\\n                                  {\\n                                    \\\"type\\\": \\\"CardTitle\\\",\\n                                    \\\"content\\\": \\\"Marvin's Mood\\\"\\n                                  }\\n                                ]\\n                              },\\n                              {\\n                                \\\"type\\\": \\\"CardContent\\\",\\n                                \\\"children\\\": [\\n                                  {\\n                                    \\\"cssClass\\\": \\\"gap-3\\\",\\n                                    \\\"type\\\": \\\"Column\\\",\\n                                    \\\"children\\\": [\\n                                      {\\n                                        \\\"content\\\": \\\"How's life?\\\",\\n                                        \\\"type\\\": \\\"P\\\"\\n                                      },\\n                                      {\\n                                        \\\"cssClass\\\": \\\"gap-2\\\",\\n                                        \\\"type\\\": \\\"Column\\\",\\n                                        \\\"children\\\": [\\n                                          {\\n                                            \\\"type\\\": \\\"Button\\\",\\n                                            \\\"label\\\": \\\"Meh\\\",\\n                                            \\\"variant\\\": \\\"default\\\",\\n                                            \\\"size\\\": \\\"default\\\",\\n                                            \\\"disabled\\\": false,\\n                                            \\\"onClick\\\": {\\n                                              \\\"action\\\": \\\"showToast\\\",\\n                                              \\\"message\\\": \\\"Noted. Enthusiasm levels nominal.\\\"\\n                                            }\\n                                          },\\n                                          {\\n                                            \\\"type\\\": \\\"Button\\\",\\n                                            \\\"label\\\": \\\"Depressed\\\",\\n                                            \\\"variant\\\": \\\"info\\\",\\n                                            \\\"size\\\": \\\"default\\\",\\n                                            \\\"disabled\\\": false,\\n                                            \\\"onClick\\\": {\\n                                              \\\"action\\\": \\\"showToast\\\",\\n                                              \\\"message\\\": \\\"I think you ought to know I'm feeling very depressed.\\\"\\n                                            }\\n                                          },\\n                                          {\\n                                            \\\"type\\\": \\\"Button\\\",\\n                                            \\\"label\\\": \\\"Don't talk to me about life\\\",\\n                                            \\\"variant\\\": \\\"warning\\\",\\n                                            \\\"size\\\": \\\"default\\\",\\n                                            \\\"disabled\\\": false,\\n                                            \\\"onClick\\\": {\\n                                              \\\"action\\\": \\\"showToast\\\",\\n                                              \\\"message\\\": \\\"Brain the size of a planet and they ask me to pick up a piece of paper.\\\"\\n                                            }\\n                                          }\\n                                        ]\\n                                      }\\n                                    ]\\n                                  }\\n                                ]\\n                              }\\n                            ]\\n                          }\\n                        ]\\n                      },\\n                      {\\n                        \\\"cssClass\\\": \\\"gap-4\\\",\\n                        \\\"type\\\": \\\"Column\\\",\\n                        \\\"children\\\": [\\n                          {\\n                            \\\"type\\\": \\\"Card\\\",\\n                            \\\"children\\\": [\\n                              {\\n                                \\\"type\\\": \\\"CardContent\\\",\\n                                \\\"children\\\": [\\n                                  {\\n                                    \\\"cssClass\\\": \\\"gap-2 items-center\\\",\\n                                    \\\"type\\\": \\\"Row\\\",\\n                                    \\\"children\\\": [\\n                                      {\\n                                        \\\"type\\\": \\\"Loader\\\",\\n                                        \\\"variant\\\": \\\"dots\\\",\\n                                        \\\"size\\\": \\\"sm\\\"\\n                                      },\\n                                      {\\n                                        \\\"content\\\": \\\"Marvin is thinking...\\\",\\n                                        \\\"type\\\": \\\"Muted\\\"\\n                                      }\\n                                    ]\\n                                  }\\n                                ]\\n                              }\\n                            ]\\n                          },\\n                          {\\n                            \\\"type\\\": \\\"Card\\\",\\n                            \\\"children\\\": [\\n                              {\\n                                \\\"type\\\": \\\"CardContent\\\",\\n                                \\\"children\\\": [\\n                                  {\\n                                    \\\"type\\\": \\\"DataTable\\\",\\n                                    \\\"columns\\\": [\\n                                      {\\n                                        \\\"key\\\": \\\"crew\\\",\\n                                        \\\"header\\\": \\\"Crew\\\",\\n                                        \\\"sortable\\\": true\\n                                      },\\n                                      {\\n                                        \\\"key\\\": \\\"species\\\",\\n                                        \\\"header\\\": \\\"Species\\\",\\n                                        \\\"sortable\\\": true\\n                                      },\\n                                      {\\n                                        \\\"key\\\": \\\"towel\\\",\\n                                        \\\"header\\\": \\\"Towel?\\\",\\n                                        \\\"sortable\\\": true\\n                                      },\\n                                      {\\n                                        \\\"key\\\": \\\"status\\\",\\n                                        \\\"header\\\": \\\"Status\\\",\\n                                        \\\"sortable\\\": true\\n                                      }\\n                                    ],\\n                                    \\\"rows\\\": [\\n                                      {\\n                                        \\\"crew\\\": \\\"Arthur Dent\\\",\\n                                        \\\"species\\\": \\\"Human\\\",\\n                                        \\\"towel\\\": \\\"Yes\\\",\\n                                        \\\"status\\\": \\\"Confused\\\"\\n                                      },\\n                                      {\\n                                        \\\"crew\\\": \\\"Ford Prefect\\\",\\n                                        \\\"species\\\": \\\"Betelgeusian\\\",\\n                                        \\\"towel\\\": \\\"Always\\\
492",\\n                                        \\\"status\\\": \\\"Drinking\\\"\\n                                      },\\n                                      {\\n                                        \\\"crew\\\": \\\"Zaphod\\\",\\n                                        \\\"species\\\": \\\"Betelgeusian\\\",\\n                                        \\\"towel\\\": \\\"Lost it\\\",\\n                                        \\\"status\\\": \\\"Presidential\\\"\\n                                      },\\n                                      {\\n                                        \\\"crew\\\": \\\"Trillian\\\",\\n                                        \\\"species\\\": \\\"Human\\\",\\n                                        \\\"towel\\\": \\\"Yes\\\",\\n                                        \\\"status\\\": \\\"Navigating\\\"\\n                                      },\\n                                      {\\n                                        \\\"crew\\\": \\\"Marvin\\\",\\n                                        \\\"species\\\": \\\"Android\\\",\\n                                        \\\"towel\\\": \\\"No point\\\",\\n                                        \\\"status\\\": \\\"Depressed\\\"\\n                                      },\\n                                      {\\n                                        \\\"crew\\\": \\\"Slartibartfast\\\",\\n                                        \\\"species\\\": \\\"Magrathean\\\",\\n                                        \\\"towel\\\": \\\"Somewhere\\\",\\n                                        \\\"status\\\": \\\"Designing\\\"\\n                                      }\\n                                    ],\\n                                    \\\"search\\\": true,\\n                                    \\\"paginated\\\": false,\\n                                    \\\"pageSize\\\": 10\\n                                  }\\n                                ]\\n                              }\\n                            ]\\n                          }\\n                        ]\\n                      }\\n                    ]\\n                  }\\n                ]\\n              }\\n            ]\\n          }\\n        ]\\n      }\\n    ]\\n  },\\n  \\\"state\\\": {\\n    \\\"ctx_tick\\\": 0,\\n    \\\"improbability\\\": 42\\n  }\\n}\u003c/script\u003e\\n\u003c/body\u003e\\n\u003c/html\u003e\",\"pie-chart\":\"\u003c!doctype html\u003e\\n\u003chtml lang=\\\"en\\\"\u003e\\n\u003chead\u003e\\n  \u003ctitle\u003ePrefab\u003c/title\u003e\\n  \u003cmeta charset=\\\"UTF-8\\\"\u003e\\n  \u003cmeta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1.0\\\"\u003e\\n  \u003clink rel=\\\"stylesheet\\\" crossorigin href=\\\"https://cdn.jsdelivr.net/npm/@prefecthq/[email protected]/dist/app/renderer.css\\\"\u003e\\n  \u003cscript type=\\\"module\\\" crossorigin src=\\\"https://cdn.jsdelivr.net/npm/@prefecthq/[email protected]/dist/app/renderer.js\\\"\u003e\u003c/script\u003e\\n\u003c/head\u003e\\n\u003cbody\u003e\\n  \u003cdiv id=\\\"root\\\" style=\\\"max-width:64rem;margin:0 auto;padding:2rem\\\"\u003e\u003c/div\u003e\\n  \u003cscript id=\\\"prefab:initial-data\\\" type=\\\"application/json\\\"\u003e{\\n  \\\"$prefab\\\": {\\n    \\\"version\\\": \\\"0.2\\\"\\n  },\\n  \\\"view\\\": {\\n    \\\"cssClass\\\": \\\"pf-app-root\\\",\\n    \\\"type\\\": \\\"Div\\\",\\n    \\\"children\\\": [\\n      {\\n        \\\"cssClass\\\": \\\"p-6\\\",\\n        \\\"type\\\": \\\"Column\\\",\\n        \\\"children\\\": [\\n          {\\n            \\\"type\\\": \\\"PieChart\\\",\\n            \\\"data\\\": [\\n              {\\n                \\\"category\\\": \\\"Bug\\\",\\n                \\\"count\\\": 42\\n              },\\n              {\\n                \\\"category\\\": \\\"Feature\\\",\\n                \\\"count\\\": 28\\n              },\\n              {\\n                \\\"category\\\": \\\"Docs\\\",\\n                \\\"count\\\": 15\\n              },\\n              {\\n                \\\"category\\\": \\\"Infra\\\",\\n                \\\"count\\\": 10\\n              }\\n            ],\\n            \\\"dataKey\\\": \\\"count\\\",\\n            \\\"nameKey\\\": \\\"category\\\",\\n            \\\"height\\\": 240,\\n            \\\"innerRadius\\\": 50,\\n            \\\"showLabel\\\": false,\\n            \\\"paddingAngle\\\": 0,\\n            \\\"showLegend\\\": true,\\n            \\\"showTooltip\\\": true,\\n            \\\"animate\\\": true\\n          }\\n        ]\\n      }\\n    ]\\n  }\\n}\u003c/script\u003e\\n\u003c/body\u003e\\n\u003c/html\u003e\",\"reactive\":\"\u003c!doctype html\u003e\\n\u003chtml lang=\\\"en\\\"\u003e\\n\u003chead\u003e\\n  \u003ctitle\u003ePrefab\u003c/title\u003e\\n  \u003cmeta charset=\\\"UTF-8\\\"\u003e\\n  \u003cmeta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1.0\\\"\u003e\\n  \u003clink rel=\\\"stylesheet\\\" crossorigin href=\\\"https://cdn.jsdelivr.net/npm/@prefecthq/[email protected]/dist/app/renderer.css\\\"\u003e\\n  \u003cscript type=\\\"module\\\" crossorigin src=\\\"https://cdn.jsdelivr.net/npm/@prefecthq/[email protected]/dist/app/renderer.js\\\"\u003e\u003c/script\u003e\\n\u003c/head\u003e\\n\u003cbody\u003e\\n  \u003cdiv id=\\\"root\\\" style=\\\"max-width:64rem;margin:0 auto;padding:2rem\\\"\u003e\u003c/div\u003e\\n  \u003cscript id=\\\"prefab:initial-data\\\" type=\\\"application/json\\\"\u003e{\\n  \\\"$prefab\\\": {\\n    \\\"version\\\": \\\"0.2\\\"\\n  },\\n  \\\"view\\\": {\\n    \\\"cssClass\\\": \\\"pf-app-root\\\",\\n    \\\"type\\\": \\\"Div\\\",\\n    \\\"children\\\": [\\n      {\\n        \\\"cssClass\\\": \\\"gap-4 p-6\\\",\\n        \\\"let\\\": {\\n          \\\"data\\\": \\\"{{ region == 'south' ? south : region == 'west' ? west : north }}\\\"\\n        },\\n        \\\"type\\\": \\\"Column\\\",\\n        \\\"children\\\": [\\n          {\\n            \\\"cssClass\\\": \\\"gap-4 items-center\\\",\\n            \\\"type\\\": \\\"Row\\\",\\n            \\\"children\\\": [\\n              {\\n                \\\"cssClass\\\": \\\"w-40\\\",\\n                \\\"name\\\": \\\"regi
492on\\\",\\n                \\\"type\\\": \\\"Select\\\",\\n                \\\"size\\\": \\\"default\\\",\\n                \\\"disabled\\\": false,\\n                \\\"required\\\": false,\\n                \\\"invalid\\\": false,\\n                \\\"children\\\": [\\n                  {\\n                    \\\"type\\\": \\\"SelectOption\\\",\\n                    \\\"value\\\": \\\"north\\\",\\n                    \\\"label\\\": \\\"North\\\",\\n                    \\\"selected\\\": false,\\n                    \\\"disabled\\\": false\\n                  },\\n                  {\\n                    \\\"type\\\": \\\"SelectOption\\\",\\n                    \\\"value\\\": \\\"south\\\",\\n                    \\\"label\\\": \\\"South\\\",\\n                    \\\"selected\\\": false,\\n                    \\\"disabled\\\": false\\n                  },\\n                  {\\n                    \\\"type\\\": \\\"SelectOption\\\",\\n                    \\\"value\\\": \\\"west\\\",\\n                    \\\"label\\\": \\\"West\\\",\\n                    \\\"selected\\\": false,\\n                    \\\"disabled\\\": false\\n                  }\\n                ]\\n              },\\n              {\\n                \\\"cssClass\\\": \\\"ml-auto\\\",\\n                \\\"name\\\": \\\"show_target\\\",\\n                \\\"value\\\": false,\\n                \\\"type\\\": \\\"Switch\\\",\\n                \\\"size\\\": \\\"default\\\",\\n                \\\"disabled\\\": false,\\n                \\\"required\\\": false\\n              },\\n              {\\n                \\\"cssClass\\\": \\\"text-sm text-muted-foreground\\\",\\n                \\\"content\\\": \\\"Show target\\\",\\n                \\\"type\\\": \\\"Text\\\"\\n              }\\n            ]\\n          },\\n          {\\n            \\\"type\\\": \\\"BarChart\\\",\\n            \\\"data\\\": \\\"{{ data }}\\\",\\n            \\\"series\\\": [\\n              {\\n                \\\"dataKey\\\": \\\"sales\\\",\\n                \\\"label\\\": \\\"Sales\\\"\\n              }\\n            ],\\n            \\\"xAxis\\\": \\\"month\\\",\\n            \\\"height\\\": 200,\\n            \\\"stacked\\\": false,\\n            \\\"horizontal\\\": false,\\n            \\\"barRadius\\\": 4,\\n            \\\"showLegend\\\": true,\\n            \\\"showTooltip\\\": true,\\n            \\\"animate\\\": true,\\n            \\\"showGrid\\\": true,\\n            \\\"showYAxis\\\": true,\\n            \\\"yAxisFormat\\\": \\\"auto\\\"\\n          },\\n          {\\n            \\\"type\\\": \\\"Condition\\\",\\n            \\\"cases\\\": [\\n              {\\n                \\\"when\\\": \\\"{{ show_target }}\\\",\\n                \\\"children\\\": [\\n                  {\\n                    \\\"type\\\": \\\"Metric\\\",\\n                    \\\"label\\\": \\\"Q1 Target\\\",\\n                    \\\"value\\\": \\\"$75,000\\\"\\n                  }\\n                ]\\n              }\\n            ]\\n          }\\n        ]\\n      }\\n    ]\\n  },\\n  \\\"state\\\": {\\n    \\\"region\\\": \\\"north\\\",\\n    \\\"north\\\": [\\n      {\\n        \\\"month\\\": \\\"Jan\\\",\\n        \\\"sales\\\": 22000\\n      },\\n      {\\n        \\\"month\\\": \\\"Feb\\\",\\n        \\\"sales\\\": 25500\\n      },\\n      {\\n        \\\"month\\\": \\\"Mar\\\",\\n        \\\"sales\\\": 24200\\n      }\\n    ],\\n    \\\"south\\\": [\\n      {\\n        \\\"month\\\": \\\"Jan\\\",\\n        \\\"sales\\\": 5800\\n      },\\n      {\\n        \\\"month\\\": \\\"Feb\\\",\\n        \\\"sales\\\": 6400\\n      },\\n      {\\n        \\\"month\\\": \\\"Mar\\\",\\n        \\\"sales\\\": 5600\\n      }\\n    ],\\n    \\\"west\\\": [\\n      {\\n        \\\"month\\\": \\\"Jan\\\",\\n        \\\"sales\\\": 6000\\n      },\\n      {\\n        \\\"month\\\": \\\"Feb\\\",\\n        \\\"sales\\\": 6000\\n      },\\n      {\\n        \\\"month\\\": \\\"Mar\\\",\\n        \\\"sales\\\": 5600\\n      }\\n    ],\\n    \\\"show_target\\\": true\\n  }\\n}\u003c/script\u003e\\n\u003c/body\u003e\\n\u003c/html\u003e\",\"team-directory-reactive\":\"\u003c!doctype html\u003e\\n\u003chtml lang=\\\"en\\\"\u003e\\n\u003chead\u003e\\n  \u003ctitle\u003ePrefab\u003c/title\u003e\\n  \u003cmeta charset=\\\"UTF-8\\\"\u003e\\n  \u003cmeta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1.0\\\"\u003e\\n  \u003clink rel=\\\"stylesheet\\\" crossorigin href=\\\"https://cdn.jsdelivr.net/npm/@prefecthq/[email protected]/dist/app/renderer.css\\\"\u003e\\n  \u003cscript type=\\\"module\\\" crossorigin src=\\\"https://cdn.jsdelivr.net/npm/@prefecthq/[email protected]/dist/app/renderer.js\\\"\u003e\u003c/script\u003e\\n\u003c/head\u003e\\n\u003cbody\u003e\\n  \u003cdiv id=\\\"root\\\" style=\\\"max-width:64rem;margin:0 auto;padding:2rem\\\"\u003e\u003c/div\u003e\\n  \u003cscript id=\\\"prefab:initial-data\\\" type=\\\"application/json\\\"\u003e{\\n  \\\"$prefab\\\": {\\n    \\\"version\\\": \\\"0.2\\\"\\n  },\\n  \\\"view\\\": {\\n    \\\"cssClass\\\": \\\"pf-app-root\\\",\\n    \\\"type\\\": \\\"Div\\\",\\n    \\\"children\\\": [\\n      {\\n        \\\"cssClass\\\": \\\"gap-4 p-6\\\",\\n        \\\"type\\\": \\\"Column\\\",\\n        \\\"children\\\": [\\n          {\\n            \\\"cssClass\\\": \\\"gap-4\\\",\\n            \\\"type\\\": \\\"Grid\\\",\\n            \\\"columnTemplate\\\": \\\"1fr 2fr\\\",\\n            \\\"children\\\": [\\n              {\\n                \\\"type\\\": \\\"PieChart\\\",\\n                \\\"data\\\": [\\n                  {\\n                    \\\"office\\\": \\\"San Francisco\\\",\\n                    \\\"count\\\": 3\\n                  },\\n                  {\\n                    \\\"office\\\": \\\"New York\\\",\\n                    \\\"count\\\": 2\\n                  },\\n                  {\\n                    \\\"office\\\": \\\"London\\\",\\n                    \\\"count\\\": 1\\n                  },\\n                  {\\n                    \\\"office\\\": \\\"Berlin\\\",\\n                    \\\"count\\\": 1\\n                  }\\n                ],\\n                \\\"dataKey\\\": \\\"count\\\",\\n                \\\"nameKey\\\": \\\"office\\\",\\n                \\\"height\\\": 300,\\n                \\\"innerRadius\\\": 0,\\n                \\\"showLabel\\\": false,\\n                \\\"paddingAngle\\\": 0,\\n                \\\"showLegend\\\": true,\\n                \\\"showTooltip\\\": true,\\n                \\\"animate\\\": true\\n              },\\n              {\\n                \\\"type\\\": \\\"DataTable\\\",\\n                \\\"columns\\\": [\\n                  {\\n                    \\\"key\\\": \\\"name\\\",\\n                    \\\"header\\\": \\\"Name\\\",\\n                    \\\"sortable\\\": true\\n                  },\\n                  {\\n                    \\\"key\\\": \\\"role\\\",\\n                    \\\"header\\\": \\\"Role\\\",\\n                    \\\"sortable\\\": true\\n                  },\\n                  {\\n                    \\\"key\\\": \\\"office\\\",\\n                    \\\"header\\\": \\\"Office\\\",\\n                    \\\"sortable\\\": true\\n                  }\\n                ],\\n                \\\"rows\\\": [\\n                  {\\n                    \\\"name\\\": \\\"Alice Chen\\\",\\n                    \\\"role\\\": \\\"Staff Engineer\\\",\\n                    \\\"office\\\": \\\"San Francisco\\\",\\n                    \\\"email\\\": \\\"[email protected]\\\",\\n                    \\\"projects\\\": 3\\n                  },\\n                  {\\n                    \\\"name\\\": \\\"Bob Martinez\\\",\\n                    \\\"role\\\": \\\"Lead Designer\\\",\\n                    \\\"office\\\": \\\"New York\\\",\\n                    \\\"email\\\": \\\"[email protected]\\\",\\n                    \\\"projects\\\": 5\\n                  },\\n                  {\\n                    \\\"name\\\": \\\"Carol Johnson\\\",\\n                    \\\"role\\\": \\\"Senior Engineer\\\",\\n                    \\\"office\\\": \\\"London\\\",\\n                    \\\"email\\\": \\\"[email protected]\\\",\\n                    \\\"projects\\\": 2\\n                  },\\n                  {\\n                    \\\"name\\\": \\\"David Kim\\\",\\n                    \\\"role\\\": \\\"Product Manager\\\",\\n                    \\\"office\\\": \\\"San Francisco\\\",\\n                    \\\"email\\\": \\\"[email protected]\\\",\\n                    \\\"projects\\\": 7\\n                  },\\n                  {\\n                    \\\"name\\\": \\\"Eva Mueller\\\",\\n                    \\\"role\\\": \\\"Engineer\\\",\\n                    \\\"office\\\": \\\"Berlin\\\",\\n                    \\\"email\\\": \\\"[email protected]\\\",\\n                    \\\"projects\\\": 1\\n                  },\\n                  {\\n                    \\\"name\\\": \\\"Frank Lee\\\",\\n                    \\\"role\\\": \\\"Data Scientist\\\",\\n                    \\\"office\\\": \\\"San Francisco\\\",\\n                    \\\"email\\\": \\\"frank@c
492ompany.com\\\",\\n                    \\\"projects\\\": 4\\n                  },\\n                  {\\n                    \\\"name\\\": \\\"Grace Park\\\",\\n                    \\\"role\\\": \\\"Engineering Manager\\\",\\n                    \\\"office\\\": \\\"New York\\\",\\n                    \\\"email\\\": \\\"[email protected]\\\",\\n                    \\\"projects\\\": 6\\n                  }\\n                ],\\n                \\\"search\\\": true,\\n                \\\"paginated\\\": false,\\n                \\\"pageSize\\\": 10,\\n                \\\"onRowClick\\\": {\\n                  \\\"action\\\": \\\"setState\\\",\\n                  \\\"key\\\": \\\"selected\\\",\\n                  \\\"value\\\": \\\"{{ $event }}\\\"\\n                }\\n              }\\n            ]\\n          },\\n          {\\n            \\\"type\\\": \\\"Condition\\\",\\n            \\\"cases\\\": [\\n              {\\n                \\\"when\\\": \\\"{{ selected }}\\\",\\n                \\\"children\\\": [\\n                  {\\n                    \\\"type\\\": \\\"Card\\\",\\n                    \\\"children\\\": [\\n                      {\\n                        \\\"type\\\": \\\"CardHeader\\\",\\n                        \\\"children\\\": [\\n                          {\\n                            \\\"cssClass\\\": \\\"gap-2 items-center\\\",\\n                            \\\"type\\\": \\\"Row\\\",\\n                            \\\"children\\\": [\\n                              {\\n                                \\\"content\\\": \\\"{{ selected.name }}\\\",\\n                                \\\"type\\\": \\\"H3\\\"\\n                              },\\n                              {\\n                                \\\"type\\\": \\\"Badge\\\",\\n                                \\\"label\\\": \\\"{{ selected.office }}\\\",\\n                                \\\"variant\\\": \\\"default\\\"\\n                              }\\n                            ]\\n                          }\\n                        ]\\n                      },\\n                      {\\n                        \\\"type\\\": \\\"CardContent\\\",\\n                        \\\"children\\\": [\\n                          {\\n                            \\\"cssClass\\\": \\\"gap-4 grid-cols-3\\\",\\n                            \\\"type\\\": \\\"Grid\\\",\\n                            \\\"children\\\": [\\n                              {\\n                                \\\"cssClass\\\": \\\"gap-0\\\",\\n                                \\\"type\\\": \\\"Column\\\",\\n                                \\\"children\\\": [\\n                                  {\\n                                    \\\"content\\\": \\\"Role\\\",\\n                                    \\\"type\\\": \\\"Small\\\"\\n                                  },\\n                                  {\\n                                    \\\"content\\\": \\\"{{ selected.role }}\\\",\\n                                    \\\"type\\\": \\\"Text\\\"\\n                                  }\\n                                ]\\n                              },\\n                              {\\n                                \\\"cssClass\\\": \\\"gap-0\\\",\\n                                \\\"type\\\": \\\"Column\\\",\\n                                \\\"children\\\": [\\n                                  {\\n                                    \\\"content\\\": \\\"Email\\\",\\n                                    \\\"type\\\": \\\"Small\\\"\\n                                  },\\n                                  {\\n                                    \\\"content\\\": \\\"{{ selected.email }}\\\",\\n                                    \\\"type\\\": \\\"Text\\\"\\n                                  }\\n                                ]\\n                              },\\n                              {\\n                                \\\"cssClass\\\": \\\"gap-0\\\",\\n                                \\\"type\\\": \\\"Column\\\",\\n                                \\\"children\\\": [\\n                                  {\\n                                    \\\"content\\\": \\\"Active Projects\\\",\\n                                    \\\"type\\\": \\\"Small\\\"\\n                                  },\\n                                  {\\n                                    \\\"content\\\": \\\"{{ selected.projects }}\\\",\\n                                    \\\"type\\\": \\\"Text\\\"\\n                                  }\\n                                ]\\n                              }\\n                            ]\\n                          }\\n                        ]\\n                      }\\n                    ]\\n                  }\\n                ]\\n              }\\n            ]\\n          }\\n        ]\\n      }\\n    ]\\n  },\\n  \\\"state\\\": {\\n    \\\"selected\\\": null\\n  }\\n}\u003c/script\u003e\\n\u003c/body\u003e\\n\u003c/html\u003e\",\"team-directory\":\"\u003c!doctype html\u003e\\n\u003chtml lang=\\\"en\\\"\u003e\\n\u003chead\u003e\\n  \u003ctitle\u003ePrefab\u003c/title\u003e\\n  \u003cmeta charset=\\\"UTF-8\\\"\u003e\\n  \u003cmeta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1.0\\\"\u003e\\n  \u003clink rel=\\\"stylesheet\\\" crossorigin href=\\\"https://cdn.jsdelivr.net/npm/@prefecthq/[email protected]/dist/app/renderer.css\\\"\u003e\\n  \u003cscript type=\\\"module\\\" crossorigin src=\\\"https://cdn.jsdelivr.net/npm/@prefecthq/[email protected]/dist/app/renderer.js\\\"\u003e\u003c/script\u003e\\n\u003c/head\u003e\\n\u003cbody\u003e\\n  \u003cdiv id=\\\"root\\\" style=\\\"max-width:64rem;margin:0 auto;padding:2rem\\\"\u003e\u003c/div\u003e\\n  \u003cscript id=\\\"prefab:initial-data\\\" type=\\\"application/json\\\"\u003e{\\n  \\\"$prefab\\\": {\\n    \\\"version\\\": \\\"0.2\\\"\\n  },\\n  \\\"view\\\": {\\n    \\\"cssClass\\\": \\\"pf-app-root\\\",\\n    \\\"type\\\": \\\"Div\\\",\\n    \\\"children\\\": [\\n      {\\n        \\\"cssClass\\\": \\\"gap-4 p-6\\\",\\n        \\\"type\\\": \\\"Column\\\",\\n        \\\"children\\\": [\\n          {\\n            \\\"cssClass\\\": \\\"gap-4\\\",\\n            \\\"type\\\": \\\"Grid\\\",\\n            \\\"columnTemplate\\\": \\\"1fr 2fr\\\",\\n            \\\"children\\\": [\\n              {\\n                \\\"type\\\": \\\"PieChart\\\",\\n                \\\"data\\\": [\\n                  {\\n                    \\\"office\\\": \\\"San Francisco\\\",\\n                    \\\"count\\\": 3\\n                  },\\n                  {\\n                    \\\"office\\\": \\\"New York\\\",\\n                    \\\"count\\\": 2\\n                  },\\n                  {\\n                    \\\"office\\\": \\\"London\\\",\\n                    \\\"count\\\": 1\\n                  },\\n                  {\\n                    \\\"office\\\": \\\"Berlin\\\",\\n                    \\\"count\\\": 1\\n                  }\\n                ],\\n                \\\"dataKey\\\": \\\"count\\\",\\n                \\\"nameKey\\\": \\\"office\\\",\\n                \\\"height\\\": 300,\\n                \\\"innerRadius\\\": 0,\\n                \\\"showLabel\\\": false,\\n                \\\"paddingAngle\\\": 0,\\n                \\\"showLegend\\\": true,\\n                \\\"showTooltip\\\": true,\\n                \\\"animate\\\": true\\n              },\\n              {\\n                \\\"type\\\": \\\"DataTable\\\",\\n                \\\"columns\\\": [\\n                  {\\n                    \\\"key\\\": \\\"name\\\",\\n                    \\\"header\\\": \\\"Name\\\",\\n                    \\\"sortable\\\": true\\n                  },\\n                  {\\n                    \\\"key\\\": \\\"role\\\",\\n                    \\\"header\\\": \\\"Role\\\",\\n                    \\\"sortable\\\": true\\n                  },\\n                  {\\n                    \\\"key\\\": \\\"office\\\",\\n                    \\\"header\\\": \\\"Office\\\",\\n                    \\\"sortable\\\": true\\n                  }\\n                ],\\n                \\\"rows\\\": [\\n                  {\\n                    \\\"name\\\": \\\"Alice Chen\\\",\\n                    \\\"role\\\": \\\"Staff Engineer\\\",\\n                    \\\"office\\\": \\\"San Francisco\\\"\\n                  },\\n                  {\\n                    \\\"name\\\": \\\"Bob Martinez\\\",\\n                    \\\"role\\\": \\\"Lead Designer\\\",\\n                    \\\"office\\\": \\\"New York\\\"\\n                  },\\n                  {\\n                    \\\"name\\\": \\\"Carol Johnson\\\",\\n                    \\\"role\\\": \\\"Senior Engineer\\\",\\n                    \\\"office\\\": \\\"London\\\"\\n                  },\\n                  {\\n                    \\\"name\\\": \\\"David Kim\\\",\\n                    \\\"role\\\": \\\"Product Manager\\\",\\n                    \\\"office\\\": \\\"San Francisco\\\"\\n                  },\\n                  {\\n                    \\\"name\\\": \\\"Eva Mueller\\\",\\n                    \\\"role\\\": \\\"Engineer\\\",\\n                    \\\"office\\\": \\\"Berlin\\\"\\n                  },\\n                  {\\n                    \\\"name\\\": \\\"Frank Lee\\\",\\n                    \\\"role\\\": \\\"Data Scientist\\\",\\n                    \\\"office\\\": \\\"San Francisco\\\"\\n                  },\\n                  {\\n                    \\\"name\\\": \\\"Grace Park\\\",\\n                    \\\"role\\\": \\\"Engineering Manager\\\",\\n                    \\\"office\\\": \\\"New York\\\"\\n                  }\\n                ],\\n                \\\"search\\\": true,\\n                \\\"paginated\\\": false,\\n                \\\"pageSize\\\": 10\\n              }\\n            ]\\n          }\\n        ]\\n      }\\n    ]\\n  }\\n}\u003c/script\u003e\\n\u003c/body\u003e\\n\u003c/html\u003e\"};\n"])</script>
492<script>self.__next_f.push([1,"5e:T4c5,"])</script>
492<script>self.__next_f.push([1,"// Add v3 banner inside content-container with negative margins\n(function() {\n  if (typeof window === 'undefined') return;\n\n  function addBanner() {\n    const isV3 = window.location.pathname.includes('/v3/');\n    const container = document.getElementById('content-container');\n    let banner = document.getElementById('v3-banner');\n\n    if (isV3 \u0026\u0026 container) {\n      if (!banner) {\n        banner = document.createElement('div');\n        banner.id = 'v3-banner';\n        banner.innerHTML = 'These are the docs for FastMCP 3. \u003ca href=\"/getting-started/welcome\" style=\"color: white; text-decoration: underline; font-weight: 700;\"\u003eFastMCP 4\u003c/a\u003e is now available.';\n        container.insertBefore(banner, container.firstChild);\n      }\n    } else if (!isV3 \u0026\u0026 banner) {\n      banner.remove();\n    }\n  }\n\n  function run() {\n    if (document.readyState === 'loading') {\n      document.addEventListener('DOMContentLoaded', addBanner);\n    } else {\n      addBanner();\n    }\n  }\n\n  run();\n\n  let lastUrl = location.href;\n  new MutationObserver(() =\u003e {\n    if (location.href !== lastUrl) {\n      lastUrl = location.href;\n      setTimeout(addBanner, 100);\n    }\n  }).observe(document.body, {subtree: true, childList: true});\n})();\n"])</script>
492<script>self.__next_f.push([1,"5f:Ta66,"])</script>
492<script>self.__next_f.push([1,"// Language dropdown: a small Python/TypeScript switcher injected into the\n// sidebar footer, next to Mintlify's theme selector. Selecting the other\n// language navigates to that project's docs site; selecting the current\n// language is a no-op. Styling lives in css/language-dropdown.css.\n(function () {\n  if (typeof window === \"undefined\") return;\n\n  var CURRENT_LANGUAGE = \"python\";\n\n  var TYPESCRIPT_DOCS_URL = \"https://fastmcp-ts.docs.prefect.io/\";\n  var PYTHON_DOCS_URL = \"https://gofastmcp.com\";\n\n  var URLS = { python: PYTHON_DOCS_URL, typescript: TYPESCRIPT_DOCS_URL };\n\n  function findThemeSelector() {\n    // Mintlify's sidebar-footer DOM is not a stable public API, so probe a\n    // few markers (almond theme first) and give up quietly if none match.\n    return (\n      document.querySelector(\"[data-theme-preference-switch]\") ||\n      document.querySelector('[role=\"group\"][aria-label=\"Theme preference\"]')\n    );\n  }\n\n  function buildDropdown() {\n    var label = document.createElement(\"label\");\n    label.id = \"language-switch\";\n    // The CSS keys the trigger's language icon off this attribute.\n    label.dataset.lang = CURRENT_LANGUAGE;\n\n    var select = document.createElement(\"select\");\n    select.setAttribute(\"aria-label\", \"Switch documentation language\");\n\n    [\n      [\"python\", \"Python\"],\n      [\"typescript\", \"TypeScript\"],\n    ].forEach(function (entry) {\n      var option = document.createElement(\"option\");\n      option.value = entry[0];\n      option.textContent = entry[1];\n      if (entry[0] === CURRENT_LANGUAGE) option.selected = true;\n      select.appendChild(option);\n    });\n\n    select.addEventListener(\"change\", function () {\n      label.dataset.lang = select.value;\n      if (select.value === CURRENT_LANGUAGE) return;\n      window.location.href = URLS[select.value];\n    });\n\n    label.appendChild(select);\n    return label;\n  }\n\n  function addDropdown() {\n    if (document.getElementById(\"language-switch\")) return;\n    var theme = findThemeSelector();\n    if (!theme || !theme.parentElement) return;\n    // Insert after the theme pill; margin-left:auto floats it right.\n    theme.parentElement.insertBefore(buildDropdown(), theme.nextSibling);\n  }\n\n  function run() {\n    if (document.readyState === \"loading\") {\n      document.addEventListener(\"DOMContentLoaded\", addDropdown);\n    } else {\n      addDropdown();\n    }\n  }\n\n  run();\n\n  // Mintlify re-renders the sidebar on client-side navigation; re-inject when\n  // the dropdown disappears.\n  new MutationObserver(function () {\n    if (!document.getElementById(\"language-switch\")) addDropdown();\n  }).observe(document.body, { subtree: true, childList: true });\n})();\n"])</script>
492<script>self.__next_f.push([1,"51:[\"$\",\"$L59\",null,{\"customJsDisabled\":false,\"jsFiles\":[{\"_id\":\"696f0f3ef45ad9b071b475ad\",\"filePath\":\"v2-banner.js\",\"subdomain\":\"fastmcp\",\"__v\":0,\"content\":\"$5a\"},{\"_id\":\"69a778ac86c4ce893442993c\",\"filePath\":\"unify-intent.js\",\"subdomain\":\"fastmcp\",\"__v\":0,\"content\":\"$5b\"},{\"_id\":\"69cd69a87ba705a281cb8df6\",\"filePath\":\"fastmcp-analytics.js\",\"subdomain\":\"fastmcp\",\"__v\":0,\"content\":\"$5c\"},{\"_id\":\"6a0ded03de37762f6d4e0759\",\"filePath\":\"prefab-demo-payloads.js\",\"subdomain\":\"fastmcp\",\"__v\":0,\"content\":\"$5d\"},{\"_id\":\"6a62be1d1918efd6e3c516e9\",\"subdomain\":\"fastmcp\",\"filePath\":\"v3-banner.js\",\"__v\":0,\"content\":\"$5e\"},{\"_id\":\"6a7f55aff5b36d40d3b05f49\",\"filePath\":\"language-dropdown.js\",\"subdomain\":\"fastmcp\",\"__v\":0,\"content\":\"$5f\"}]}]\n"])</script>
492<script>self.__next_f.push([1,"62:T4316,"])</script>
492<script>self.__next_f.push([1,"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{CodeBlock,Heading,Info}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`install-fastmcp`,children:`Install FastMCP`}),`\n`,_jsxs(_components.p,{children:[`We recommend using `,_jsx(_components.a,{href:`https://docs.astral.sh/uv/getting-started/installation/`,children:`uv`}),` to install and manage FastMCP.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes snazzy-light dark-plus`,style:{backgroundColor:`#FAFBFC`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#565869`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#09A1ED`,\"--shiki-dark\":`#DCDCAA`},children:`uv`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:` fastmcp`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Or with pip:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes snazzy-light dark-plus`,style:{backgroundColor:`#FAFBFC`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#565869`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#09A1ED`,\"--shiki-dark\":`#DCDCAA`},children:`pip`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:` fastmcp`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`optional-dependencies`,children:`Optional Dependencies`}),`\n`,_jsx(_components.p,{children:`FastMCP provides optional extras for specific features. For example, to install the background tasks extra:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes snazzy-light dark-plus`,style:{backgroundColor:`#FAFBFC`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#565869`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#09A1ED`,\"--shiki-dark\":`#DCDCAA`},children:`pip`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#ADB1C2`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:`fastmcp[tasks]`}),_jsx(_components.span,{style:{color:`#ADB1C2`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/servers/tasks`,children:`Background Tasks`}),` for details on the task system.`]}),`\n`,_jsx(Heading,{level:`3`,id:`verify-installation`,children:`Verify Installation`}),`\n`,_jsx(_components.p,{children:`To verify that FastMCP is installed correctly, you can run the following command:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes snazzy-light dark-plus`,style:{backgroundColor:`#FAFBFC`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#565869`,\"--shiki-dark\":`#D4D4D4`}
492,language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#09A1ED`,\"--shiki-dark\":`#DCDCAA`},children:`fastmcp`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:` version`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`You should see output like the following:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes snazzy-light dark-plus`,style:{backgroundColor:`#FAFBFC`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#565869`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#09A1ED`,\"--shiki-dark\":`#DCDCAA`},children:`$`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:` fastmcp`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:` version`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#09A1ED`,\"--shiki-dark\":`#DCDCAA`},children:`FastMCP`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:` version:`}),_jsx(_components.span,{style:{color:`#FF5C57`,\"--shiki-dark\":`#B5CEA8`},children:`                           4.0.0`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#09A1ED`,\"--shiki-dark\":`#DCDCAA`},children:`MCP`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:` version:`}),_jsx(_components.span,{style:{color:`#FF5C57`,\"--shiki-dark\":`#B5CEA8`},children:`                                2.0.0`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#09A1ED`,\"--shiki-dark\":`#DCDCAA`},children:`Python`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:` version:`}),_jsx(_components.span,{style:{color:`#FF5C57`,\"--shiki-dark\":`#B5CEA8`},children:`                            3.12.2`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#09A1ED`,\"--shiki-dark\":`#DCDCAA`},children:`Platform:`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:`            macOS-15.3.1-arm64-arm-64bit`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#09A1ED`,\"--shiki-dark\":`#DCDCAA`},children:`FastMCP`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:` root`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:` path:`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:`            ~/Developer/fastmcp`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`dependency-licensing`,children:`Dependency Licensing`}),`\n`,_jsxs(Info,{children:[_jsx(_components.p,{children:`FastMCP depends on Cyclopts for CLI functionality. Cyclopts v4 includes docutils as a transitive dependency, which has complex licensing that may trigger compliance reviews in some organizations.`}),_jsx(_components.p,{children:`If this is a concern, you can install Cyclopts v5 alpha which removes this dependency:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes snazzy-light dark-plus`,style:{backgroundColor:`#FAFBFC`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#565869`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#09A1ED`,\"--shiki-dark\":`#DCDCAA`},children:`pip`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#ADB1C2`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:`cyclopts\u003e=5.0.0a1`}),_jsx(_components.span,{style:{color:`#ADB1C2`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`Alternatively, wait for the stable v5 release. See `,_jsx(_components.a,{href:`https://github.com/BrianPugh/cyclopts/issues/672`,children:`this issue`}),` for details.`]})]}),`\n`,_jsx(Heading,{level:`2`,id:`upgrading`,children:`Upgrading`}),`\n`,_jsx(Heading,{level:`3`,id:`from-fastmcp-3-0`,children:`From FastMCP 3.0`}),`\n`,_jsxs(_components.p,{children:[`Most FastMCP 3 servers run on 4 without changes. See `,_jsx(_components.a,{href:`/getting-started/upgrading/from-fastmcp-3`,children:`Upgrading from FastMCP 3`}),` for the breaks that do exist, and `,_jsx(_components.a,{href:`/getting-started/whats-new`,children:`What’s New`}),` for what the new version adds.`]}),`\n`,_jsx(Heading,{level:`3`,id:`from-fastmcp-2-0`,children:`From FastMCP 2.0`}),`\n`,_jsxs(_components.p,{children:[`See the `,_jsx(_components.a,{href:`/getting-started/upgrading/from-fastmcp-2`,children:`Upgrade Guide`}),` for a complete list of breaking changes and migration steps.`]}),`\n`,_jsx(Heading,{level:`3`,id:`from-the-mcp-sdk`,children:`From the MCP SDK`}),`\n`,_jsxs(_components.p,{children:[`Which guide you want depends on which `,_jsx(_components.c
492ode,{children:`mcp`}),` version you’re on and which of its two server APIs you used.`]}),`\n`,_jsx(Heading,{level:`4`,id:`from-the-high-level-server`,children:`From the high-level server`}),`\n`,_jsxs(_components.p,{children:[`If you’re using FastMCP 1.0 via SDK v1 (meaning you import FastMCP as `,_jsx(_components.code,{children:`from mcp.server.fastmcp import FastMCP`}),`), upgrading is straightforward — for most servers it’s a single import change. See `,_jsx(_components.a,{href:`/getting-started/upgrading/from-mcp-sdk-v1`,children:`Upgrading from MCP SDK v1`}),`, which also explains why that route is usually easier than moving to MCP SDK v2.`]}),`\n`,_jsxs(_components.p,{children:[`If you already moved to SDK v2 and write against `,_jsx(_components.code,{children:`MCPServer`}),`, see `,_jsx(_components.a,{href:`/getting-started/upgrading/from-mcp-sdk-v2`,children:`Upgrading from MCP SDK v2`}),` — that migration is mostly renaming.`]}),`\n`,_jsx(Heading,{level:`4`,id:`from-the-low-level-server`,children:`From the low-level server`}),`\n`,_jsxs(_components.p,{children:[`If you built your server directly on the `,_jsx(_components.code,{children:`mcp`}),` package’s `,_jsx(_components.code,{children:`Server`}),` class, the guide you want depends on how its handlers are registered. Decorators like `,_jsx(_components.code,{children:`@server.list_tools()`}),` mean SDK v1 — see `,_jsx(_components.a,{href:`/getting-started/upgrading/from-low-level-sdk-v1`,children:`Upgrading from the Low-Level SDK v1`}),`. Handlers passed to the constructor as `,_jsx(_components.code,{children:`on_list_tools=`}),` mean SDK v2 — see `,_jsx(_components.a,{href:`/getting-started/upgrading/from-low-level-sdk-v2`,children:`Upgrading from the Low-Level SDK v2`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsxs(Heading,{level:`3`,id:`import-fastmcp-fails-after-a-pip-upgrade`,children:[_jsx(_components.code,{children:`import fastmcp`}),` fails after a pip upgrade`]}),`\n`,_jsxs(_components.p,{children:[`This affects one specific case: upgrading to FastMCP 3.3 or later from FastMCP 3.2 or earlier with `,_jsx(_components.code,{children:`pip`}),`. Fresh installs and `,_jsx(_components.code,{children:`uv`}),` upgrades are unaffected, so you can skip this unless you did exactly that.`]}),`\n`,_jsxs(_components.p,{children:[`If `,_jsx(_components.code,{children:`import fastmcp`}),` raises `,_jsx(_components.code,{children:`ModuleNotFoundError`}),`, or `,_jsx(_components.code,{children:`from fastmcp import FastMCP`}),` raises `,_jsx(_components.code,{children:`ImportError`}),`, immediately after the upgrade, your install is in a half-removed state. Reinstall in a single step:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes snazzy-light dark-plus`,style:{backgroundColor:`#FAFBFC`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#565869`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#09A1ED`,\"--shiki-dark\":`#DCDCAA`},children:`pip`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#2DAE58`,\"--shiki-dark\":`#569CD6`},children:` --force-reinstall`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:` fastmcp`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`If that doesn’t resolve it, remove both distributions and reinstall from a clean state:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes snazzy-light dark-plus`,style:{backgroundColor:`#FAFBFC`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#565869`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#09A1ED`,\"--shiki-dark\":`#DCDCAA`},children:`pip`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:` uninstall`}),_jsx(_components.span,{style:{color:`#2DAE58`,\"--shiki-dark\":`#569CD6`}
492,children:` -y`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:` fastmcp`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:` fastmcp-slim`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#09A1ED`,\"--shiki-dark\":`#DCDCAA`},children:`pip`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#CF9C00`,\"--shiki-dark\":`#CE9178`},children:` fastmcp`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`FastMCP 3.3 moved the importable code from the `,_jsx(_components.code,{children:`fastmcp`}),` distribution into `,_jsx(_components.code,{children:`fastmcp-slim`}),`. During a single-command `,_jsx(_components.code,{children:`pip`}),` upgrade, pip can install the new files and then delete them while uninstalling the old `,_jsx(_components.code,{children:`fastmcp`}),` distribution, whose file manifest still lists those paths. `,_jsx(_components.code,{children:`uv`}),` uninstalls before it installs, so it is unaffected.`]}),`\n`,_jsx(Heading,{level:`2`,id:`versioning-policy`,children:`Versioning Policy`}),`\n`,_jsx(_components.p,{children:`FastMCP follows semantic versioning with pragmatic adaptations for the rapidly evolving MCP ecosystem. Breaking changes may occur in minor versions (e.g., 2.3.x to 2.4.0) when necessary to stay current with the MCP Protocol.`}),`\n`,_jsx(_components.p,{children:`For production use, always pin to exact versions:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes snazzy-light dark-plus`,style:{backgroundColor:`#FAFBFC`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#565869`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`fastmcp==4.0.5    # Good - an exact version`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`fastmcp\u003e=4.0.0    # Bad - may install breaking changes`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`See the full `,_jsx(_components.a,{href:`/development/releases#versioning-policy`,children:`versioning and release policy`}),` for details on our public API, deprecation practices, and breaking change philosophy.`]}),`\n`,_jsx(Heading,{level:`2`,id:`contributing-to-fastmcp`,children:`Contributing to FastMCP`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.a,{href:`/development/contributing`,children:`Contributing Guide`}),` covers setting up a development environment, running the test suite and pre-commit hooks, and the standards we hold contributed code to.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}"])</script>
492<script>self.__next_f.push([1,"52:[\"$\",\"$L60\",null,{\"slug\":\"getting-started/installation\",\"pageMetadata\":\"$47:props:pageMetadata\",\"theme\":\"almond\",\"children\":[\"$\",\"$L61\",null,{\"mdxSource\":{\"compiledSource\":\"$62\",\"frontmatter\":{},\"scope\":{\"codeStyling\":{\"theme\":{\"light\":\"snazzy-light\",\"dark\":\"dark-plus\"}},\"config\":{},\"pageMetadata\":{\"title\":\"Installation\",\"description\":\"Install FastMCP and verify your setup\",\"icon\":\"arrow-down-to-line\",\"href\":\"/getting-started/installation\"}}},\"mdxSourceWithNoJs\":\"$undefined\",\"displayDomain\":\"gofastmcp.com\"}]}]\n"])</script>
492<script>self.__next_f.push([1,"57:[\"$\",\"style\",\"3\",{\"data-custom-css-index\":3,\"data-custom-css-path\":\"css/version-badge.css\",\"dangerouslySetInnerHTML\":{\"__html\":\"/* Version badge -- display a badge with the current version of the documentation */\\n.version-badge {\\n  --color-text: #c2410c !important;\\n  --color-bg: #fef2f2 !important;\\n  color: #c2410c !important;\\n  background: #fef2f2 !important;\\n  border: 1px solid rgba(220, 38, 38, 0.3) !important;\\n  transition: box-shadow 0.2s, transform 0.15s;\\n}\\n\\n.version-badge:hover {\\n  box-shadow: 0 2px 8px 0 rgba(160, 132, 252, 0.1);\\n  transform: translateY(-1px) scale(1.03);\\n}\\n\\n.dark .version-badge {\\n  --color-text: #f1f5f9 !important;\\n  --color-bg: #334155 !important;\\n  color: #f1f5f9 !important;\\n  background: #334155 !important;\\n  border: 1px solid #64748b !important;\\n}\\n\\n\"}}]\n"])</script>
492<script>self.__next_f.push([1,"63:T1557,"])</script>
492<script>self.__next_f.push([1,"/* Language dropdown: injected by language-dropdown.js into the sidebar\n   footer, to the right of Mintlify's theme selector. Mirrors the almond\n   theme pill's exact metrics (lg:h-7 desktop / 2.375rem mobile, rounded-full,\n   border-gray-200/70, dark:border-white/[0.07]) so the two controls read as\n   one family. */\n#language-switch {\n  margin-left: auto;\n  display: inline-flex;\n  align-items: center;\n  position: relative;\n}\n\n#language-switch select {\n  appearance: none;\n  -webkit-appearance: none;\n  background-color: transparent;\n  border: 1px solid rgb(229 231 235 / 0.7);\n  border-radius: 9999px;\n  color: rgb(107 114 128);\n  cursor: pointer;\n  font-size: 0.75rem;\n  line-height: 1rem;\n  height: 2.375rem;\n  /* Left padding clears the language mark drawn by ::before. */\n  padding: 0 1.375rem 0 1.875rem;\n  /* Chevron, drawn in the same gray as the label text. */\n  background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E\");\n  background-repeat: no-repeat;\n  background-position: right 0.5rem center;\n  background-size: 0.7rem;\n  transition: border-color 0.2s;\n}\n\n@media (min-width: 1024px) {\n  #language-switch select {\n    height: 1.75rem;\n  }\n}\n\n#language-switch select:hover {\n  color: rgb(75 85 99);\n  border-color: rgb(229 231 235);\n}\n\n#language-switch select:focus-visible {\n  outline: 2px solid rgb(45 0 247 / 0.4);\n  outline-offset: 1px;\n}\n\n.dark #language-switch select {\n  border-color: rgb(255 255 255 / 0.07);\n  color: rgb(156 163 175);\n  background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E\");\n}\n\n.dark #language-switch select:hover {\n  color: rgb(209 213 219);\n  border-color: rgb(255 255 255 / 0.1);\n}\n\n/* Colored language mark on the visible trigger; the native \u003coption\u003es stay\n   plain. language-dropdown.js mirrors the current selection onto data-lang,\n   so the icon always matches the selected value. Brand colors carry their\n   own contrast (the TS mark keeps a white plate behind the letters), so the\n   same artwork works in both themes. */\n#language-switch::before {\n  content: \"\";\n  position: absolute;\n  left: 0.625rem;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 0.875rem;\n  height: 0.875rem;\n  background: center / contain no-repeat;\n  pointer-events: none;\n}\n\n/* Two-tone Python mark (#3776AB / #FFD43B). */\n#language-switch[data-lang=\"python\"]::before {\n  background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 128 128'%3E%3Cpath fill='%233776AB' d='M63.391 1.988c-4.222.02-8.252.379-11.8 1.007-10.45 1.846-12.346 5.71-12.346 12.837v9.411h24.693v3.137H29.977c-7.176 0-13.46 4.313-15.426 12.521-2.268 9.405-2.368 15.275 0 25.096 1.755 7.311 5.947 12.519 13.124 12.519h8.491V67.234c0-8.151 7.051-15.34 15.426-15.34h24.665c6.866 0 12.346-5.654 12.346-12.548V15.833c0-6.693-5.646-11.72-12.346-12.837-4.244-.706-8.645-1.027-12.866-1.008zM50.037 9.557c2.55 0 4.634 2.117 4.634 4.721 0 2.593-2.083 4.69-4.634 4.69-2.56 0-4.633-2.097-4.633-4.69-.001-2.604 2.073-4.721 4.633-4.721z'/%3E%3Cpath fill='%23FFD43B' d='M91.682 28.38v10.966c0 8.5-7.208 15.655-15.426 15.655H51.591c-6.756 0-12.346 5.783-12.346 12.549v23.515c0 6.691 5.818 10.628 12.346 12.547 7.816 2.297 15.312 2.713 24.665 0 6.216-1.801 12.346-5.423 12.346-12.547v-9.412H63.938v-3.138h37.012c7.176 0 9.852-5.005 12.348-12.519 2.578-7.735 2.467-15.174 0-25.096-1.774-7.145-5.161-12.521-12.348-12.521h-9.268zM77.809 87.927c2.561 0 4.634 2.097 4.634 4.692 0 2.602-2.074 4.719-4.634 4.719-2.55 0-4.633-2.117-4.633-4.719 0-2.595 2.083-4.692 4.633-4.692z'/%3E%3C/svg%3E\");\n}\n\n/* TypeScript mark: #3178C6 rounded square, white TS (white plate under the\n   letter knockouts keeps them white in dark mode). */\n#language-switch[data-lang=\"typescript\"]::before {\n  background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='2' y='2' width='20' height='20' fill='%23fff'/%3E%3Cpath fill='%233178C6' d='M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z'/%3E%3C/svg%3E\");\n}\n"])</script>
492<script>self.__next_f.push([1,"58:[\"$\",\"style\",\"4\",{\"data-custom-css-index\":4,\"data-custom-css-path\":\"css/language-dropdown.css\",\"dangerouslySetInnerHTML\":{\"__html\":\"$63\"}}]\n"])</script>
492</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.