mirror of
https://github.com/zenlm/zen-code-docs.git
synced 2026-10-30 14:58:40 +00:00
649 lines
515 KiB
HTML
649 lines
515 KiB
HTML
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="https://assets.alicdn.com/g/qwenweb/qwen-webui-fe/0.0.191/static/favicon.png"/><link rel="stylesheet" href="/qwen-code-docs/_next/static/css/7fba7395046b8eaa.css" data-precedence="next"/><link rel="stylesheet" href="/qwen-code-docs/_next/static/css/04d76539cc2c4ebd.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/qwen-code-docs/_next/static/chunks/webpack-6175f18c4ffcc31c.js"/><script src="/qwen-code-docs/_next/static/chunks/fd9d1056-c4d7023cbe01becc.js" async=""></script><script src="/qwen-code-docs/_next/static/chunks/2117-2a033efae9becbf0.js" async=""></script><script src="/qwen-code-docs/_next/static/chunks/main-app-96783a02d9726921.js" async=""></script><script src="/qwen-code-docs/_next/static/chunks/app/layout-38b548b4f4d27f80.js" async=""></script><script src="/qwen-code-docs/_next/static/chunks/c16f53c3-b998f97655e65347.js" async=""></script><script src="/qwen-code-docs/_next/static/chunks/1105-e07e82095c5c7b4a.js" async=""></script><script src="/qwen-code-docs/_next/static/chunks/5524-d228bcaedae4ecb3.js" async=""></script><script src="/qwen-code-docs/_next/static/chunks/2770-e894e62890be5e00.js" async=""></script><script src="/qwen-code-docs/_next/static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js" async=""></script><meta name="theme-color" media="(prefers-color-scheme: light)" content="rgb(250,250,250)"/><meta name="theme-color" media="(prefers-color-scheme: dark)" content="rgb(17,17,17)"/><title>MCP серверы с Qwen Code | </title><meta name="description" content="x"/><meta name="msapplication-TileColor" content="#fff"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="Qwen Code"/><meta name="apple-mobile-web-app-status-bar-style" content="default"/><meta property="og:title" content="MCP серверы с Qwen Code | "/><meta property="og:description" content="x"/><meta property="og:image" content="https://assets.vercel.com/image/upload/v1572282926/swr/twitter-card.jpg"/><meta name="twitter:card" content="summary"/><meta name="twitter:site" content="@qwenLLM"/><meta name="twitter:title" content="MCP серверы с Qwen Code | "/><meta name="twitter:description" content="x"/><meta name="twitter:image" content="https://assets.vercel.com/image/upload/v1572282926/swr/twitter-card.jpg"/><style>:root {
|
||
--nextra-primary-hue: 248deg;
|
||
--nextra-primary-saturation: 74%;
|
||
--nextra-primary-lightness: 45%;
|
||
--nextra-bg: 250,250,250;
|
||
--nextra-content-width: 90rem;
|
||
}
|
||
.dark {
|
||
--nextra-primary-hue: 248deg;
|
||
--nextra-primary-saturation: 74%;
|
||
--nextra-primary-lightness: 55%;
|
||
--nextra-bg: 17,17,17;
|
||
}
|
||
::selection {
|
||
background: hsla(var(--nextra-primary-hue),var(--nextra-primary-saturation),var(--nextra-primary-lightness),.3);
|
||
}
|
||
html {
|
||
background: rgb(var(--nextra-bg));
|
||
}</style><script src="/qwen-code-docs/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><script>((e,i,s,n,l,r,d,h)=>{let t=document.documentElement,a=["light","dark"];function c(i){(Array.isArray(e)?e:[e]).forEach(e=>{let s="class"===e,n=s&&r?l.map(e=>r[e]||e):l;s?(t.classList.remove(...n),t.classList.add(r&&r[i]?r[i]:i)):t.setAttribute(e,i)}),h&&a.includes(i)&&(t.style.colorScheme=i)}if(n)c(n);else try{let e=localStorage.getItem(i)||s,n=d&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;c(n)}catch(e){}})("class","theme","light",null,["light","dark"],null,true,true)</script><a href="#nextra-skip-nav" class="nextra-skip-nav x:sr-only" type="button" data-headlessui-state="">Skip to Content</a><header class="nextra-navbar x:sticky x:top-0 x:z-30 x:w-full x:bg-transparent x:print:hidden x:max-md:[.nextra-banner:not([class$=hidden])~&]:top-(--nextra-banner-height)"><div class="nextra-navbar-blur x:absolute x:-z-1 x:size-full nextra-border x:border-b x:backdrop-blur-md x:bg-nextra-bg/70"></div><nav style="height:var(--nextra-navbar-height)" class="x:mx-auto x:flex x:max-w-(--nextra-content-width) x:items-center x:gap-4 x:pl-[max(env(safe-area-inset-left),1.5rem)] x:pr-[max(env(safe-area-inset-right),1.5rem)] x:justify-end"><a class="x:flex x:items-center x:me-auto x:transition-opacity x:focus-visible:nextra-focus x:hover:opacity-75" aria-label="Home page" href="/qwen-code-docs/"><span class="ms-2 select-none font-extrabold flex items-center" title="Qwen Code: AI Coding Agent"><img src="https://assets.alicdn.com/g/qwenweb/qwen-webui-fe/0.0.191/static/favicon.png" alt="Qwen Code" width="32" height="32" class="inline-block align-middle mr-2 " style="vertical-align:middle"/><span class="text-[1.3rem] font-normal align-middle mr-1 max-md:hidden">Qwen</span><span class="text-[1.3rem] font-normal align-middle max-md:hidden">Code</span></span></a><div class="x:flex x:gap-4 x:overflow-x-auto nextra-scrollbar x:py-1.5 x:max-md:hidden"></div><div class="x:max-md:hidden"><div class="nextra-search x:relative x:flex x:items-center x:text-gray-900 x:dark:text-gray-300 x:contrast-more:text-gray-800 x:contrast-more:dark:text-gray-300"><input spellCheck="false" autoComplete="off" class="x:rounded-lg x:px-3 x:py-2 x:transition-all x:w-full x:md:w-64 x:text-base x:leading-tight x:md:text-sm x:bg-black/[.05] x:dark:bg-gray-50/10 x:placeholder:text-gray-600 x:dark:placeholder:text-gray-400 x:contrast-more:border x:contrast-more:border-current x:[&::-webkit-search-cancel-button]:appearance-none" placeholder="Search documentation…" id="headlessui-combobox-input-:Rbdaf9ukq:" role="combobox" type="search" aria-expanded="false" aria-autocomplete="list" data-headlessui-state="" value=""/><kbd class="x:absolute x:my-1.5 x:select-none x:pointer-events-none x:end-1.5 x:transition-all x:h-5 x:rounded x:bg-nextra-bg x:px-1.5 x:font-mono x:text-[11px] x:font-medium x:text-gray-600 x:dark:text-gray-400 x:border nextra-border x:contrast-more:text-current x:items-center x:gap-1 x:flex x:max-sm:hidden not-prose x:invisible x:opacity-0">CTRL K</kbd></div></div><a href="https://github.com/QwenLM/qwen-code" target="_blank" rel="noreferrer" class="x:focus-visible:nextra-focus"><svg fill="currentColor" viewBox="3 3 18 18" height="24" aria-label="Project repository"><path d="M12 3C7.0275 3 3 7.12937 3 12.2276C3 16.3109 5.57625 19.7597 9.15374 20.9824C9.60374 21.0631 9.77249 20.7863 9.77249 20.5441C9.77249 20.3249 9.76125 19.5982 9.76125 18.8254C7.5 19.2522 6.915 18.2602 6.735 17.7412C6.63375 17.4759 6.19499 16.6569 5.8125 16.4378C5.4975 16.2647 5.0475 15.838 5.80124 15.8264C6.51 15.8149 7.01625 16.4954 7.18499 16.7723C7.99499 18.1679 9.28875 17.7758 9.80625 17.5335C9.885 16.9337 10.1212 16.53 10.38 16.2993C8.3775 16.0687 6.285 15.2728 6.285 11.7432C6.285 10.7397 6.63375 9.9092 7.20749 9.26326C7.1175 9.03257 6.8025 8.08674 7.2975 6.81794C7.2975 6.81794 8.05125 6.57571 9.77249 7.76377C10.4925 7.55615 11.2575 7.45234 12.0225 7.45234C12.7875 7.45234 13.5525 7.55615 14.2725 7.76377C15.9937 6.56418 16.7475 6.81794 16.7475 6.81794C17.2424 8.08674 16.9275 9.03257 16.8375 9.26326C17.4113 9.9092 17.76 10.7281 17.76 11.7432C17.76 15.2843 15.6563 16.0687 13.6537 16.2993C13.98 16.5877 14.2613 17.1414 14.2613 18.0065C14.2613 19.2407 14.25 20.2326 14.25 20.5441C14.25 20.7863 14.4188 21.0746 14.8688 20.9824C16.6554 20.364 18.2079 19.1866 19.3078 17.6162C20.4077 16.0457 20.9995 14.1611 21 12.2276C21 7.12937 16.9725 3 12 3Z"></path></svg></a><div class="flex items-center gap-2 px-3 py-1.5 text-sm text-gray-600 dark:text-gray-300 bg-gray-50 dark:bg-gray-800 rounded-md"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-globe w-4 h-4" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg><span>Русский</span></div><button class="x:transition x:cursor-pointer nextra-hamburger x:md:hidden" aria-label="Menu" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" stroke-linecap="round" height="24" class=""><g><path d="M4 6h16"></path></g><path d="M4 12h16"></path><g><path d="M4 18h16"></path></g></svg></button></nav></header><aside class="nextra-mobile-nav x:flex x:flex-col x:fixed x:inset-0 x:pt-(--nextra-navbar-height) x:z-20 x:overscroll-contain x:[contain:layout_style] x:md:hidden x:[.nextra-banner:not([class$=hidden])~&]:pt-[calc(var(--nextra-banner-height)+var(--nextra-navbar-height))] x:bg-nextra-bg x:[transform:translate3d(0,-100%,0)]"><div class="x:px-4 x:pt-4"><div class="nextra-search x:relative x:flex x:items-center x:text-gray-900 x:dark:text-gray-300 x:contrast-more:text-gray-800 x:contrast-more:dark:text-gray-300"><input spellCheck="false" autoComplete="off" class="x:rounded-lg x:px-3 x:py-2 x:transition-all x:w-full x:md:w-64 x:text-base x:leading-tight x:md:text-sm x:bg-black/[.05] x:dark:bg-gray-50/10 x:placeholder:text-gray-600 x:dark:placeholder:text-gray-400 x:contrast-more:border x:contrast-more:border-current x:[&::-webkit-search-cancel-button]:appearance-none" placeholder="Search documentation…" id="headlessui-combobox-input-:R1dln9ukq:" role="combobox" type="search" aria-expanded="false" aria-autocomplete="list" data-headlessui-state="" value=""/><kbd class="x:absolute x:my-1.5 x:select-none x:pointer-events-none x:end-1.5 x:transition-all x:h-5 x:rounded x:bg-nextra-bg x:px-1.5 x:font-mono x:text-[11px] x:font-medium x:text-gray-600 x:dark:text-gray-400 x:border nextra-border x:contrast-more:text-current x:items-center x:gap-1 x:flex x:max-sm:hidden not-prose x:invisible x:opacity-0">CTRL K</kbd></div></div><ul class="x:grid x:gap-1 x:p-4 x:overflow-y-auto nextra-scrollbar nextra-mask"><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/">Добро пожаловать в документацию Qwen Code</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/deployment/">Выполнение и Развертывание</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/architecture/">Обзор Архитектуры</a></li><li class=""><button class="x:transition x:cursor-pointer x:items-center x:justify-between x:gap-2 x:text-start x:w-full x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" data-href="/ru/cli" type="button" data-headlessui-state="">Руководство по использованию CLI<svg viewBox="0 0 24 24" stroke="currentColor" fill="none" stroke-width="2" height="18" class="x:shrink-0 x:rounded-sm x:p-0.5 x:hover:bg-gray-800/5 x:dark:hover:bg-gray-100/5 x:motion-reduce:transition-none x:origin-center x:transition-all x:rtl:-rotate-180"><path d="M9 5l7 7-7 7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><div class="x:transform-gpu x:transition-all x:ease-in-out x:motion-reduce:transition-none x:opacity-0 x:overflow-hidden" style="height:0;transition-duration:300ms"><ul class="x:grid x:gap-1 x:relative x:before:absolute x:before:inset-y-1 x:before:w-px x:before:bg-gray-200 x:before:content-[""] x:dark:before:bg-neutral-800 x:ps-3 x:before:start-0 x:pt-1 x:ms-3"><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/cli/">Обзор CLI</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/cli/commands/">Справочник Команд</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/cli/configuration/">Руководство по Конфигурации</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/cli/authentication/">Настройка Аутентификации</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/cli/openai-auth/">Аутентификация OpenAI</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/cli/token-caching/">Кэширование Токенов</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/cli/themes/">Конфигурация Тем</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/cli/tutorials/">Учебные Пособия</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/cli/welcome-back/">Функция Welcome Back</a></li></ul></div></li><li class=""><button class="x:transition x:cursor-pointer x:items-center x:justify-between x:gap-2 x:text-start x:w-full x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" data-href="/ru/core" type="button" data-headlessui-state="">Основные Детали<svg viewBox="0 0 24 24" stroke="currentColor" fill="none" stroke-width="2" height="18" class="x:shrink-0 x:rounded-sm x:p-0.5 x:hover:bg-gray-800/5 x:dark:hover:bg-gray-100/5 x:motion-reduce:transition-none x:origin-center x:transition-all x:rtl:-rotate-180"><path d="M9 5l7 7-7 7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><div class="x:transform-gpu x:transition-all x:ease-in-out x:motion-reduce:transition-none x:opacity-0 x:overflow-hidden" style="height:0;transition-duration:300ms"><ul class="x:grid x:gap-1 x:relative x:before:absolute x:before:inset-y-1 x:before:w-px x:before:bg-gray-200 x:before:content-[""] x:dark:before:bg-neutral-800 x:ps-3 x:before:start-0 x:pt-1 x:ms-3"><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/core/">Обзор Ядра</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/core/tools-api/">API Инструментов</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/core/memport/">Процессор Импорта Памяти</a></li></ul></div></li><li class="open"><button class="x:transition x:cursor-pointer x:items-center x:justify-between x:gap-2 x:text-start x:w-full x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" data-href="/ru/tools" type="button" data-headlessui-state="">Коллекция Инструментов<svg viewBox="0 0 24 24" stroke="currentColor" fill="none" stroke-width="2" height="18" class="x:shrink-0 x:rounded-sm x:p-0.5 x:hover:bg-gray-800/5 x:dark:hover:bg-gray-100/5 x:motion-reduce:transition-none x:origin-center x:transition-all x:rtl:-rotate-180 x:ltr:rotate-90 x:rtl:-rotate-270"><path d="M9 5l7 7-7 7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><div class="x:transform-gpu x:transition-all x:ease-in-out x:motion-reduce:transition-none x:opacity-100" style="transition-duration:500ms"><ul class="x:grid x:gap-1 x:relative x:before:absolute x:before:inset-y-1 x:before:w-px x:before:bg-gray-200 x:before:content-[""] x:dark:before:bg-neutral-800 x:ps-3 x:before:start-0 x:pt-1 x:ms-3"><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/tools/">Обзор Инструментов</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/tools/file-system/">Инструменты Файловой Системы</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/tools/multi-file/">Инструменты Чтения Множественных Файлов</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/tools/shell/">Инструменты Shell</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/tools/web-fetch/">Инструменты Web Fetch</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/tools/web-search/">Инструменты Веб-Поиска</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/tools/memory/">Инструменты Памяти</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/tools/todo-write/">Инструмент Todo Write</a></li><li class="active"><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:bg-primary-100 x:font-semibold x:text-primary-800 x:dark:bg-primary-400/10 x:dark:text-primary-600 x:contrast-more:border-primary-500!" href="/qwen-code-docs/ru/tools/mcp-server/">MCP Сервер</a></li></ul></div></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/checkpointing/">Функция Контрольных Точек</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/extension/">Разработка Расширений</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/ide-integration/">Интеграция с IDE</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/telemetry/">Наблюдаемость</a></li><li class=""><button class="x:transition x:cursor-pointer x:items-center x:justify-between x:gap-2 x:text-start x:w-full x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" data-href="/ru/examples" type="button" data-headlessui-state="">Примеры Кода<svg viewBox="0 0 24 24" stroke="currentColor" fill="none" stroke-width="2" height="18" class="x:shrink-0 x:rounded-sm x:p-0.5 x:hover:bg-gray-800/5 x:dark:hover:bg-gray-100/5 x:motion-reduce:transition-none x:origin-center x:transition-all x:rtl:-rotate-180"><path d="M9 5l7 7-7 7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><div class="x:transform-gpu x:transition-all x:ease-in-out x:motion-reduce:transition-none x:opacity-0 x:overflow-hidden" style="height:0;transition-duration:300ms"><ul class="x:grid x:gap-1 x:relative x:before:absolute x:before:inset-y-1 x:before:w-px x:before:bg-gray-200 x:before:content-[""] x:dark:before:bg-neutral-800 x:ps-3 x:before:start-0 x:pt-1 x:ms-3"><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/examples/proxy-script/">Пример Прокси-Скрипта</a></li></ul></div></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/npm/">Управление Пакетами</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/gemini-ignore/">Конфигурация Игнорируемых Файлов</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/integration-tests/">Интеграционные Тесты</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/keyboard-shortcuts/">Горячие Клавиши</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/sandbox/">Механизм Песочницы</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/issue-and-pr-automation/">Автоматизированная Обработка</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/troubleshooting/">Устранение Неполадок</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/tos-privacy/">Условия Использования и Конфиденциальность</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/Uninstall/">Руководство по Удалению</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/subagents/">Субагенты</a></li></ul><div class="nextra-sidebar-footer x:border-t nextra-border x:flex x:items-center x:gap-2 x:py-4 x:mx-4 x:mt-auto"><button title="Change theme" class="x:cursor-pointer x:h-7 x:rounded-md x:px-2 x:text-xs x:font-medium x:transition-colors x:text-gray-600 x:dark:text-gray-400 x:flex x:items-center x:gap-2 x:grow" id="headlessui-listbox-button-:R1mtn9ukq:" type="button" aria-haspopup="listbox" aria-expanded="false" data-headlessui-state=""><svg fill="currentColor" viewBox="2 2 20 20" stroke="currentColor" height="12"><path stroke-linecap="round" stroke-width="2" d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"></path></svg>Light</button><button title="Change language" class="x:cursor-pointer x:h-7 x:rounded-md x:px-2 x:text-xs x:font-medium x:transition-colors x:text-gray-600 x:dark:text-gray-400 x:flex x:items-center x:gap-2 x:grow x:justify-end" id="headlessui-listbox-button-:R1ndn9ukq:" type="button" aria-haspopup="listbox" aria-expanded="false" data-headlessui-state=""><svg viewBox="2 2 16 16" fill="currentColor" height="12"><path fill-rule="evenodd" d="M4.083 9h1.946c.089-1.546.383-2.97.837-4.118A6.004 6.004 0 004.083 9zM10 2a8 8 0 100 16 8 8 0 000-16zm0 2c-.076 0-.232.032-.465.262-.238.234-.497.623-.737 1.182-.389.907-.673 2.142-.766 3.556h3.936c-.093-1.414-.377-2.649-.766-3.556-.24-.56-.5-.948-.737-1.182C10.232 4.032 10.076 4 10 4zm3.971 5c-.089-1.546-.383-2.97-.837-4.118A6.004 6.004 0 0115.917 9h-1.946zm-2.003 2H8.032c.093 1.414.377 2.649.766 3.556.24.56.5.948.737 1.182.233.23.389.262.465.262.076 0 .232-.032.465-.262.238-.234.498-.623.737-1.182.389-.907.673-2.142.766-3.556zm1.166 4.118c.454-1.147.748-2.572.837-4.118h1.946a6.004 6.004 0 01-2.783 4.118zm-6.268 0C6.412 13.97 6.118 12.546 6.03 11H4.083a6.004 6.004 0 002.783 4.118z"></path></svg>Русский</button></div></aside><div class="x:mx-auto x:flex x:max-w-(--nextra-content-width)"><aside id=":Rpuun9ukq:" class="nextra-sidebar x:print:hidden x:transition-all x:ease-in-out x:max-md:hidden x:flex x:flex-col x:h-[calc(100dvh-var(--nextra-navbar-height))] x:top-(--nextra-navbar-height) x:shrink-0 x:w-64 x:sticky"><div class="x:p-4 x:overflow-y-auto nextra-scrollbar nextra-mask x:grow"><div class="x:transform-gpu x:transition-all x:ease-in-out x:motion-reduce:transition-none x:opacity-100" style="transition-duration:500ms"><ul class="x:grid x:gap-1"><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/">Добро пожаловать в документацию Qwen Code</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/deployment/">Выполнение и Развертывание</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/architecture/">Обзор Архитектуры</a></li><li class=""><button class="x:transition x:cursor-pointer x:items-center x:justify-between x:gap-2 x:text-start x:w-full x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" data-href="/ru/cli" type="button" data-headlessui-state="">Руководство по использованию CLI<svg viewBox="0 0 24 24" stroke="currentColor" fill="none" stroke-width="2" height="18" class="x:shrink-0 x:rounded-sm x:p-0.5 x:hover:bg-gray-800/5 x:dark:hover:bg-gray-100/5 x:motion-reduce:transition-none x:origin-center x:transition-all x:rtl:-rotate-180"><path d="M9 5l7 7-7 7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><div class="x:transform-gpu x:transition-all x:ease-in-out x:motion-reduce:transition-none x:opacity-0 x:overflow-hidden" style="height:0;transition-duration:300ms"><ul class="x:grid x:gap-1 x:relative x:before:absolute x:before:inset-y-1 x:before:w-px x:before:bg-gray-200 x:before:content-[""] x:dark:before:bg-neutral-800 x:ps-3 x:before:start-0 x:pt-1 x:ms-3"><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/cli/">Обзор CLI</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/cli/commands/">Справочник Команд</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/cli/configuration/">Руководство по Конфигурации</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/cli/authentication/">Настройка Аутентификации</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/cli/openai-auth/">Аутентификация OpenAI</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/cli/token-caching/">Кэширование Токенов</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/cli/themes/">Конфигурация Тем</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/cli/tutorials/">Учебные Пособия</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/cli/welcome-back/">Функция Welcome Back</a></li></ul></div></li><li class=""><button class="x:transition x:cursor-pointer x:items-center x:justify-between x:gap-2 x:text-start x:w-full x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" data-href="/ru/core" type="button" data-headlessui-state="">Основные Детали<svg viewBox="0 0 24 24" stroke="currentColor" fill="none" stroke-width="2" height="18" class="x:shrink-0 x:rounded-sm x:p-0.5 x:hover:bg-gray-800/5 x:dark:hover:bg-gray-100/5 x:motion-reduce:transition-none x:origin-center x:transition-all x:rtl:-rotate-180"><path d="M9 5l7 7-7 7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><div class="x:transform-gpu x:transition-all x:ease-in-out x:motion-reduce:transition-none x:opacity-0 x:overflow-hidden" style="height:0;transition-duration:300ms"><ul class="x:grid x:gap-1 x:relative x:before:absolute x:before:inset-y-1 x:before:w-px x:before:bg-gray-200 x:before:content-[""] x:dark:before:bg-neutral-800 x:ps-3 x:before:start-0 x:pt-1 x:ms-3"><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/core/">Обзор Ядра</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/core/tools-api/">API Инструментов</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/core/memport/">Процессор Импорта Памяти</a></li></ul></div></li><li class="open"><button class="x:transition x:cursor-pointer x:items-center x:justify-between x:gap-2 x:text-start x:w-full x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" data-href="/ru/tools" type="button" data-headlessui-state="">Коллекция Инструментов<svg viewBox="0 0 24 24" stroke="currentColor" fill="none" stroke-width="2" height="18" class="x:shrink-0 x:rounded-sm x:p-0.5 x:hover:bg-gray-800/5 x:dark:hover:bg-gray-100/5 x:motion-reduce:transition-none x:origin-center x:transition-all x:rtl:-rotate-180 x:ltr:rotate-90 x:rtl:-rotate-270"><path d="M9 5l7 7-7 7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><div class="x:transform-gpu x:transition-all x:ease-in-out x:motion-reduce:transition-none x:opacity-100" style="transition-duration:500ms"><ul class="x:grid x:gap-1 x:relative x:before:absolute x:before:inset-y-1 x:before:w-px x:before:bg-gray-200 x:before:content-[""] x:dark:before:bg-neutral-800 x:ps-3 x:before:start-0 x:pt-1 x:ms-3"><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/tools/">Обзор Инструментов</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/tools/file-system/">Инструменты Файловой Системы</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/tools/multi-file/">Инструменты Чтения Множественных Файлов</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/tools/shell/">Инструменты Shell</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/tools/web-fetch/">Инструменты Web Fetch</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/tools/web-search/">Инструменты Веб-Поиска</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/tools/memory/">Инструменты Памяти</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/tools/todo-write/">Инструмент Todo Write</a></li><li class="active"><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:bg-primary-100 x:font-semibold x:text-primary-800 x:dark:bg-primary-400/10 x:dark:text-primary-600 x:contrast-more:border-primary-500!" href="/qwen-code-docs/ru/tools/mcp-server/">MCP Сервер</a></li></ul></div></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/checkpointing/">Функция Контрольных Точек</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/extension/">Разработка Расширений</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/ide-integration/">Интеграция с IDE</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/telemetry/">Наблюдаемость</a></li><li class=""><button class="x:transition x:cursor-pointer x:items-center x:justify-between x:gap-2 x:text-start x:w-full x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" data-href="/ru/examples" type="button" data-headlessui-state="">Примеры Кода<svg viewBox="0 0 24 24" stroke="currentColor" fill="none" stroke-width="2" height="18" class="x:shrink-0 x:rounded-sm x:p-0.5 x:hover:bg-gray-800/5 x:dark:hover:bg-gray-100/5 x:motion-reduce:transition-none x:origin-center x:transition-all x:rtl:-rotate-180"><path d="M9 5l7 7-7 7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><div class="x:transform-gpu x:transition-all x:ease-in-out x:motion-reduce:transition-none x:opacity-0 x:overflow-hidden" style="height:0;transition-duration:300ms"><ul class="x:grid x:gap-1 x:relative x:before:absolute x:before:inset-y-1 x:before:w-px x:before:bg-gray-200 x:before:content-[""] x:dark:before:bg-neutral-800 x:ps-3 x:before:start-0 x:pt-1 x:ms-3"><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/examples/proxy-script/">Пример Прокси-Скрипта</a></li></ul></div></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/npm/">Управление Пакетами</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/gemini-ignore/">Конфигурация Игнорируемых Файлов</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/integration-tests/">Интеграционные Тесты</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/keyboard-shortcuts/">Горячие Клавиши</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/sandbox/">Механизм Песочницы</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/issue-and-pr-automation/">Автоматизированная Обработка</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/troubleshooting/">Устранение Неполадок</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/tos-privacy/">Условия Использования и Конфиденциальность</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/Uninstall/">Руководство по Удалению</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-600 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/qwen-code-docs/ru/subagents/">Субагенты</a></li></ul></div></div><div class="x:sticky x:bottom-0 x:bg-nextra-bg nextra-sidebar-footer x:border-t nextra-border x:flex x:items-center x:gap-2 x:py-4 x:mx-4"><button title="Change language" class="x:cursor-pointer x:h-7 x:rounded-md x:px-2 x:text-xs x:font-medium x:transition-colors x:text-gray-600 x:dark:text-gray-400 x:flex x:items-center x:gap-2 x:grow" id="headlessui-listbox-button-:R6rapuun9ukq:" type="button" aria-haspopup="listbox" aria-expanded="false" data-headlessui-state=""><svg viewBox="2 2 16 16" fill="currentColor" height="12"><path fill-rule="evenodd" d="M4.083 9h1.946c.089-1.546.383-2.97.837-4.118A6.004 6.004 0 004.083 9zM10 2a8 8 0 100 16 8 8 0 000-16zm0 2c-.076 0-.232.032-.465.262-.238.234-.497.623-.737 1.182-.389.907-.673 2.142-.766 3.556h3.936c-.093-1.414-.377-2.649-.766-3.556-.24-.56-.5-.948-.737-1.182C10.232 4.032 10.076 4 10 4zm3.971 5c-.089-1.546-.383-2.97-.837-4.118A6.004 6.004 0 0115.917 9h-1.946zm-2.003 2H8.032c.093 1.414.377 2.649.766 3.556.24.56.5.948.737 1.182.233.23.389.262.465.262.076 0 .232-.032.465-.262.238-.234.498-.623.737-1.182.389-.907.673-2.142.766-3.556zm1.166 4.118c.454-1.147.748-2.572.837-4.118h1.946a6.004 6.004 0 01-2.783 4.118zm-6.268 0C6.412 13.97 6.118 12.546 6.03 11H4.083a6.004 6.004 0 002.783 4.118z"></path></svg>Русский</button><button title="Change theme" class="x:cursor-pointer x:h-7 x:rounded-md x:px-2 x:text-xs x:font-medium x:transition-colors x:text-gray-600 x:dark:text-gray-400 x:flex x:items-center x:gap-2" id="headlessui-listbox-button-:R6tapuun9ukq:" type="button" aria-haspopup="listbox" aria-expanded="false" data-headlessui-state=""><svg fill="currentColor" viewBox="2 2 20 20" stroke="currentColor" height="12"><path stroke-linecap="round" stroke-width="2" d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"></path></svg></button><button class="x:transition x:cursor-pointer x:rounded-md x:p-2 x:text-gray-600 x:dark:text-gray-400" aria-expanded="true" aria-controls=":Rpuun9ukq:" title="Collapse sidebar" type="button" data-headlessui-state=""><svg viewBox="0 0 16 16" fill="currentColor" height="12" class=""><path d="M4.177 7.823l2.396-2.396A.25.25 0 017 5.604v4.792a.25.25 0 01-.427.177L4.177 8.177a.25.25 0 010-.354z"></path><path fill-rule="evenodd" d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0114.25 16H1.75A1.75 1.75 0 010 14.25V1.75zm1.75-.25a.25.25 0 00-.25.25v12.5c0 .138.112.25.25.25H9.5v-13H1.75zm12.5 13H11v-13h3.25a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25z"></path></svg></button></div></aside><nav class="nextra-toc x:order-last x:max-xl:hidden x:w-64 x:shrink-0 x:print:hidden" aria-label="table of contents"><div class="x:grid x:grid-rows-[min-content_1fr_min-content] x:sticky x:top-(--nextra-navbar-height) x:text-sm x:max-h-[calc(100vh-var(--nextra-navbar-height))]"><p class="x:pt-6 x:px-4 x:font-semibold x:tracking-tight">On This Page</p><ul class="x:p-4 nextra-scrollbar x:overscroll-y-contain x:overflow-y-auto x:hyphens-auto nextra-mask"><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#что-такое-mcp-сервер" class="x:focus-visible:nextra-focus x:font-semibold x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Что такое MCP сервер?</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#архитектура-основной-интеграции" class="x:focus-visible:nextra-focus x:font-semibold x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Архитектура основной интеграции</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#слой-обнаружения-mcp-clientts" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Слой обнаружения (<code class="nextra-code" dir="ltr">mcp-client.ts</code>)</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#execution-layer-mcp-toolts" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Execution Layer (<code class="nextra-code" dir="ltr">mcp-tool.ts</code>)</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#transport-mechanisms" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Transport Mechanisms</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#как-настроить-свой-mcp-сервер" class="x:focus-visible:nextra-focus x:font-semibold x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Как настроить свой MCP сервер</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#настройка-mcp-сервера-в-settingsjson" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Настройка MCP-сервера в settings.json</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#структура-конфигурации" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Структура конфигурации</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#свойства-конфигурации" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Свойства конфигурации</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#обязательно-одно-из-следующих" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Обязательно (одно из следующих)</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#необязательные-параметры" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Необязательные параметры</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#поддержка-oauth-для-удаленных-mcp-серверов" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Поддержка OAuth для удаленных MCP серверов</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#автоматическое-обнаружение-oauth" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Автоматическое обнаружение OAuth</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#поток-аутентификации" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Поток аутентификации</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#требования-к-перенаправлению-браузера" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Требования к перенаправлению браузера</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#управление-oauth-аутентификацией" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Управление OAuth-аутентификацией</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#свойства-конфигурации-oauth" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Свойства конфигурации OAuth</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#примеры-конфигураций" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Примеры конфигураций</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#python-mcp-server-stdio" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Python MCP Server (Stdio)</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#nodejs-mcp-server-stdio" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Node.js MCP Server (Stdio)</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#docker-based-mcp-server" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Docker-based MCP Server</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#http-based-mcp-server" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">HTTP-based MCP Server</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#http-based-mcp-server-с-custom-headers" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">HTTP-based MCP Server с Custom Headers</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#mcp-server-с-фильтрацией-инструментов" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">MCP Server с фильтрацией инструментов</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#подробное-описание-процесса-обнаружения" class="x:focus-visible:nextra-focus x:font-semibold x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Подробное описание процесса обнаружения</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#1-итерация-по-серверам-и-подключение" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">1. Итерация по серверам и подключение</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#2-обнаружение-инструментов" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">2. Обнаружение инструментов</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#3-разрешение-конфликтов" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">3. Разрешение конфликтов</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#4-обработка-схем" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">4. Обработка схем</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#5-управление-подключениями" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">5. Управление подключениями</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#порядок-выполнения-инструментов" class="x:focus-visible:nextra-focus x:font-semibold x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Порядок выполнения инструментов</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#1-вызов-инструмента" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">1. Вызов инструмента</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#2-процесс-подтверждения" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">2. Процесс подтверждения</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#обход-на-основе-доверия" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Обход на основе доверия</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#динамическое-разрешение" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Динамическое разрешение</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#обработка-выбора-пользователя" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Обработка выбора пользователя</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#3-выполнение" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">3. Выполнение</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#4-обработка-ответа" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">4. Обработка ответа</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#как-взаимодействовать-с-вашим-mcp-сервером" class="x:focus-visible:nextra-focus x:font-semibold x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Как взаимодействовать с вашим MCP сервером</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#использование-команды-mcp" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Использование команды <code class="nextra-code" dir="ltr">/mcp</code></a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#пример-вывода-mcp" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Пример вывода <code class="nextra-code" dir="ltr">/mcp</code></a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#использование-инструментов" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Использование инструментов</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#мониторинг-состояния-и-устранение-неполадок" class="x:focus-visible:nextra-focus x:font-semibold x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Мониторинг состояния и устранение неполадок</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#состояния-подключения" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Состояния подключения</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#статус-сервера-mcpserverstatus" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Статус сервера (<code class="nextra-code" dir="ltr">MCPServerStatus</code>)</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#состояние-обнаружения-mcpdiscoverystate" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Состояние обнаружения (<code class="nextra-code" dir="ltr">MCPDiscoveryState</code>)</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#распространённые-проблемы-и-решения" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Распространённые проблемы и решения</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#сервер-не-подключается" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Сервер не подключается</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#инструменты-не-обнаружены" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Инструменты не обнаружены</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#инструменты-не-выполняются" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Инструменты не выполняются</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#совместимость-песочницы" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Совместимость песочницы</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#советы-по-отладке" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Советы по отладке</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#важные-замечания" class="x:focus-visible:nextra-focus x:font-semibold x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Важные замечания</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#вопросы-безопасности" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Вопросы безопасности</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#производительность-и-управление-ресурсами" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Производительность и управление ресурсами</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#совместимость-схем" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Совместимость схем</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#возврат-rich-content-из-инструментов" class="x:focus-visible:nextra-focus x:font-semibold x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Возврат Rich Content из инструментов</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#как-это-работает" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Как это работает</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#пример-возврат-текста-и-изображения" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Пример: возврат текста и изображения</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#mcp-prompts-как-slash-commands" class="x:focus-visible:nextra-focus x:font-semibold x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">MCP Prompts как Slash Commands</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#определение-промптов-на-сервере" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Определение промптов на сервере</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#вызов-промптов" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Вызов промптов</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#управление-mcp-серверами-с-помощью-qwen-mcp" class="x:focus-visible:nextra-focus x:font-semibold x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Управление MCP серверами с помощью <code class="nextra-code" dir="ltr">qwen mcp</code></a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#добавление-сервера-qwen-mcp-add" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Добавление сервера (<code class="nextra-code" dir="ltr">qwen mcp add</code>)</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#добавление-stdio-сервера" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Добавление stdio сервера</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#добавление-http-сервера" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Добавление HTTP сервера</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#добавление-sse-сервера" class="x:focus-visible:nextra-focus x:ms-6 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Добавление SSE сервера</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#просмотр-списка-серверов-qwen-mcp-list" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Просмотр списка серверов (<code class="nextra-code" dir="ltr">qwen mcp list</code>)</a></li><li class="x:my-2 x:scroll-my-6 x:scroll-py-6"><a href="#удаление-сервера-qwen-mcp-remove" class="x:focus-visible:nextra-focus x:ms-3 x:block x:transition-colors x:subpixel-antialiased x:text-gray-600 x:hover:text-gray-900 x:dark:text-gray-400 x:dark:hover:text-gray-300 x:contrast-more:text-gray-900 x:contrast-more:underline x:contrast-more:dark:text-gray-50 x:break-words">Удаление сервера (<code class="nextra-code" dir="ltr">qwen mcp remove</code>)</a></li></ul><div class="x:grid x:gap-2 x:py-4 x:mx-4 x:border-t nextra-border"><a href="https://github.com/QwenLM/qwen-code/issues/new?title=Feedback%20for%20%E2%80%9CMCP%20%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D1%8B%20%D1%81%20Qwen%20Code%E2%80%9D&labels=feedback" target="_blank" rel="noreferrer" class="x:focus-visible:nextra-focus x:text-xs x:font-medium x:transition x:text-gray-600 x:dark:text-gray-400 x:hover:text-gray-800 x:dark:hover:text-gray-200 x:contrast-more:text-gray-700 x:contrast-more:dark:text-gray-100">Question? Give us feedback<!-- --> <svg fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.7" viewBox="0 0 24 24" height="1em" class="x:inline x:align-baseline x:shrink-0"><path d="M7 17L17 7"></path><path d="M7 7h10v10"></path></svg></a><a href="https://github.com/QwenLM/qwen-code/blob/main/docs/content/ru/tools/mcp-server.md" target="_blank" rel="noreferrer" class="x:focus-visible:nextra-focus x:text-xs x:font-medium x:transition x:text-gray-600 x:dark:text-gray-400 x:hover:text-gray-800 x:dark:hover:text-gray-200 x:contrast-more:text-gray-700 x:contrast-more:dark:text-gray-100">Edit this page<!-- --> <svg fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.7" viewBox="0 0 24 24" height="1em" class="x:inline x:align-baseline x:shrink-0"><path d="M7 17L17 7"></path><path d="M7 7h10v10"></path></svg></a><button class="x:transition x:cursor-pointer x:flex x:items-center x:gap-1.5 x:whitespace-nowrap x:opacity-0 x:text-xs x:font-medium x:transition x:text-gray-600 x:dark:text-gray-400 x:hover:text-gray-800 x:dark:hover:text-gray-200 x:contrast-more:text-gray-700 x:contrast-more:dark:text-gray-100" aria-hidden="true" type="button" disabled="" data-headlessui-state="disabled" data-disabled="">Scroll to top<svg viewBox="0 0 24 24" stroke="currentColor" fill="none" stroke-width="2" height="1.1em" class="x:-rotate-90 x:border x:rounded-full x:border-current"><path d="M9 5l7 7-7 7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div></div></nav><article class="x:w-full x:min-w-0 x:break-words x:min-h-[calc(100vh-var(--nextra-navbar-height))] x:text-slate-700 x:dark:text-slate-200 x:pb-8 x:px-4 x:pt-4 x:md:px-12"><div class="nextra-breadcrumb x:mt-1.5 x:flex x:items-center x:gap-1 x:overflow-hidden x:text-sm x:text-gray-600 x:dark:text-gray-400 x:contrast-more:text-current"><a class="x:whitespace-nowrap x:transition-colors x:min-w-6 x:overflow-hidden x:text-ellipsis x:focus-visible:nextra-focus x:ring-inset x:hover:text-gray-900 x:dark:hover:text-gray-100" title="Коллекция Инструментов" href="/qwen-code-docs/ru/tools/">Коллекция Инструментов</a><svg viewBox="0 0 24 24" stroke="currentColor" fill="none" stroke-width="2" height="14" class="x:shrink-0 x:rtl:rotate-180"><path d="M9 5l7 7-7 7" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="x:whitespace-nowrap x:transition-colors x:font-medium x:text-black x:dark:text-gray-100" title="MCP Сервер">MCP Сервер</span></div><div id="nextra-skip-nav"></div><main data-pagefind-body="true"><h1 class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-bold x:mt-2 x:text-4xl">MCP серверы с Qwen Code</h1>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Этот документ содержит руководство по настройке и использованию Model Context Protocol (MCP) серверов с Qwen Code.</p>
|
||
<h2 id="что-такое-mcp-сервер" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border">Что такое MCP сервер?<a href="#что-такое-mcp-сервер" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h2>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">MCP сервер — это приложение, которое предоставляет инструменты и ресурсы для CLI через Model Context Protocol, позволяя ему взаимодействовать с внешними системами и источниками данных. MCP серверы выступают в роли моста между моделью и вашей локальной средой или другими сервисами, например API.</p>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">MCP сервер позволяет CLI:</p>
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]"><strong>Обнаруживать инструменты:</strong> Получать список доступных инструментов, их описания и параметры через стандартизированные схемы.</li>
|
||
<li class="x:my-[.5em]"><strong>Выполнять инструменты:</strong> Вызывать конкретные инструменты с заданными аргументами и получать структурированные ответы.</li>
|
||
<li class="x:my-[.5em]"><strong>Доступ к ресурсам:</strong> Читать данные из определённых ресурсов (хотя CLI в основном ориентирован на выполнение инструментов).</li>
|
||
</ul>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">С помощью MCP сервера вы можете расширить возможности CLI, чтобы выполнять действия, выходящие за рамки встроенных функций, например взаимодействовать с базами данных, API, пользовательскими скриптами или специализированными рабочими процессами.</p>
|
||
<h2 id="архитектура-основной-интеграции" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border">Архитектура основной интеграции<a href="#архитектура-основной-интеграции" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h2>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Qwen Code интегрируется с MCP-серверами через сложную систему обнаружения и выполнения, встроенную в основной пакет (<code class="nextra-code" dir="ltr">packages/core/src/tools/</code>):</p>
|
||
<h3 id="слой-обнаружения-mcp-clientts" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">Слой обнаружения (<code class="nextra-code" dir="ltr">mcp-client.ts</code>)<a href="#слой-обнаружения-mcp-clientts" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Процесс обнаружения координируется функцией <code class="nextra-code" dir="ltr">discoverMcpTools()</code>, которая:</p>
|
||
<ol class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6">
|
||
<li class="x:my-[.5em]"><strong>Перебирает настроенные серверы</strong> из конфигурации <code class="nextra-code" dir="ltr">mcpServers</code> в вашем <code class="nextra-code" dir="ltr">settings.json</code></li>
|
||
<li class="x:my-[.5em]"><strong>Устанавливает соединения</strong> с использованием соответствующих транспортных механизмов (Stdio, SSE или Streamable HTTP)</li>
|
||
<li class="x:my-[.5em]"><strong>Получает определения инструментов</strong> с каждого сервера по протоколу MCP</li>
|
||
<li class="x:my-[.5em]"><strong>Очищает и проверяет</strong> схемы инструментов на совместимость с Qwen API</li>
|
||
<li class="x:my-[.5em]"><strong>Регистрирует инструменты</strong> в глобальном реестре инструментов с разрешением конфликтов</li>
|
||
</ol>
|
||
<h3 id="execution-layer-mcp-toolts" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">Execution Layer (<code class="nextra-code" dir="ltr">mcp-tool.ts</code>)<a href="#execution-layer-mcp-toolts" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Каждый обнаруженный MCP tool оборачивается в экземпляр <code class="nextra-code" dir="ltr">DiscoveredMCPTool</code>, который:</p>
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]"><strong>Обрабатывает логику подтверждения</strong> на основе настроек доверия сервера и пользовательских предпочтений</li>
|
||
<li class="x:my-[.5em]"><strong>Управляет выполнением tool’а</strong> путем вызова MCP сервера с правильными параметрами</li>
|
||
<li class="x:my-[.5em]"><strong>Обрабатывает ответы</strong> как для контекста LLM, так и для отображения пользователю</li>
|
||
<li class="x:my-[.5em]"><strong>Сохраняет состояние подключения</strong> и обрабатывает таймауты</li>
|
||
</ul>
|
||
<h3 id="transport-mechanisms" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">Transport Mechanisms<a href="#transport-mechanisms" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">CLI поддерживает три типа транспорта MCP:</p>
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]"><strong>Stdio Transport:</strong> Запускает subprocess и общается через stdin/stdout</li>
|
||
<li class="x:my-[.5em]"><strong>SSE Transport:</strong> Подключается к endpoint’ам Server-Sent Events</li>
|
||
<li class="x:my-[.5em]"><strong>Streamable HTTP Transport:</strong> Использует HTTP streaming для коммуникации</li>
|
||
</ul>
|
||
<h2 id="как-настроить-свой-mcp-сервер" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border">Как настроить свой MCP сервер<a href="#как-настроить-свой-mcp-сервер" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h2>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Qwen Code использует конфигурацию <code class="nextra-code" dir="ltr">mcpServers</code> в вашем файле <code class="nextra-code" dir="ltr">settings.json</code>, чтобы находить и подключаться к MCP серверам. Эта конфигурация поддерживает несколько серверов с разными механизмами транспорта.</p>
|
||
<h3 id="настройка-mcp-сервера-в-settingsjson" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">Настройка MCP-сервера в settings.json<a href="#настройка-mcp-сервера-в-settingsjson" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Вы можете настроить MCP-серверы глобально в файле <code class="nextra-code" dir="ltr">~/.qwen/settings.json</code> или в корневой директории вашего проекта, создав или открыв файл <code class="nextra-code" dir="ltr">.qwen/settings.json</code>. Внутри файла добавьте блок конфигурации <code class="nextra-code" dir="ltr">mcpServers</code>.</p>
|
||
<h3 id="структура-конфигурации" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">Структура конфигурации<a href="#структура-конфигурации" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Добавьте объект <code class="nextra-code" dir="ltr">mcpServers</code> в ваш файл <code class="nextra-code" dir="ltr">settings.json</code>:</p>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{ </span><span style="--shiki-light:#B31D28;--shiki-light-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic">...файл</span><span style="--shiki-light:#B31D28;--shiki-light-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic"> содержит</span><span style="--shiki-light:#B31D28;--shiki-light-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic"> другие</span><span style="--shiki-light:#B31D28;--shiki-light-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic"> объекты</span><span style="--shiki-light:#B31D28;--shiki-light-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic"> конфигурации</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "mcpServers"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "serverName"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "command"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"path/to/server"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "args"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"--arg1"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"value1"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">],</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "env"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "API_KEY"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"$MY_API_TOKEN"</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "cwd"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"./server-directory"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "timeout"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">30000</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "trust"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">false</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre></div>
|
||
<h3 id="свойства-конфигурации" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">Свойства конфигурации<a href="#свойства-конфигурации" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Каждая конфигурация сервера поддерживает следующие свойства:</p>
|
||
<h4 id="обязательно-одно-из-следующих" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">Обязательно (одно из следующих)<a href="#обязательно-одно-из-следующих" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">command</code></strong> (string): Путь к исполняемому файлу для транспорта Stdio</li>
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">url</code></strong> (string): URL endpoint для SSE (например, <code class="nextra-code" dir="ltr">"http://localhost:8080/sse"</code>)</li>
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">httpUrl</code></strong> (string): URL endpoint для HTTP streaming</li>
|
||
</ul>
|
||
<h4 id="необязательные-параметры" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">Необязательные параметры<a href="#необязательные-параметры" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">args</code></strong> (string[]): Аргументы командной строки для транспорта Stdio</li>
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">headers</code></strong> (object): Пользовательские HTTP-заголовки при использовании <code class="nextra-code" dir="ltr">url</code> или <code class="nextra-code" dir="ltr">httpUrl</code></li>
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">env</code></strong> (object): Переменные окружения для процесса сервера. Значения могут ссылаться на переменные окружения с использованием синтаксиса <code class="nextra-code" dir="ltr">$VAR_NAME</code> или <code class="nextra-code" dir="ltr">${VAR_NAME}</code></li>
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">cwd</code></strong> (string): Рабочая директория для транспорта Stdio</li>
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">timeout</code></strong> (number): Таймаут запроса в миллисекундах (по умолчанию: 600,000 мс = 10 минут)</li>
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">trust</code></strong> (boolean): Если <code class="nextra-code" dir="ltr">true</code>, отключает все подтверждения вызовов инструментов для этого сервера (по умолчанию: <code class="nextra-code" dir="ltr">false</code>)</li>
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">includeTools</code></strong> (string[]): Список названий инструментов, которые нужно подключить с этого MCP-сервера. Если указано, то будут доступны только перечисленные здесь инструменты (whitelist-поведение). Если не указано, по умолчанию активны все инструменты сервера.</li>
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">excludeTools</code></strong> (string[]): Список названий инструментов, которые нужно исключить с этого MCP-сервера. Указанные здесь инструменты будут недоступны модели, даже если сервер их предоставляет. <strong>Примечание:</strong> <code class="nextra-code" dir="ltr">excludeTools</code> имеет приоритет над <code class="nextra-code" dir="ltr">includeTools</code> — если инструмент присутствует в обоих списках, он будет исключён.</li>
|
||
</ul>
|
||
<h3 id="поддержка-oauth-для-удаленных-mcp-серверов" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">Поддержка OAuth для удаленных MCP серверов<a href="#поддержка-oauth-для-удаленных-mcp-серверов" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Qwen Code поддерживает аутентификацию OAuth 2.0 для удаленных MCP серверов с использованием транспортов SSE или HTTP. Это позволяет безопасно получать доступ к MCP серверам, которые требуют аутентификации.</p>
|
||
<h4 id="автоматическое-обнаружение-oauth" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">Автоматическое обнаружение OAuth<a href="#автоматическое-обнаружение-oauth" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Для серверов, которые поддерживают автоматическое обнаружение OAuth, вы можете опустить конфигурацию OAuth и позволить CLI обнаружить её автоматически:</p>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "mcpServers"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "discoveredServer"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "url"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"https://api.example.com/sse"</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre></div>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">CLI автоматически:</p>
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]">Определяет, когда сервер требует аутентификацию через OAuth (ответы 401)</li>
|
||
<li class="x:my-[.5em]">Обнаруживает OAuth эндпоинты из метаданных сервера</li>
|
||
<li class="x:my-[.5em]">Выполняет динамическую регистрацию клиента, если это поддерживается</li>
|
||
<li class="x:my-[.5em]">Обрабатывает OAuth flow и управление токенами</li>
|
||
</ul>
|
||
<h4 id="поток-аутентификации" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">Поток аутентификации<a href="#поток-аутентификации" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">При подключении к серверу с поддержкой OAuth:</p>
|
||
<ol class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6">
|
||
<li class="x:my-[.5em]"><strong>Первая попытка подключения</strong> завершается ошибкой 401 Unauthorized</li>
|
||
<li class="x:my-[.5em]"><strong>Обнаружение OAuth</strong> находит endpoint’ы авторизации и получения токенов</li>
|
||
<li class="x:my-[.5em]"><strong>Открывается браузер</strong> для аутентификации пользователя (требуется доступ к локальному браузеру)</li>
|
||
<li class="x:my-[.5em]"><strong>Authorization code</strong> обменивается на access token’ы</li>
|
||
<li class="x:my-[.5em]"><strong>Токены безопасно сохраняются</strong> для последующего использования</li>
|
||
<li class="x:my-[.5em]"><strong>Повторная попытка подключения</strong> проходит успешно с действующими токенами</li>
|
||
</ol>
|
||
<h4 id="требования-к-перенаправлению-браузера" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">Требования к перенаправлению браузера<a href="#требования-к-перенаправлению-браузера" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7"><strong>Важно:</strong> Для аутентификации через OAuth ваша локальная машина должна:</p>
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]">Открывать веб-браузер для аутентификации</li>
|
||
<li class="x:my-[.5em]">Принимать перенаправления по адресу <code class="nextra-code" dir="ltr">http://localhost:7777/oauth/callback</code></li>
|
||
</ul>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Эта функция не будет работать в:</p>
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]">Headless-средах без доступа к браузеру</li>
|
||
<li class="x:my-[.5em]">Удалённых SSH-сессиях без X11 forwarding</li>
|
||
<li class="x:my-[.5em]">Контейнеризованных средах без поддержки браузера</li>
|
||
</ul>
|
||
<h4 id="управление-oauth-аутентификацией" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">Управление OAuth-аутентификацией<a href="#управление-oauth-аутентификацией" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Используйте команду <code class="nextra-code" dir="ltr">/mcp auth</code> для управления OAuth-аутентификацией:</p>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span> </span>
|
||
<span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># Показать список серверов, требующих аутентификацию</span></span>
|
||
<span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">/mcp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> auth</span></span></code></pre></div>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold"># Аутентификация на определенном сервере</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">/mcp auth serverName</span></span>
|
||
<span> </span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold"># Повторная аутентификация при истечении срока действия токенов</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">/mcp auth serverName</span></span></code></pre></div>
|
||
<h4 id="свойства-конфигурации-oauth" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">Свойства конфигурации OAuth<a href="#свойства-конфигурации-oauth" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">enabled</code></strong> (boolean): Включить OAuth для этого сервера</li>
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">clientId</code></strong> (string): Идентификатор клиента OAuth (необязательно при динамической регистрации)</li>
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">clientSecret</code></strong> (string): Секрет клиента OAuth (необязательно для публичных клиентов)</li>
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">authorizationUrl</code></strong> (string): Конечная точка авторизации OAuth (автоматически определяется, если не указана)</li>
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">tokenUrl</code></strong> (string): Конечная точка токена OAuth (автоматически определяется, если не указана)</li>
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">scopes</code></strong> (string[]): Требуемые scope’ы OAuth</li>
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">redirectUri</code></strong> (string): Пользовательский URI перенаправления (по умолчанию <code class="nextra-code" dir="ltr">http://localhost:7777/oauth/callback</code>)</li>
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">tokenParamName</code></strong> (string): Имя параметра запроса для токенов в URL SSE</li>
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">audiences</code></strong> (string[]): Аудитории, для которых токен действителен</li>
|
||
</ul>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span></span></span>
|
||
<span><span>#### Управление токенами</span></span>
|
||
<span><span></span></span>
|
||
<span><span>OAuth токены автоматически:</span></span>
|
||
<span><span></span></span>
|
||
<span><span>- **Безопасно хранятся** в `~/.qwen/mcp-oauth-tokens.json`</span></span>
|
||
<span><span>- **Обновляются** при истечении срока действия (если доступны refresh токены)</span></span>
|
||
<span><span>- **Проверяются** перед каждой попыткой подключения</span></span>
|
||
<span><span>- **Очищаются** при недействительности или истечении срока действия</span></span>
|
||
<span><span></span></span>
|
||
<span><span>#### Тип провайдера аутентификации</span></span>
|
||
<span><span></span></span>
|
||
<span><span>Вы можете указать тип провайдера аутентификации с помощью свойства `authProviderType`:</span></span>
|
||
<span><span></span></span>
|
||
<span><span>- **`authProviderType`** (string): Определяет провайдер аутентификации. Может принимать одно из следующих значений:</span></span>
|
||
<span><span> - **`dynamic_discovery`** (по умолчанию): CLI автоматически обнаружит конфигурацию OAuth с сервера.</span></span>
|
||
<span><span> - **`google_credentials`**: CLI будет использовать Google Application Default Credentials (ADC) для аутентификации на сервере. При использовании этого провайдера необходимо указать требуемые scopes.</span></span>
|
||
<span><span></span></span>
|
||
<span><span>```json</span></span>
|
||
<span><span>{</span></span>
|
||
<span><span> "mcpServers": {</span></span>
|
||
<span><span> "googleCloudServer": {</span></span>
|
||
<span><span> "httpUrl": "https://my-gcp-service.run.app/mcp",</span></span>
|
||
<span><span> "authProviderType": "google_credentials",</span></span>
|
||
<span><span> "oauth": {</span></span>
|
||
<span><span> "scopes": ["https://www.googleapis.com/auth/userinfo.email"]</span></span>
|
||
<span><span> }</span></span>
|
||
<span><span> }</span></span>
|
||
<span><span> }</span></span>
|
||
<span><span>}</span></span></code></pre></div>
|
||
<h3 id="примеры-конфигураций" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">Примеры конфигураций<a href="#примеры-конфигураций" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<h4 id="python-mcp-server-stdio" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">Python MCP Server (Stdio)<a href="#python-mcp-server-stdio" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "mcpServers"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "pythonTools"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "command"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"python"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "args"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"-m"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"my_mcp_server"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"--port"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"8080"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">],</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "cwd"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"./mcp-servers/python"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "env"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "DATABASE_URL"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"$DB_CONNECTION_STRING"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "API_KEY"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"${EXTERNAL_API_KEY}"</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "timeout"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">15000</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre></div>
|
||
<h4 id="nodejs-mcp-server-stdio" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">Node.js MCP Server (Stdio)<a href="#nodejs-mcp-server-stdio" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "mcpServers"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "nodeServer"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "command"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"node"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "args"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"dist/server.js"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"--verbose"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">],</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "cwd"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"./mcp-servers/node"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "trust"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">true</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre></div>
|
||
<h4 id="docker-based-mcp-server" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">Docker-based MCP Server<a href="#docker-based-mcp-server" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "mcpServers"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "dockerizedServer"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "command"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"docker"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "args"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: [</span></span>
|
||
<span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "run"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "-i"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "--rm"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "-e"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "API_KEY"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "-v"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "${PWD}:/workspace"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "my-mcp-server:latest"</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ],</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "env"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "API_KEY"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"$EXTERNAL_SERVICE_TOKEN"</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre></div>
|
||
<h4 id="http-based-mcp-server" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">HTTP-based MCP Server<a href="#http-based-mcp-server" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "mcpServers"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "httpServer"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "httpUrl"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"http://localhost:3000/mcp"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "timeout"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">5000</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre></div>
|
||
<h4 id="http-based-mcp-server-с-custom-headers" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">HTTP-based MCP Server с Custom Headers<a href="#http-based-mcp-server-с-custom-headers" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "mcpServers"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "httpServerWithAuth"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "httpUrl"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"http://localhost:3000/mcp"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "headers"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "Authorization"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Bearer your-api-token"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "X-Custom-Header"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"custom-value"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "Content-Type"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"application/json"</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "timeout"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">5000</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre></div>
|
||
<h4 id="mcp-server-с-фильтрацией-инструментов" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">MCP Server с фильтрацией инструментов<a href="#mcp-server-с-фильтрацией-инструментов" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "mcpServers"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "filteredServer"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "command"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"python"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "args"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"-m"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"my_mcp_server"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">],</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "includeTools"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"safe_tool"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"file_reader"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"data_processor"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">],</span></span>
|
||
<span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> // "excludeTools": ["dangerous_tool", "file_deleter"],</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "timeout"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">30000</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre></div>
|
||
<h2 id="подробное-описание-процесса-обнаружения" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border">Подробное описание процесса обнаружения<a href="#подробное-описание-процесса-обнаружения" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h2>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Когда Qwen Code запускается, он выполняет обнаружение MCP-серверов через следующий детализированный процесс:</p>
|
||
<h3 id="1-итерация-по-серверам-и-подключение" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">1. Итерация по серверам и подключение<a href="#1-итерация-по-серверам-и-подключение" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Для каждого сконфигурированного сервера в <code class="nextra-code" dir="ltr">mcpServers</code>:</p>
|
||
<ol class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6">
|
||
<li class="x:my-[.5em]"><strong>Начинается отслеживание статуса:</strong> Статус сервера устанавливается в <code class="nextra-code" dir="ltr">CONNECTING</code></li>
|
||
<li class="x:my-[.5em]"><strong>Выбор транспорта:</strong> В зависимости от свойств конфигурации:
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]"><code class="nextra-code" dir="ltr">httpUrl</code> → <code class="nextra-code" dir="ltr">StreamableHTTPClientTransport</code></li>
|
||
<li class="x:my-[.5em]"><code class="nextra-code" dir="ltr">url</code> → <code class="nextra-code" dir="ltr">SSEClientTransport</code></li>
|
||
<li class="x:my-[.5em]"><code class="nextra-code" dir="ltr">command</code> → <code class="nextra-code" dir="ltr">StdioClientTransport</code></li>
|
||
</ul>
|
||
</li>
|
||
<li class="x:my-[.5em]"><strong>Установка соединения:</strong> MCP-клиент пытается установить соединение с заданным таймаутом</li>
|
||
<li class="x:my-[.5em]"><strong>Обработка ошибок:</strong> Ошибки подключения логируются, а статус сервера устанавливается в <code class="nextra-code" dir="ltr">DISCONNECTED</code></li>
|
||
</ol>
|
||
<h3 id="2-обнаружение-инструментов" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">2. Обнаружение инструментов<a href="#2-обнаружение-инструментов" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">После успешного подключения:</p>
|
||
<ol class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6">
|
||
<li class="x:my-[.5em]"><strong>Получение списка инструментов:</strong> Клиент вызывает endpoint получения списка инструментов сервера MCP</li>
|
||
<li class="x:my-[.5em]"><strong>Валидация схемы:</strong> Проверяется объявление функции каждого инструмента</li>
|
||
<li class="x:my-[.5em]"><strong>Фильтрация инструментов:</strong> Инструменты фильтруются на основе конфигурации <code class="nextra-code" dir="ltr">includeTools</code> и <code class="nextra-code" dir="ltr">excludeTools</code></li>
|
||
<li class="x:my-[.5em]"><strong>Очистка имен:</strong> Имена инструментов приводятся в соответствие с требованиями Qwen API:
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]">Недопустимые символы (все, кроме букв, цифр, подчеркивания, точки и дефиса) заменяются на подчеркивание</li>
|
||
<li class="x:my-[.5em]">Имена длиннее 63 символов обрезаются с заменой средней части (<code class="nextra-code" dir="ltr">___</code>)</li>
|
||
</ul>
|
||
</li>
|
||
</ol>
|
||
<h3 id="3-разрешение-конфликтов" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">3. Разрешение конфликтов<a href="#3-разрешение-конфликтов" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Когда несколько серверов предоставляют инструменты с одинаковыми именами:</p>
|
||
<ol class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6">
|
||
<li class="x:my-[.5em]"><strong>Первый зарегистрированный побеждает:</strong> Первый сервер, зарегистрировавший имя инструмента, получает имя без префикса</li>
|
||
<li class="x:my-[.5em]"><strong>Автоматическое добавление префикса:</strong> Последующие серверы получают имена с префиксом: <code class="nextra-code" dir="ltr">serverName__toolName</code></li>
|
||
<li class="x:my-[.5em]"><strong>Отслеживание в реестре:</strong> Реестр инструментов хранит сопоставления между именами серверов и их инструментами</li>
|
||
</ol>
|
||
<h3 id="4-обработка-схем" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">4. Обработка схем<a href="#4-обработка-схем" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Схемы параметров инструментов проходят санитизацию для совместимости с API:</p>
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]"><strong>Свойства <code class="nextra-code" dir="ltr">$schema</code></strong> удаляются</li>
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">additionalProperties</code></strong> вырезаются</li>
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">anyOf</code> с <code class="nextra-code" dir="ltr">default</code></strong> теряют значения по умолчанию (совместимость с Vertex AI)</li>
|
||
<li class="x:my-[.5em]"><strong>Рекурсивная обработка</strong> применяется к вложенным схемам</li>
|
||
</ul>
|
||
<h3 id="5-управление-подключениями" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">5. Управление подключениями<a href="#5-управление-подключениями" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">После обнаружения:</p>
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]"><strong>Постоянные подключения:</strong> Серверы, которые успешно зарегистрировали инструменты, сохраняют свои подключения</li>
|
||
<li class="x:my-[.5em]"><strong>Очистка:</strong> Подключения серверов, не предоставивших рабочих инструментов, закрываются</li>
|
||
<li class="x:my-[.5em]"><strong>Обновление статуса:</strong> Финальный статус сервера устанавливается как <code class="nextra-code" dir="ltr">CONNECTED</code> или <code class="nextra-code" dir="ltr">DISCONNECTED</code></li>
|
||
</ul>
|
||
<h2 id="порядок-выполнения-инструментов" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border">Порядок выполнения инструментов<a href="#порядок-выполнения-инструментов" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h2>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Когда модель решает использовать инструмент MCP, происходит следующий процесс выполнения:</p>
|
||
<h3 id="1-вызов-инструмента" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">1. Вызов инструмента<a href="#1-вызов-инструмента" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Модель генерирует <code class="nextra-code" dir="ltr">FunctionCall</code> с:</p>
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]"><strong>Имя инструмента:</strong> Зарегистрированное имя (возможно, с префиксом)</li>
|
||
<li class="x:my-[.5em]"><strong>Аргументы:</strong> JSON-объект, соответствующий схеме параметров инструмента</li>
|
||
</ul>
|
||
<h3 id="2-процесс-подтверждения" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">2. Процесс подтверждения<a href="#2-процесс-подтверждения" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Каждый <code class="nextra-code" dir="ltr">DiscoveredMCPTool</code> реализует сложную логику подтверждения:</p>
|
||
<h4 id="обход-на-основе-доверия" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">Обход на основе доверия<a href="#обход-на-основе-доверия" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">this</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.trust) {</span></span>
|
||
<span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> false</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">; </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Подтверждение не требуется</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre></div>
|
||
<h4 id="динамическое-разрешение" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">Динамическое разрешение<a href="#динамическое-разрешение" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Система поддерживает внутренние allow-lists для:</p>
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]"><strong>На уровне сервера:</strong> <code class="nextra-code" dir="ltr">serverName</code> → Все инструменты с этого сервера считаются доверенными</li>
|
||
<li class="x:my-[.5em]"><strong>На уровне инструмента:</strong> <code class="nextra-code" dir="ltr">serverName.toolName</code> → Этот конкретный инструмент считается доверенным</li>
|
||
</ul>
|
||
<h4 id="обработка-выбора-пользователя" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">Обработка выбора пользователя<a href="#обработка-выбора-пользователя" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Когда требуется подтверждение, пользователь может выбрать:</p>
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]"><strong>Выполнить один раз:</strong> Выполнить только в этот раз</li>
|
||
<li class="x:my-[.5em]"><strong>Всегда разрешать этот инструмент:</strong> Добавить в allow-list на уровне инструмента</li>
|
||
<li class="x:my-[.5em]"><strong>Всегда разрешать этот сервер:</strong> Добавить в allow-list на уровне сервера</li>
|
||
<li class="x:my-[.5em]"><strong>Отмена:</strong> Прервать выполнение</li>
|
||
</ul>
|
||
<h3 id="3-выполнение" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">3. Выполнение<a href="#3-выполнение" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">После подтверждения (или обхода доверия):</p>
|
||
<ol class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6">
|
||
<li class="x:my-[.5em]">
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7"><strong>Подготовка параметров:</strong> Аргументы проверяются на соответствие схеме инструмента</p>
|
||
</li>
|
||
<li class="x:my-[.5em]">
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7"><strong>Вызов MCP:</strong> Базовый <code class="nextra-code" dir="ltr">CallableTool</code> вызывает сервер с:</p>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> functionCalls</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> [</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> name: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">this</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.serverToolName, </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Оригинальное имя инструмента на сервере</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> args: params,</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">];</span></span></code></pre></div>
|
||
</li>
|
||
<li class="x:my-[.5em]">
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7"><strong>Обработка ответа:</strong> Результаты форматируются как для контекста LLM, так и для отображения пользователю</p>
|
||
</li>
|
||
</ol>
|
||
<h3 id="4-обработка-ответа" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">4. Обработка ответа<a href="#4-обработка-ответа" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Результат выполнения содержит:</p>
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">llmContent</code>:</strong> Необработанные части ответа для контекста языковой модели</li>
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">returnDisplay</code>:</strong> Форматированный вывод для отображения пользователю (часто JSON в markdown code блоках)</li>
|
||
</ul>
|
||
<h2 id="как-взаимодействовать-с-вашим-mcp-сервером" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border">Как взаимодействовать с вашим MCP сервером<a href="#как-взаимодействовать-с-вашим-mcp-сервером" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h2>
|
||
<h3 id="использование-команды-mcp" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">Использование команды <code class="nextra-code" dir="ltr">/mcp</code><a href="#использование-команды-mcp" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Команда <code class="nextra-code" dir="ltr">/mcp</code> предоставляет полную информацию о настройке вашего MCP сервера:</p>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">/mcp</span></span></code></pre></div>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Вывод включает:</p>
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]"><strong>Список серверов:</strong> Все настроенные MCP серверы</li>
|
||
<li class="x:my-[.5em]"><strong>Статус подключения:</strong> <code class="nextra-code" dir="ltr">CONNECTED</code>, <code class="nextra-code" dir="ltr">CONNECTING</code> или <code class="nextra-code" dir="ltr">DISCONNECTED</code></li>
|
||
<li class="x:my-[.5em]"><strong>Детали сервера:</strong> Сводка конфигурации (без чувствительных данных)</li>
|
||
<li class="x:my-[.5em]"><strong>Доступные инструменты:</strong> Список инструментов с каждого сервера с описаниями</li>
|
||
<li class="x:my-[.5em]"><strong>Состояние обнаружения:</strong> Общий статус процесса обнаружения</li>
|
||
</ul>
|
||
<h3 id="пример-вывода-mcp" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">Пример вывода <code class="nextra-code" dir="ltr">/mcp</code><a href="#пример-вывода-mcp" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span>MCP Servers Status:</span></span>
|
||
<span><span></span></span>
|
||
<span><span>📡 pythonTools (CONNECTED)</span></span>
|
||
<span><span> Command: python -m my_mcp_server --port 8080</span></span>
|
||
<span><span> Working Directory: ./mcp-servers/python</span></span>
|
||
<span><span> Timeout: 15000ms</span></span>
|
||
<span><span> Tools: calculate_sum, file_analyzer, data_processor</span></span>
|
||
<span><span></span></span>
|
||
<span><span>🔌 nodeServer (DISCONNECTED)</span></span>
|
||
<span><span> Command: node dist/server.js --verbose</span></span>
|
||
<span><span> Error: Connection refused</span></span>
|
||
<span><span></span></span>
|
||
<span><span>🐳 dockerizedServer (CONNECTED)</span></span>
|
||
<span><span> Command: docker run -i --rm -e API_KEY my-mcp-server:latest</span></span>
|
||
<span><span> Tools: docker__deploy, docker__status</span></span>
|
||
<span><span></span></span>
|
||
<span><span>Discovery State: COMPLETED</span></span></code></pre></div>
|
||
<h3 id="использование-инструментов" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">Использование инструментов<a href="#использование-инструментов" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">После обнаружения инструменты MCP становятся доступны модели Qwen как встроенные инструменты. Модель автоматически:</p>
|
||
<ol class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6">
|
||
<li class="x:my-[.5em]"><strong>Выбирает подходящие инструменты</strong> в зависимости от ваших запросов</li>
|
||
<li class="x:my-[.5em]"><strong>Отображает диалоги подтверждения</strong> (если только сервер не является доверенным)</li>
|
||
<li class="x:my-[.5em]"><strong>Выполняет инструменты</strong> с корректными параметрами</li>
|
||
<li class="x:my-[.5em]"><strong>Отображает результаты</strong> в удобном для пользователя формате</li>
|
||
</ol>
|
||
<h2 id="мониторинг-состояния-и-устранение-неполадок" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border">Мониторинг состояния и устранение неполадок<a href="#мониторинг-состояния-и-устранение-неполадок" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h2>
|
||
<h3 id="состояния-подключения" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">Состояния подключения<a href="#состояния-подключения" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Интеграция MCP отслеживает несколько состояний:</p>
|
||
<h4 id="статус-сервера-mcpserverstatus" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">Статус сервера (<code class="nextra-code" dir="ltr">MCPServerStatus</code>)<a href="#статус-сервера-mcpserverstatus" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">DISCONNECTED</code>:</strong> Сервер не подключен или возникли ошибки</li>
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">CONNECTING</code>:</strong> Выполняется попытка подключения</li>
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">CONNECTED</code>:</strong> Сервер подключен и готов к работе</li>
|
||
</ul>
|
||
<h4 id="состояние-обнаружения-mcpdiscoverystate" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">Состояние обнаружения (<code class="nextra-code" dir="ltr">MCPDiscoveryState</code>)<a href="#состояние-обнаружения-mcpdiscoverystate" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">NOT_STARTED</code>:</strong> Обнаружение ещё не началось</li>
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">IN_PROGRESS</code>:</strong> В процессе обнаружения серверов</li>
|
||
<li class="x:my-[.5em]"><strong><code class="nextra-code" dir="ltr">COMPLETED</code>:</strong> Обнаружение завершено (с ошибками или без)</li>
|
||
</ul>
|
||
<h3 id="распространённые-проблемы-и-решения" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">Распространённые проблемы и решения<a href="#распространённые-проблемы-и-решения" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<h4 id="сервер-не-подключается" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">Сервер не подключается<a href="#сервер-не-подключается" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7"><strong>Симптомы:</strong> Сервер отображает статус <code class="nextra-code" dir="ltr">DISCONNECTED</code></p>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7"><strong>Устранение неполадок:</strong></p>
|
||
<ol class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6">
|
||
<li class="x:my-[.5em]"><strong>Проверьте конфигурацию:</strong> Убедитесь, что <code class="nextra-code" dir="ltr">command</code>, <code class="nextra-code" dir="ltr">args</code> и <code class="nextra-code" dir="ltr">cwd</code> указаны верно</li>
|
||
<li class="x:my-[.5em]"><strong>Протестируйте вручную:</strong> Запустите команду сервера напрямую, чтобы убедиться, что она работает</li>
|
||
<li class="x:my-[.5em]"><strong>Проверьте зависимости:</strong> Убедитесь, что все необходимые пакеты установлены</li>
|
||
<li class="x:my-[.5em]"><strong>Изучите логи:</strong> Найдите сообщения об ошибках в выводе CLI</li>
|
||
<li class="x:my-[.5em]"><strong>Проверьте права доступа:</strong> Убедитесь, что CLI может выполнить команду сервера</li>
|
||
</ol>
|
||
<h4 id="инструменты-не-обнаружены" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">Инструменты не обнаружены<a href="#инструменты-не-обнаружены" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7"><strong>Симптомы:</strong> Сервер подключается, но инструменты недоступны</p>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7"><strong>Устранение неполадок:</strong></p>
|
||
<ol class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6">
|
||
<li class="x:my-[.5em]"><strong>Проверьте регистрацию инструментов:</strong> Убедитесь, что ваш сервер действительно регистрирует инструменты</li>
|
||
<li class="x:my-[.5em]"><strong>Проверьте протокол MCP:</strong> Подтвердите, что ваш сервер правильно реализует список инструментов MCP</li>
|
||
<li class="x:my-[.5em]"><strong>Изучите логи сервера:</strong> Проверьте вывод stderr на наличие ошибок на стороне сервера</li>
|
||
<li class="x:my-[.5em]"><strong>Протестируйте список инструментов:</strong> Вручную протестируйте endpoint обнаружения инструментов вашего сервера</li>
|
||
</ol>
|
||
<h4 id="инструменты-не-выполняются" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">Инструменты не выполняются<a href="#инструменты-не-выполняются" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7"><strong>Симптомы:</strong> Инструменты обнаруживаются, но завершаются с ошибкой во время выполнения</p>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7"><strong>Устранение неполадок:</strong></p>
|
||
<ol class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6">
|
||
<li class="x:my-[.5em]"><strong>Валидация параметров:</strong> Убедитесь, что ваш инструмент принимает ожидаемые параметры</li>
|
||
<li class="x:my-[.5em]"><strong>Совместимость схем:</strong> Проверьте, что ваши input схемы являются валидными JSON Schema</li>
|
||
<li class="x:my-[.5em]"><strong>Обработка ошибок:</strong> Проверьте, не выбрасывает ли ваш инструмент необработанные исключения</li>
|
||
<li class="x:my-[.5em]"><strong>Проблемы с таймаутом:</strong> Рассмотрите возможность увеличения значения <code class="nextra-code" dir="ltr">timeout</code></li>
|
||
</ol>
|
||
<h4 id="совместимость-песочницы" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">Совместимость песочницы<a href="#совместимость-песочницы" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7"><strong>Симптомы:</strong> MCP серверы завершаются с ошибкой при включенной песочнице</p>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7"><strong>Решения:</strong></p>
|
||
<ol class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6">
|
||
<li class="x:my-[.5em]"><strong>Серверы на базе Docker:</strong> Используйте Docker контейнеры, которые включают все зависимости</li>
|
||
<li class="x:my-[.5em]"><strong>Доступность путей:</strong> Убедитесь, что исполняемые файлы сервера доступны в песочнице</li>
|
||
<li class="x:my-[.5em]"><strong>Доступ к сети:</strong> Настройте песочницу для разрешения необходимых сетевых подключений</li>
|
||
<li class="x:my-[.5em]"><strong>Переменные окружения:</strong> Проверьте, что необходимые переменные окружения передаются корректно</li>
|
||
</ol>
|
||
<h3 id="советы-по-отладке" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">Советы по отладке<a href="#советы-по-отладке" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<ol class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6">
|
||
<li class="x:my-[.5em]"><strong>Включите режим отладки:</strong> Запустите CLI с флагом <code class="nextra-code" dir="ltr">--debug</code>, чтобы получить подробный вывод</li>
|
||
<li class="x:my-[.5em]"><strong>Проверьте stderr:</strong> stderr сервера MCP записывается в лог (информационные сообщения фильтруются)</li>
|
||
<li class="x:my-[.5em]"><strong>Изолируйте тестирование:</strong> Протестируйте ваш MCP-сервер отдельно перед интеграцией</li>
|
||
<li class="x:my-[.5em]"><strong>Инкрементальная настройка:</strong> Начните с простых инструментов, прежде чем добавлять сложный функционал</li>
|
||
<li class="x:my-[.5em]"><strong>Часто используйте <code class="nextra-code" dir="ltr">/mcp</code>:</strong> Отслеживайте статус сервера во время разработки</li>
|
||
</ol>
|
||
<h2 id="важные-замечания" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border">Важные замечания<a href="#важные-замечания" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h2>
|
||
<h3 id="вопросы-безопасности" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">Вопросы безопасности<a href="#вопросы-безопасности" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]"><strong>Настройки доверия:</strong> Опция <code class="nextra-code" dir="ltr">trust</code> отключает все диалоги подтверждения. Используйте с осторожностью и только для серверов, которыми вы полностью управляете</li>
|
||
<li class="x:my-[.5em]"><strong>Токены доступа:</strong> Будьте внимательны к безопасности при настройке переменных окружения, содержащих API ключи или токены</li>
|
||
<li class="x:my-[.5em]"><strong>Совместимость с песочницей:</strong> При использовании песочницы убедитесь, что MCP-серверы доступны внутри песочничной среды</li>
|
||
<li class="x:my-[.5em]"><strong>Конфиденциальные данные:</strong> Использование персональных токенов с широкими правами может привести к утечке информации между репозиториями</li>
|
||
</ul>
|
||
<h3 id="производительность-и-управление-ресурсами" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">Производительность и управление ресурсами<a href="#производительность-и-управление-ресурсами" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]"><strong>Постоянные соединения:</strong> CLI поддерживает постоянные соединения с серверами, которые успешно зарегистрировали инструменты</li>
|
||
<li class="x:my-[.5em]"><strong>Автоматическая очистка:</strong> Соединения с серверами, не предоставляющими инструментов, автоматически закрываются</li>
|
||
<li class="x:my-[.5em]"><strong>Управление таймаутами:</strong> Настройте соответствующие таймауты в зависимости от характеристик ответов вашего сервера</li>
|
||
<li class="x:my-[.5em]"><strong>Мониторинг ресурсов:</strong> MCP-серверы запускаются как отдельные процессы и потребляют системные ресурсы</li>
|
||
</ul>
|
||
<h3 id="совместимость-схем" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">Совместимость схем<a href="#совместимость-схем" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]"><strong>Удаление свойств:</strong> Система автоматически удаляет определенные свойства схемы (<code class="nextra-code" dir="ltr">$schema</code>, <code class="nextra-code" dir="ltr">additionalProperties</code>) для совместимости с Qwen API</li>
|
||
<li class="x:my-[.5em]"><strong>Очистка имен:</strong> Имена инструментов автоматически очищаются для соответствия требованиям API</li>
|
||
<li class="x:my-[.5em]"><strong>Разрешение конфликтов:</strong> Конфликты имен инструментов между серверами разрешаются путем автоматического добавления префиксов</li>
|
||
</ul>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Эта комплексная интеграция делает MCP-серверы мощным способом расширения возможностей CLI с сохранением безопасности, надежности и удобства использования.</p>
|
||
<h2 id="возврат-rich-content-из-инструментов" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border">Возврат Rich Content из инструментов<a href="#возврат-rich-content-из-инструментов" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h2>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Инструменты MCP не ограничены возвратом простого текста. Вы можете возвращать rich, multi-part контент, включая текст, изображения, аудио и другие бинарные данные в одном ответе инструмента. Это позволяет создавать мощные инструменты, которые могут предоставлять модели разнообразную информацию за один ход.</p>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Все данные, возвращаемые из инструмента, обрабатываются и отправляются модели в качестве контекста для следующей генерации, позволяя ей рассуждать или суммировать предоставленную информацию.</p>
|
||
<h3 id="как-это-работает" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">Как это работает<a href="#как-это-работает" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Чтобы вернуть rich content, ответ вашего инструмента должен соответствовать спецификации MCP для <a href="https://modelcontextprotocol.io/specification/2025-06-18/server/tools#tool-result" target="_blank" rel="noreferrer" class="x:focus-visible:nextra-focus x:text-primary-600 x:underline x:hover:no-underline x:decoration-from-font x:[text-underline-position:from-font]"><code class="nextra-code" dir="ltr">CallToolResult</code></a>. Поле <code class="nextra-code" dir="ltr">content</code> результата должно быть массивом объектов <code class="nextra-code" dir="ltr">ContentBlock</code>. CLI корректно обработает этот массив, отделяя текст от бинарных данных и упаковывая их для модели.</p>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Вы можете комбинировать различные типы content блоков в массиве <code class="nextra-code" dir="ltr">content</code>. Поддерживаемые типы блоков включают:</p>
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]"><code class="nextra-code" dir="ltr">text</code></li>
|
||
<li class="x:my-[.5em]"><code class="nextra-code" dir="ltr">image</code></li>
|
||
<li class="x:my-[.5em]"><code class="nextra-code" dir="ltr">audio</code></li>
|
||
<li class="x:my-[.5em]"><code class="nextra-code" dir="ltr">resource</code> (встроенный контент)</li>
|
||
<li class="x:my-[.5em]"><code class="nextra-code" dir="ltr">resource_link</code></li>
|
||
</ul>
|
||
<h3 id="пример-возврат-текста-и-изображения" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">Пример: возврат текста и изображения<a href="#пример-возврат-текста-и-изображения" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Вот пример корректного JSON-ответа от инструмента MCP, который возвращает как текстовое описание, так и изображение:</p>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "content"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: [</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "type"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"text"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "text"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Вот логотип, который вы запрашивали."</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "type"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"image"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "data"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"BASE64_ENCODED_IMAGE_DATA_HERE"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "mimeType"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"image/png"</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "type"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"text"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "text"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Логотип был создан в 2025 году."</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ]</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre></div>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Когда Qwen Code получает этот ответ, он:</p>
|
||
<ol class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6">
|
||
<li class="x:my-[.5em]">Извлекает весь текст и объединяет его в одну часть <code class="nextra-code" dir="ltr">functionResponse</code> для модели.</li>
|
||
<li class="x:my-[.5em]">Представляет данные изображения как отдельную часть <code class="nextra-code" dir="ltr">inlineData</code>.</li>
|
||
<li class="x:my-[.5em]">Выводит понятное и дружелюбное резюме в CLI, указывая, что были получены и текст, и изображение.</li>
|
||
</ol>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Это позволяет создавать сложные инструменты, которые могут предоставлять модели Qwen богатый многомодальный контекст.</p>
|
||
<h2 id="mcp-prompts-как-slash-commands" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border">MCP Prompts как Slash Commands<a href="#mcp-prompts-как-slash-commands" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h2>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Помимо инструментов, MCP-серверы могут предоставлять预定义ные prompts, которые можно выполнять как slash commands внутри Qwen Code. Это позволяет создавать shortcuts для часто используемых или сложных запросов, которые можно легко вызывать по имени.</p>
|
||
<h3 id="определение-промптов-на-сервере" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">Определение промптов на сервере<a href="#определение-промптов-на-сервере" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Вот небольшой пример stdio MCP сервера, который определяет промпты:</p>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { McpServer } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> '@modelcontextprotocol/sdk/server/mcp.js'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
|
||
<span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { StdioServerTransport } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> '@modelcontextprotocol/sdk/server/stdio.js'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
|
||
<span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { z } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'zod'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
|
||
<span> </span>
|
||
<span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> server</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> McpServer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> name: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'prompt-server'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> version: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'1.0.0'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">});</span></span>
|
||
<span> </span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">server.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">registerPrompt</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span></span>
|
||
<span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'poem-writer'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> title: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'Poem Writer'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> description: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'Write a nice haiku'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> argsSchema: { title: z.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(), mood: z.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">().</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">optional</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">() },</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ({ </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">title</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">mood</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ({</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> messages: [</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> role: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'user'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> content: {</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'text'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> text: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`Write a haiku${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">mood</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> ?</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ` with the mood ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">mood</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}`</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> :</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ''} called ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">title</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}. Note that a haiku is 5 syllables followed by 7 syllables followed by 5 syllables `</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ],</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> }),</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
|
||
<span> </span>
|
||
<span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> transport</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> StdioServerTransport</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
|
||
<span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> server.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">connect</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(transport);</span></span></code></pre></div>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Это можно добавить в <code class="nextra-code" dir="ltr">settings.json</code> в разделе <code class="nextra-code" dir="ltr">mcpServers</code> следующим образом:</p>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"nodeServer"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "command"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"node"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> "args"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"filename.ts"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">],</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre></div>
|
||
<h3 id="вызов-промптов" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">Вызов промптов<a href="#вызов-промптов" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">После того как промпт будет обнаружен, вы можете вызвать его, используя его имя в качестве slash-команды. CLI автоматически обработает парсинг аргументов.</p>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">/poem-writer</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> --title=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Qwen Code"</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> --mood=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"reverent"</span></span></code></pre></div>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">или, используя позиционные аргументы:</p>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">/poem-writer</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "Qwen Code"</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> reverent</span></span></code></pre></div>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">При выполнении этой команды CLI вызывает метод <code class="nextra-code" dir="ltr">prompts/get</code> на сервере MCP с переданными аргументами. Сервер отвечает за подстановку аргументов в шаблон промпта и возвращает финальный текст промпта. Затем CLI отправляет этот промпт модели для выполнения. Это удобный способ автоматизировать и делиться общими рабочими процессами.</p>
|
||
<h2 id="управление-mcp-серверами-с-помощью-qwen-mcp" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border">Управление MCP серверами с помощью <code class="nextra-code" dir="ltr">qwen mcp</code><a href="#управление-mcp-серверами-с-помощью-qwen-mcp" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h2>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Хотя вы всегда можете настроить MCP сервера, отредактировав вручную файл <code class="nextra-code" dir="ltr">settings.json</code>, CLI предоставляет удобный набор команд для программного управления конфигурациями ваших серверов. Эти команды упрощают процесс добавления, просмотра и удаления MCP серверов без необходимости напрямую редактировать JSON файлы.</p>
|
||
<h3 id="добавление-сервера-qwen-mcp-add" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">Добавление сервера (<code class="nextra-code" dir="ltr">qwen mcp add</code>)<a href="#добавление-сервера-qwen-mcp-add" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Команда <code class="nextra-code" dir="ltr">add</code> настраивает новый MCP-сервер в вашем <code class="nextra-code" dir="ltr">settings.json</code>. В зависимости от области видимости (<code class="nextra-code" dir="ltr">-s, --scope</code>), сервер будет добавлен либо в пользовательский конфиг <code class="nextra-code" dir="ltr">~/.qwen/settings.json</code>, либо в проектный конфиг <code class="nextra-code" dir="ltr">.qwen/settings.json</code>.</p>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7"><strong>Команда:</strong></p>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">qwen</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> mcp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> add</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> [options] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"><</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">></span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> <</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">commandOrUrl</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> [args...]</span></span></code></pre></div>
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]"><code class="nextra-code" dir="ltr"><name></code>: Уникальное имя сервера.</li>
|
||
<li class="x:my-[.5em]"><code class="nextra-code" dir="ltr"><commandOrUrl></code>: Команда для выполнения (для <code class="nextra-code" dir="ltr">stdio</code>) или URL (для <code class="nextra-code" dir="ltr">http</code>/<code class="nextra-code" dir="ltr">sse</code>).</li>
|
||
<li class="x:my-[.5em]"><code class="nextra-code" dir="ltr">[args...]</code>: Опциональные аргументы для команды <code class="nextra-code" dir="ltr">stdio</code>.</li>
|
||
</ul>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7"><strong>Опции (флаги):</strong></p>
|
||
<ul class="x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]">
|
||
<li class="x:my-[.5em]"><code class="nextra-code" dir="ltr">-s, --scope</code>: Область конфигурации (user или project). [по умолчанию: “project”]</li>
|
||
<li class="x:my-[.5em]"><code class="nextra-code" dir="ltr">-t, --transport</code>: Тип транспорта (stdio, sse, http). [по умолчанию: “stdio”]</li>
|
||
<li class="x:my-[.5em]"><code class="nextra-code" dir="ltr">-e, --env</code>: Установить переменные окружения (например, -e KEY=value).</li>
|
||
<li class="x:my-[.5em]"><code class="nextra-code" dir="ltr">-H, --header</code>: Установить HTTP-заголовки для SSE и HTTP транспортов (например, -H “X-Api-Key: abc123” -H “Authorization: Bearer abc123”).</li>
|
||
<li class="x:my-[.5em]"><code class="nextra-code" dir="ltr">--timeout</code>: Установить таймаут подключения в миллисекундах.</li>
|
||
<li class="x:my-[.5em]"><code class="nextra-code" dir="ltr">--trust</code>: Доверять серверу (пропустить все подтверждения вызова инструментов).</li>
|
||
<li class="x:my-[.5em]"><code class="nextra-code" dir="ltr">--description</code>: Задать описание сервера.</li>
|
||
<li class="x:my-[.5em]"><code class="nextra-code" dir="ltr">--include-tools</code>: Список инструментов для включения, разделённый запятыми.</li>
|
||
<li class="x:my-[.5em]"><code class="nextra-code" dir="ltr">--exclude-tools</code>: Список инструментов для исключения, разделённый запятыми.</li>
|
||
</ul>
|
||
<h4 id="добавление-stdio-сервера" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">Добавление stdio сервера<a href="#добавление-stdio-сервера" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Это транспорт по умолчанию для запуска локальных серверов.</p>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span> </span>
|
||
<span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># Базовый синтаксис</span></span>
|
||
<span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">qwen</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> mcp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> add</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> <</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">nam</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">e</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">></span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> <</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">comman</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">d</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> [args...]</span></span>
|
||
<span> </span>
|
||
<span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># Пример: Добавление локального сервера</span></span>
|
||
<span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">qwen</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> mcp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> add</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> my-stdio-server</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -e</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> API_KEY=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">123</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> /path/to/server</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> arg1</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> arg2</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> arg3</span></span>
|
||
<span> </span>
|
||
<span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># Пример: Добавление локального python сервера</span></span>
|
||
<span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">qwen</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> mcp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> add</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> python-server</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> python</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> server.py</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> --port</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 8080</span></span></code></pre></div>
|
||
<h4 id="добавление-http-сервера" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">Добавление HTTP сервера<a href="#добавление-http-сервера" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Этот транспорт используется для серверов, которые используют потоковую передачу по HTTP.</p>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span> </span>
|
||
<span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># Базовый синтаксис</span></span>
|
||
<span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">qwen</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> mcp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> add</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> --transport</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> http</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> <</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">nam</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">e</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">></span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> <</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">ur</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">l</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">></span></span>
|
||
<span> </span>
|
||
<span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># Пример: Добавление HTTP сервера</span></span>
|
||
<span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">qwen</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> mcp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> add</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> --transport</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> http</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> http-server</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> https://api.example.com/mcp/</span></span>
|
||
<span> </span>
|
||
<span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># Пример: Добавление HTTP сервера с заголовком аутентификации</span></span>
|
||
<span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">qwen</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> mcp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> add</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> --transport</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> http</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> secure-http</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> https://api.example.com/mcp/</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> --header</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "Authorization: Bearer abc123"</span></span></code></pre></div>
|
||
<h4 id="добавление-sse-сервера" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl">Добавление SSE сервера<a href="#добавление-sse-сервера" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h4>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Этот транспорт используется для серверов, которые используют Server-Sent Events (SSE).</p>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span> </span>
|
||
<span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># Базовый синтаксис</span></span>
|
||
<span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">qwen</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> mcp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> add</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> --transport</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> sse</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> <</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">nam</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">e</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">></span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> <</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">ur</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">l</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">></span></span></code></pre></div>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold"># Пример: Добавление SSE-сервера</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">qwen mcp add --transport sse sse-server https://api.example.com/sse/</span></span>
|
||
<span> </span>
|
||
<span><span style="--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold"># Пример: Добавление SSE-сервера с заголовком авторизации</span></span>
|
||
<span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">qwen mcp add --transport sse secure-sse https://api.example.com/sse/ --header "Authorization: Bearer abc123"</span></span></code></pre></div>
|
||
<h3 id="просмотр-списка-серверов-qwen-mcp-list" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">Просмотр списка серверов (<code class="nextra-code" dir="ltr">qwen mcp list</code>)<a href="#просмотр-списка-серверов-qwen-mcp-list" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Чтобы посмотреть все настроенные MCP-серверы, используйте команду <code class="nextra-code" dir="ltr">list</code>. Она отобразит имя каждого сервера, его конфигурацию и статус подключения.</p>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7"><strong>Команда:</strong></p>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">qwen</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> mcp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> list</span></span></code></pre></div>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7"><strong>Пример вывода:</strong></p>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">✓</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> stdio-server:</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> command:</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> python3</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> server.py</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (stdio) - Connected</span></span>
|
||
<span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">✓</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> http-server:</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> https://api.example.com/mcp</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (http) - Connected</span></span>
|
||
<span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">✗</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> sse-server:</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> https://api.example.com/sse</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (sse) - Disconnected</span></span></code></pre></div>
|
||
<h3 id="удаление-сервера-qwen-mcp-remove" class="x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl">Удаление сервера (<code class="nextra-code" dir="ltr">qwen mcp remove</code>)<a href="#удаление-сервера-qwen-mcp-remove" class="x:focus-visible:nextra-focus subheading-anchor" aria-label="Permalink for this section"></a></h3>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Чтобы удалить сервер из вашей конфигурации, используйте команду <code class="nextra-code" dir="ltr">remove</code> с указанием имени сервера.</p>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7"><strong>Команда:</strong></p>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">qwen</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> mcp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> remove</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> <</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">nam</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">e</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">></span></span></code></pre></div>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7"><strong>Пример:</strong></p>
|
||
<div data-pagefind-ignore="all" class="nextra-code x:relative x:not-first:mt-[1.25em]"><pre class="x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose" tabindex="0"><div class="x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2"><button class="x:transition x:cursor-pointer x:border x:border-gray-300 x:dark:border-neutral-700 x:contrast-more:border-gray-900 x:contrast-more:dark:border-gray-50 x:rounded-md x:p-1.5 x:md:hidden" title="Toggle word wrap" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="currentColor" height="1em"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"></path></svg></button></div><code class="nextra-code" dir="ltr"><span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">qwen</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> mcp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> remove</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> my-server</span></span></code></pre></div>
|
||
<p class="x:not-first:mt-[1.25em] x:leading-7">Эта команда найдет и удалит запись “my-server” из объекта <code class="nextra-code" dir="ltr">mcpServers</code> в соответствующем файле <code class="nextra-code" dir="ltr">settings.json</code>, определяемом scope (<code class="nextra-code" dir="ltr">-s, --scope</code>).</p></main><div class="x:mt-12 x:mb-8 x:text-xs x:text-gray-600 x:text-end x:dark:text-gray-400">Last updated on<!-- --> <time dateTime="2026-09-17T17:32:34.000Z">17 сентября 2026 г.</time></div><div class="x:mb-8 x:flex x:items-center x:border-t x:pt-8 nextra-border x:print:hidden"><a title="Инструмент Todo Write" class="x:focus-visible:nextra-focus x:text-gray-600 x:dark:text-gray-400 x:hover:text-gray-800 x:dark:hover:text-gray-200 x:contrast-more:text-gray-700 x:contrast-more:dark:text-gray-100 x:flex x:max-w-[50%] x:items-center x:gap-1 x:py-4 x:text-base x:font-medium x:transition-colors x:[word-break:break-word] x:md:text-lg x:pe-4" href="/qwen-code-docs/ru/tools/todo-write/"><svg viewBox="0 0 24 24" stroke="currentColor" fill="none" stroke-width="2" height="20" class="x:inline x:shrink-0 x:ltr:rotate-180"><path d="M9 5l7 7-7 7" stroke-linecap="round" stroke-linejoin="round"></path></svg>Инструмент Todo Write</a><a title="Функция Контрольных Точек" class="x:focus-visible:nextra-focus x:text-gray-600 x:dark:text-gray-400 x:hover:text-gray-800 x:dark:hover:text-gray-200 x:contrast-more:text-gray-700 x:contrast-more:dark:text-gray-100 x:flex x:max-w-[50%] x:items-center x:gap-1 x:py-4 x:text-base x:font-medium x:transition-colors x:[word-break:break-word] x:md:text-lg x:ps-4 x:ms-auto x:text-end" href="/qwen-code-docs/ru/checkpointing/">Функция Контрольных Точек<svg viewBox="0 0 24 24" stroke="currentColor" fill="none" stroke-width="2" height="20" class="x:inline x:shrink-0 x:rtl:rotate-180"><path d="M9 5l7 7-7 7" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></div></article></div><script src="/qwen-code-docs/_next/static/chunks/webpack-6175f18c4ffcc31c.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/qwen-code-docs/_next/static/css/7fba7395046b8eaa.css\",\"style\"]\n2:HL[\"/qwen-code-docs/_next/static/css/04d76539cc2c4ebd.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"3:I[12846,[],\"\"]\n6:I[4707,[],\"\"]\n9:I[36423,[],\"\"]\nb:I[78400,[\"3185\",\"static/chunks/app/layout-38b548b4f4d27f80.js\"],\"FontLoader\"]\nd:I[61060,[],\"\"]\n7:[\"lang\",\"ru\",\"d\"]\n8:[\"mdxPath\",\"tools/mcp-server\",\"oc\"]\ne:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L3\",null,{\"buildId\":\"0y8u-WGJo2VFWAF7bkrdx\",\"assetPrefix\":\"/qwen-code-docs\",\"urlParts\":[\"\",\"ru\",\"tools\",\"mcp-server\",\"\"],\"initialTree\":[\"\",{\"children\":[[\"lang\",\"ru\",\"d\"],{\"children\":[[\"mdxPath\",\"tools/mcp-server\",\"oc\"],{\"children\":[\"__PAGE__?{\\\"lang\\\":\\\"ru\\\",\\\"mdxPath\\\":[\\\"tools\\\",\\\"mcp-server\\\"]}\",{}]}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[[\"lang\",\"ru\",\"d\"],{\"children\":[[\"mdxPath\",\"tools/mcp-server\",\"oc\"],{\"children\":[\"__PAGE__\",{},[[\"$L4\",\"$L5\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/qwen-code-docs/_next/static/css/04d76539cc2c4ebd.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]]],null],null]},[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"$7\",\"children\",\"$8\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L9\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[null,\"$La\"],null],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/qwen-code-docs/_next/static/css/7fba7395046b8eaa.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$undefined\",[\"$\",\"style\",null,{\"children\":\":root {\\n --nextra-primary-hue: 248deg;\\n --nextra-primary-saturation: 74%;\\n --nextra-primary-lightness: 45%;\\n --nextra-bg: 250,250,250;\\n --nextra-content-width: 90rem;\\n}\\n.dark {\\n --nextra-primary-hue: 248deg;\\n --nextra-primary-saturation: 74%;\\n --nextra-primary-lightness: 55%;\\n --nextra-bg: 17,17,17;\\n}\\n::selection {\\n background: hsla(var(--nextra-primary-hue),var(--nextra-primary-saturation),var(--nextra-primary-lightness),.3);\\n}\\nhtml {\\n background: rgb(var(--nextra-bg));\\n}\"}],[\"$\",\"meta\",null,{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: light)\",\"content\":\"rgb(250,250,250)\"}],[\"$\",\"meta\",null,{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: dark)\",\"content\":\"rgb(17,17,17)\"}],\"$undefined\"]}],[\"$\",\"body\",null,{\"children\":[[\"$\",\"$Lb\",null,{}],[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L9\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]]}]]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$Lc\"],\"globalErrorComponent\":\"$d\",\"missingSlots\":\"$We\"}]\n"])</script><script>self.__next_f.push([1,"f:I[54108,[\"5501\",\"static/chunks/c16f53c3-b998f97655e65347.js\",\"1105\",\"static/chunks/1105-e07e82095c5c7b4a.js\",\"5524\",\"static/chunks/5524-d228bcaedae4ecb3.js\",\"2770\",\"static/chunks/2770-e894e62890be5e00.js\",\"1084\",\"static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js\"],\"ThemeConfigProvider\"]\n10:I[16016,[\"5501\",\"static/chunks/c16f53c3-b998f97655e65347.js\",\"1105\",\"static/chunks/1105-e07e82095c5c7b4a.js\",\"5524\",\"static/chunks/5524-d228bcaedae4ecb3.js\",\"2770\",\"static/chunks/2770-e894e62890be5e00.js\",\"1084\",\"static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js\"],\"LastUpdated\"]\n11:I[30763,[\"5501\",\"static/chunks/c16f53c3-b998f97655e65347.js\",\"1105\",\"static/chunks/1105-e07e82095c5c7b4a.js\",\"5524\",\"static/chunks/5524-d228bcaedae4ecb3.js\",\"2770\",\"static/chunks/2770-e894e62890be5e00.js\",\"1084\",\"static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js\"],\"Search\"]\n12:I[25922,[\"5501\",\"static/chunks/c16f53c3-b998f97655e65347.js\",\"1105\",\"static/chunks/1105-e07e82095c5c7b4a.js\",\"5524\",\"static/chunks/5524-d228bcaedae4ecb3.js\",\"2770\",\"static/chunks/2770-e894e62890be5e00.js\",\"1084\",\"static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js\"],\"ThemeProvider\"]\n13:I[94328,[\"5501\",\"static/chunks/c16f53c3-b998f97655e65347.js\",\"1105\",\"static/chunks/1105-e07e82095c5c7b4a.js\",\"5524\",\"static/chunks/5524-d228bcaedae4ecb3.js\",\"2770\",\"static/chunks/2770-e894e62890be5e00.js\",\"1084\",\"static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js\"],\"SkipNavLink\"]\n14:I[17691,[\"5501\",\"static/chunks/c16f53c3-b998f97655e65347.js\",\"1105\",\"static/chunks/1105-e07e82095c5c7b4a.js\",\"5524\",\"static/chunks/5524-d228bcaedae4ecb3.js\",\"2770\",\"static/chunks/2770-e894e62890be5e00.js\",\"1084\",\"static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js\"],\"ConfigProvider\"]\n15:I[72972,[\"5501\",\"static/chunks/c16f53c3-b998f97655e65347.js\",\"1105\",\"static/chunks/1105-e07e82095c5c7b4a.js\",\"5524\",\"static/chunks/5524-d228bcaedae4ecb3.js\",\"2770\",\"static/chunks/2770-e894e62890be5e00.js\",\"1084\",\"static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js\"],\"\"]\n16:I[88212,[\"5501\",\"static/ch"])</script><script>self.__next_f.push([1,"unks/c16f53c3-b998f97655e65347.js\",\"1105\",\"static/chunks/1105-e07e82095c5c7b4a.js\",\"5524\",\"static/chunks/5524-d228bcaedae4ecb3.js\",\"2770\",\"static/chunks/2770-e894e62890be5e00.js\",\"1084\",\"static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js\"],\"ClientNavbar\"]\n18:I[32594,[\"5501\",\"static/chunks/c16f53c3-b998f97655e65347.js\",\"1105\",\"static/chunks/1105-e07e82095c5c7b4a.js\",\"5524\",\"static/chunks/5524-d228bcaedae4ecb3.js\",\"2770\",\"static/chunks/2770-e894e62890be5e00.js\",\"1084\",\"static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js\"],\"LanguageDropdown\"]\n19:I[57191,[\"5501\",\"static/chunks/c16f53c3-b998f97655e65347.js\",\"1105\",\"static/chunks/1105-e07e82095c5c7b4a.js\",\"5524\",\"static/chunks/5524-d228bcaedae4ecb3.js\",\"2770\",\"static/chunks/2770-e894e62890be5e00.js\",\"1084\",\"static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js\"],\"MobileNav\"]\n1a:I[18960,[\"5501\",\"static/chunks/c16f53c3-b998f97655e65347.js\",\"1105\",\"static/chunks/1105-e07e82095c5c7b4a.js\",\"5524\",\"static/chunks/5524-d228bcaedae4ecb3.js\",\"2770\",\"static/chunks/2770-e894e62890be5e00.js\",\"1084\",\"static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js\"],\"TOCProvider\"]\n1b:\"$Sreact.fragment\"\n1c:I[57191,[\"5501\",\"static/chunks/c16f53c3-b998f97655e65347.js\",\"1105\",\"static/chunks/1105-e07e82095c5c7b4a.js\",\"5524\",\"static/chunks/5524-d228bcaedae4ecb3.js\",\"2770\",\"static/chunks/2770-e894e62890be5e00.js\",\"1084\",\"static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js\"],\"Sidebar\"]\n1d:I[98270,[\"5501\",\"static/chunks/c16f53c3-b998f97655e65347.js\",\"1105\",\"static/chunks/1105-e07e82095c5c7b4a.js\",\"5524\",\"static/chunks/5524-d228bcaedae4ecb3.js\",\"2770\",\"static/chunks/2770-e894e62890be5e00.js\",\"1084\",\"static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js\"],\"ClientWrapper\"]\n1e:I[56099,[\"5501\",\"static/chunks/c16f53c3-b998f97655e65347.js\",\"1105\",\"static/chunks/1105-e07e82095c5c7b4a.js\",\"5524\",\"static/chunks/5524-d228bcaedae4ecb3.js\",\"2770\",\"static/chunks/2770-e894e62890be5e00.js\",\"1084\",\"static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js\"],\"HeadingAnchor\"]\n1f:I[98451,[\"5501\",\"static/c"])</script><script>self.__next_f.push([1,"hunks/c16f53c3-b998f97655e65347.js\",\"1105\",\"static/chunks/1105-e07e82095c5c7b4a.js\",\"5524\",\"static/chunks/5524-d228bcaedae4ecb3.js\",\"2770\",\"static/chunks/2770-e894e62890be5e00.js\",\"1084\",\"static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js\"],\"ToggleWordWrapButton\"]\n17:T481,M12 3C7.0275 3 3 7.12937 3 12.2276C3 16.3109 5.57625 19.7597 9.15374 20.9824C9.60374 21.0631 9.77249 20.7863 9.77249 20.5441C9.77249 20.3249 9.76125 19.5982 9.76125 18.8254C7.5 19.2522 6.915 18.2602 6.735 17.7412C6.63375 17.4759 6.19499 16.6569 5.8125 16.4378C5.4975 16.2647 5.0475 15.838 5.80124 15.8264C6.51 15.8149 7.01625 16.4954 7.18499 16.7723C7.99499 18.1679 9.28875 17.7758 9.80625 17.5335C9.885 16.9337 10.1212 16.53 10.38 16.2993C8.3775 16.0687 6.285 15.2728 6.285 11.7432C6.285 10.7397 6.63375 9.9092 7.20749 9.26326C7.1175 9.03257 6.8025 8.08674 7.2975 6.81794C7.2975 6.81794 8.05125 6.57571 9.77249 7.76377C10.4925 7.55615 11.2575 7.45234 12.0225 7.45234C12.7875 7.45234 13.5525 7.55615 14.2725 7.76377C15.9937 6.56418 16.7475 6.81794 16.7475 6.81794C17.2424 8.08674 16.9275 9.03257 16.8375 9.26326C17.4113 9.9092 17.76 10.7281 17.76 11.7432C17.76 15.2843 15.6563 16.0687 13.6537 16.2993C13.98 16.5877 14.2613 17.1414 14.2613 18.0065C14.2613 19.2407 14.25 20.2326 14.25 20.5441C14.25 20.7863 14.4188 21.0746 14.8688 20.9824C16.6554 20.364 18.2079 19.1866 19.3078 17.6162C20.4077 16.0457 20.9995 14.1611 21 12.2276C21 7.12937 16.9725 3 12 3Z"])</script><script>self.__next_f.push([1,"a:[\"$\",\"$Lf\",null,{\"value\":{\"children\":\"$undefined\",\"darkMode\":true,\"docsRepositoryBase\":\"https://github.com/QwenLM/qwen-code/blob/main/docs\",\"editLink\":\"Edit this page\",\"feedback\":{\"content\":\"Question? Give us feedback\",\"labels\":\"feedback\"},\"i18n\":[{\"locale\":\"en\",\"name\":\"English\"},{\"locale\":\"zh\",\"name\":\"中文\"},{\"locale\":\"de\",\"name\":\"Deutsch\"},{\"locale\":\"fr\",\"name\":\"Français\"},{\"locale\":\"ru\",\"name\":\"Русский\"},{\"locale\":\"ja\",\"name\":\"日本語\"}],\"lastUpdated\":[\"$\",\"$L10\",null,{}],\"navigation\":{\"next\":true,\"prev\":true},\"search\":[\"$\",\"$L11\",null,{}],\"sidebar\":{\"defaultMenuCollapseLevel\":1,\"defaultOpen\":true,\"toggleButton\":true,\"autoCollapse\":true},\"themeSwitch\":{\"dark\":\"Dark\",\"light\":\"Light\",\"system\":\"System\"},\"toc\":{\"backToTop\":\"Scroll to top\",\"float\":true,\"title\":\"On This Page\"}},\"children\":[\"$\",\"$L12\",null,{\"attribute\":\"class\",\"defaultTheme\":\"light\",\"disableTransitionOnChange\":true,\"storageKey\":\"theme\",\"children\":[[\"$\",\"$L13\",null,{}],\"$undefined\",[\"$\",\"$L14\",null,{\"pageMap\":[{\"data\":{\"index\":{\"title\":\"Добро пожаловать в документацию Qwen Code\"},\"deployment\":{\"title\":\"Выполнение и Развертывание\"},\"architecture\":{\"title\":\"Обзор Архитектуры\"},\"cli\":{\"title\":\"Руководство по использованию CLI\"},\"core\":{\"title\":\"Основные Детали\"},\"tools\":{\"title\":\"Коллекция Инструментов\"},\"checkpointing\":{\"title\":\"Функция Контрольных Точек\"},\"extension\":{\"title\":\"Разработка Расширений\"},\"ide-integration\":{\"title\":\"Интеграция с IDE\"},\"telemetry\":{\"title\":\"Наблюдаемость\"},\"examples\":{\"title\":\"Примеры Кода\"},\"npm\":{\"title\":\"Управление Пакетами\"},\"gemini-ignore\":{\"title\":\"Конфигурация Игнорируемых Файлов\"},\"integration-tests\":{\"title\":\"Интеграционные Тесты\"},\"keyboard-shortcuts\":{\"title\":\"Горячие Клавиши\"},\"sandbox\":{\"title\":\"Механизм Песочницы\"},\"issue-and-pr-automation\":{\"title\":\"Автоматизированная Обработка\"},\"troubleshooting\":{\"title\":\"Устранение Неполадок\"},\"tos-privacy\":{\"title\":\"Условия Использования и Конфиденциальность\"},\"Uninstall\":{\"title\":\"Руководство по Удалению\"}}},{\"name\":\"index\",\"route\":\"/ru\",\"frontMatter\":{\"title\":\"Добро пожаловать в документацию Qwen Code\",\"filePath\":\"content/ru/index.md\",\"timestamp\":1789666354000},\"title\":\"Добро пожаловать в документацию Qwen Code\"},{\"name\":\"deployment\",\"route\":\"/ru/deployment\",\"frontMatter\":{\"title\":\"Выполнение и развертывание Qwen Code\",\"filePath\":\"content/ru/deployment.md\",\"timestamp\":1789666354000},\"title\":\"Выполнение и Развертывание\"},{\"name\":\"architecture\",\"route\":\"/ru/architecture\",\"frontMatter\":{\"title\":\"Обзор архитектуры Qwen Code\",\"filePath\":\"content/ru/architecture.md\",\"timestamp\":1789666354000},\"title\":\"Обзор Архитектуры\"},{\"name\":\"cli\",\"route\":\"/ru/cli\",\"children\":[{\"data\":{\"index\":{\"title\":\"Обзор CLI\"},\"commands\":{\"title\":\"Справочник Команд\"},\"configuration\":{\"title\":\"Руководство по Конфигурации\"},\"authentication\":{\"title\":\"Настройка Аутентификации\"},\"openai-auth\":{\"title\":\"Аутентификация OpenAI\"},\"token-caching\":{\"title\":\"Кэширование Токенов\"},\"themes\":{\"title\":\"Конфигурация Тем\"},\"tutorials\":{\"title\":\"Учебные Пособия\"}}},{\"name\":\"index\",\"route\":\"/ru/cli\",\"frontMatter\":{\"title\":\"Qwen Code CLI\",\"filePath\":\"content/ru/cli/index.md\",\"timestamp\":1789666354000},\"title\":\"Обзор CLI\"},{\"name\":\"commands\",\"route\":\"/ru/cli/commands\",\"frontMatter\":{\"title\":\"Команды CLI\",\"filePath\":\"content/ru/cli/commands.md\",\"timestamp\":1789666354000},\"title\":\"Справочник Команд\"},{\"name\":\"configuration\",\"route\":\"/ru/cli/configuration\",\"frontMatter\":{\"title\":\"Конфигурация Qwen Code\",\"filePath\":\"content/ru/cli/configuration.md\",\"timestamp\":1789666354000},\"title\":\"Руководство по Конфигурации\"},{\"name\":\"authentication\",\"route\":\"/ru/cli/authentication\",\"frontMatter\":{\"title\":\"Настройка аутентификации\",\"filePath\":\"content/ru/cli/authentication.md\",\"timestamp\":1789666354000},\"title\":\"Настройка Аутентификации\"},{\"name\":\"openai-auth\",\"route\":\"/ru/cli/openai-auth\",\"frontMatter\":{\"title\":\"Аутентификация OpenAI\",\"filePath\":\"content/ru/cli/openai-auth.md\",\"timestamp\":1789666354000},\"title\":\"Аутентификация OpenAI\"},{\"name\":\"token-caching\",\"route\":\"/ru/cli/token-caching\",\"frontMatter\":{\"title\":\"Кэширование токенов и оптимизация расходов\",\"filePath\":\"content/ru/cli/token-caching.md\",\"timestamp\":1789666354000},\"title\":\"Кэширование Токенов\"},{\"name\":\"themes\",\"route\":\"/ru/cli/themes\",\"frontMatter\":{\"title\":\"Темы\",\"filePath\":\"content/ru/cli/themes.md\",\"timestamp\":1789666354000},\"title\":\"Конфигурация Тем\"},{\"name\":\"tutorials\",\"route\":\"/ru/cli/tutorials\",\"frontMatter\":{\"title\":\"Tutorials\",\"filePath\":\"content/ru/cli/tutorials.md\",\"timestamp\":1789666354000},\"title\":\"Учебные Пособия\"},{\"name\":\"welcome-back\",\"route\":\"/ru/cli/welcome-back\",\"frontMatter\":{\"title\":\"Функция Welcome Back\",\"filePath\":\"content/ru/cli/welcome-back.md\",\"timestamp\":1789666354000},\"title\":\"Функция Welcome Back\"}],\"title\":\"Руководство по использованию CLI\"},{\"name\":\"core\",\"route\":\"/ru/core\",\"children\":[{\"data\":{\"index\":{\"title\":\"Обзор Ядра\"},\"tools-api\":{\"title\":\"API Инструментов\"},\"memport\":{\"title\":\"Процессор Импорта Памяти\"}}},{\"name\":\"index\",\"route\":\"/ru/core\",\"frontMatter\":{\"title\":\"Qwen Code Core\",\"filePath\":\"content/ru/core/index.md\",\"timestamp\":1789666354000},\"title\":\"Обзор Ядра\"},{\"name\":\"tools-api\",\"route\":\"/ru/core/tools-api\",\"frontMatter\":{\"title\":\"Qwen Code Core: Tools API\",\"filePath\":\"content/ru/core/tools-api.md\",\"timestamp\":1789666354000},\"title\":\"API Инструментов\"},{\"name\":\"memport\",\"route\":\"/ru/core/memport\",\"frontMatter\":{\"title\":\"Memory Import Processor\",\"filePath\":\"content/ru/core/memport.md\",\"timestamp\":1789666354000},\"title\":\"Процессор Импорта Памяти\"}],\"title\":\"Основные Детали\"},{\"name\":\"tools\",\"route\":\"/ru/tools\",\"children\":[{\"data\":{\"index\":{\"title\":\"Обзор Инструментов\"},\"file-system\":{\"title\":\"Инструменты Файловой Системы\"},\"multi-file\":{\"title\":\"Инструменты Чтения Множественных Файлов\"},\"shell\":{\"title\":\"Инструменты Shell\"},\"web-fetch\":{\"title\":\"Инструменты Web Fetch\"},\"web-search\":{\"title\":\"Инструменты Веб-Поиска\"},\"memory\":{\"title\":\"Инструменты Памяти\"},\"todo-write\":{\"title\":\"Инструмент Todo Write\"},\"mcp-server\":{\"title\":\"MCP Сервер\"}}},{\"name\":\"index\",\"route\":\"/ru/tools\",\"frontMatter\":{\"title\":\"Инструменты Qwen Code\",\"filePath\":\"content/ru/tools/index.md\",\"timestamp\":1789666354000},\"title\":\"Обзор Инструментов\"},{\"name\":\"file-system\",\"route\":\"/ru/tools/file-system\",\"frontMatter\":{\"title\":\"Инструменты файловой системы Qwen Code\",\"filePath\":\"content/ru/tools/file-system.md\",\"timestamp\":1789666354000},\"title\":\"Инструменты Файловой Системы\"},{\"name\":\"multi-file\",\"route\":\"/ru/tools/multi-file\",\"frontMatter\":{\"title\":\"Инструмент для чтения нескольких файлов (read_many_files)\",\"filePath\":\"content/ru/tools/multi-file.md\",\"timestamp\":1789666354000},\"title\":\"Инструменты Чтения Множественных Файлов\"},{\"name\":\"shell\",\"route\":\"/ru/tools/shell\",\"frontMatter\":{\"title\":\"Инструмент Shell (run_shell_command)\",\"filePath\":\"content/ru/tools/shell.md\",\"timestamp\":1789666354000},\"title\":\"Инструменты Shell\"},{\"name\":\"web-fetch\",\"route\":\"/ru/tools/web-fetch\",\"frontMatter\":{\"title\":\"Инструмент Web Fetch (web_fetch)\",\"filePath\":\"content/ru/tools/web-fetch.md\",\"timestamp\":1789666354000},\"title\":\"Инструменты Web Fetch\"},{\"name\":\"web-search\",\"route\":\"/ru/tools/web-search\",\"frontMatter\":{\"title\":\"Инструмент веб-поиска (web_search)\",\"filePath\":\"content/ru/tools/web-search.md\",\"timestamp\":1789666354000},\"title\":\"Инструменты Веб-Поиска\"},{\"name\":\"memory\",\"route\":\"/ru/tools/memory\",\"frontMatter\":{\"title\":\"Инструмент работы с памятью (save_memory)\",\"filePath\":\"content/ru/tools/memory.md\",\"timestamp\":1789666354000},\"title\":\"Инструменты Памяти\"},{\"name\":\"todo-write\",\"route\":\"/ru/tools/todo-write\",\"frontMatter\":{\"title\":\"Инструмент для работы с Todo (todo_write)\",\"filePath\":\"content/ru/tools/todo-write.md\",\"timestamp\":1789666354000},\"title\":\"Инструмент Todo Write\"},{\"name\":\"mcp-server\",\"route\":\"/ru/tools/mcp-server\",\"frontMatter\":{\"title\":\"MCP серверы с Qwen Code\",\"filePath\":\"content/ru/tools/mcp-server.md\",\"timestamp\":1789666354000},\"title\":\"MCP Сервер\"}],\"title\":\"Коллекция Инструментов\"},{\"name\":\"checkpointing\",\"route\":\"/ru/checkpointing\",\"frontMatter\":{\"title\":\"Checkpointing\",\"filePath\":\"content/ru/checkpointing.md\",\"timestamp\":1789666354000},\"title\":\"Функция Контрольных Точек\"},{\"name\":\"extension\",\"route\":\"/ru/extension\",\"frontMatter\":{\"title\":\"Расширения Qwen Code\",\"filePath\":\"content/ru/extension.md\",\"timestamp\":1789666354000},\"title\":\"Разработка Расширений\"},{\"name\":\"ide-integration\",\"route\":\"/ru/ide-integration\",\"frontMatter\":{\"title\":\"Интеграция с IDE\",\"filePath\":\"content/ru/ide-integration.md\",\"timestamp\":1789666354000},\"title\":\"Интеграция с IDE\"},{\"name\":\"telemetry\",\"route\":\"/ru/telemetry\",\"frontMatter\":{\"title\":\"Руководство по наблюдаемости Qwen Code\",\"filePath\":\"content/ru/telemetry.md\",\"timestamp\":1789666354000},\"title\":\"Наблюдаемость\"},{\"name\":\"examples\",\"route\":\"/ru/examples\",\"children\":[{\"data\":{\"proxy-script\":{\"title\":\"Пример Прокси-Скрипта\"}}},{\"name\":\"proxy-script\",\"route\":\"/ru/examples/proxy-script\",\"frontMatter\":{\"title\":\"Пример Proxy-скрипта\",\"filePath\":\"content/ru/examples/proxy-script.md\",\"timestamp\":1789666354000},\"title\":\"Пример Прокси-Скрипта\"}],\"title\":\"Примеры Кода\"},{\"name\":\"npm\",\"route\":\"/ru/npm\",\"frontMatter\":{\"title\":\"Обзор пакета\",\"filePath\":\"content/ru/npm.md\",\"timestamp\":1789666354000},\"title\":\"Управление Пакетами\"},{\"name\":\"gemini-ignore\",\"route\":\"/ru/gemini-ignore\",\"frontMatter\":{\"title\":\"Игнорирование файлов\",\"filePath\":\"content/ru/gemini-ignore.md\",\"timestamp\":1789666354000},\"title\":\"Конфигурация Игнорируемых Файлов\"},{\"name\":\"integration-tests\",\"route\":\"/ru/integration-tests\",\"frontMatter\":{\"title\":\"Интеграционные тесты\",\"filePath\":\"content/ru/integration-tests.md\",\"timestamp\":1789666354000},\"title\":\"Интеграционные Тесты\"},{\"name\":\"keyboard-shortcuts\",\"route\":\"/ru/keyboard-shortcuts\",\"frontMatter\":{\"title\":\"Горячие клавиши Qwen Code\",\"filePath\":\"content/ru/keyboard-shortcuts.md\",\"timestamp\":1789666354000},\"title\":\"Горячие Клавиши\"},{\"name\":\"sandbox\",\"route\":\"/ru/sandbox\",\"frontMatter\":{\"title\":\"Sandboxing в Qwen Code\",\"filePath\":\"content/ru/sandbox.md\",\"timestamp\":1789666354000},\"title\":\"Механизм Песочницы\"},{\"name\":\"issue-and-pr-automation\",\"route\":\"/ru/issue-and-pr-automation\",\"frontMatter\":{\"title\":\"Автоматизация и процессы_triage_\",\"filePath\":\"content/ru/issue-and-pr-automation.md\",\"timestamp\":1789666354000},\"title\":\"Автоматизированная Обработка\"},{\"name\":\"troubleshooting\",\"route\":\"/ru/troubleshooting\",\"frontMatter\":{\"title\":\"Руководство по устранению неполадок\",\"filePath\":\"content/ru/troubleshooting.md\",\"timestamp\":1789666354000},\"title\":\"Устранение Неполадок\"},{\"name\":\"tos-privacy\",\"route\":\"/ru/tos-privacy\",\"frontMatter\":{\"title\":\"Qwen Code: Условия использования и политика конфиденциальности\",\"filePath\":\"content/ru/tos-privacy.md\",\"timestamp\":1789666354000},\"title\":\"Условия Использования и Конфиденциальность\"},{\"name\":\"Uninstall\",\"route\":\"/ru/Uninstall\",\"frontMatter\":{\"title\":\"Удаление CLI\",\"filePath\":\"content/ru/Uninstall.md\",\"timestamp\":1789666354000},\"title\":\"Руководство по Удалению\"},{\"name\":\"subagents\",\"route\":\"/ru/subagents\",\"frontMatter\":{\"title\":\"Субагенты\",\"filePath\":\"content/ru/subagents.md\",\"timestamp\":1789666354000},\"title\":\"Субагенты\"}],\"navbar\":[\"$\",\"header\",null,{\"className\":\"nextra-navbar x:sticky x:top-0 x:z-30 x:w-full x:bg-transparent x:print:hidden x:max-md:[.nextra-banner:not([class$=hidden])~\u0026]:top-(--nextra-banner-height)\",\"children\":[[\"$\",\"div\",null,{\"className\":\"nextra-navbar-blur x:absolute x:-z-1 x:size-full nextra-border x:border-b x:backdrop-blur-md x:bg-nextra-bg/70\"}],[\"$\",\"nav\",null,{\"style\":{\"height\":\"var(--nextra-navbar-height)\"},\"className\":\"x:mx-auto x:flex x:max-w-(--nextra-content-width) x:items-center x:gap-4 x:pl-[max(env(safe-area-inset-left),1.5rem)] x:pr-[max(env(safe-area-inset-right),1.5rem)] x:justify-end\",\"children\":[[\"$\",\"$L15\",null,{\"href\":\"/\",\"className\":\"x:flex x:items-center x:me-auto x:transition-opacity x:focus-visible:nextra-focus x:hover:opacity-75\",\"aria-label\":\"Home page\",\"children\":[\"$\",\"span\",null,{\"className\":\"ms-2 select-none font-extrabold flex items-center\",\"title\":\"Qwen Code: AI Coding Agent\",\"children\":[[\"$\",\"img\",null,{\"src\":\"https://assets.alicdn.com/g/qwenweb/qwen-webui-fe/0.0.191/static/favicon.png\",\"alt\":\"Qwen Code\",\"width\":32,\"height\":32,\"className\":\"inline-block align-middle mr-2 \",\"style\":{\"verticalAlign\":\"middle\"}}],[\"$\",\"span\",null,{\"className\":\"text-[1.3rem] font-normal align-middle mr-1 max-md:hidden\",\"children\":\"Qwen\"}],[\"$\",\"span\",null,{\"className\":\"text-[1.3rem] font-normal align-middle max-md:hidden\",\"children\":\"Code\"}]]}]}],[\"$\",\"$L16\",null,{\"className\":\"\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://github.com/QwenLM/qwen-code\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"children\":[[\"$\",\"svg\",null,{\"fill\":\"currentColor\",\"viewBox\":\"3 3 18 18\",\"height\":\"24\",\"aria-label\":\"Project repository\",\"children\":[\"$\",\"path\",null,{\"d\":\"$17\"}]}],false],\"className\":\"x:focus-visible:nextra-focus\"}],\"$undefined\",[\"$\",\"$L18\",null,{\"currentLang\":\"ru\"}]]}]]}]]}],\"footer\":null,\"children\":[[\"$\",\"$L19\",null,{}],[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"$7\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L9\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]]}]]}]}]\n"])</script><script>self.__next_f.push([1,"5:[\"$\",\"div\",null,{\"className\":\"x:mx-auto x:flex x:max-w-(--nextra-content-width)\",\"sourceCode\":\"$undefined\",\"children\":[\"$\",\"$L1a\",null,{\"value\":[{\"value\":\"Что такое MCP сервер?\",\"id\":\"что-такое-mcp-сервер\",\"depth\":2},{\"value\":\"Архитектура основной интеграции\",\"id\":\"архитектура-основной-интеграции\",\"depth\":2},{\"value\":[[\"$\",\"$1b\",\".0\",{\"children\":[\"Слой обнаружения (\",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"mcp-client.ts\"}],\")\"]}]],\"id\":\"слой-обнаружения-mcp-clientts\",\"depth\":3},{\"value\":[[\"$\",\"$1b\",\".0\",{\"children\":[\"Execution Layer (\",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"mcp-tool.ts\"}],\")\"]}]],\"id\":\"execution-layer-mcp-toolts\",\"depth\":3},{\"value\":\"Transport Mechanisms\",\"id\":\"transport-mechanisms\",\"depth\":3},{\"value\":\"Как настроить свой MCP сервер\",\"id\":\"как-настроить-свой-mcp-сервер\",\"depth\":2},{\"value\":\"Настройка MCP-сервера в settings.json\",\"id\":\"настройка-mcp-сервера-в-settingsjson\",\"depth\":3},{\"value\":\"Структура конфигурации\",\"id\":\"структура-конфигурации\",\"depth\":3},{\"value\":\"Свойства конфигурации\",\"id\":\"свойства-конфигурации\",\"depth\":3},{\"value\":\"Обязательно (одно из следующих)\",\"id\":\"обязательно-одно-из-следующих\",\"depth\":4},{\"value\":\"Необязательные параметры\",\"id\":\"необязательные-параметры\",\"depth\":4},{\"value\":\"Поддержка OAuth для удаленных MCP серверов\",\"id\":\"поддержка-oauth-для-удаленных-mcp-серверов\",\"depth\":3},{\"value\":\"Автоматическое обнаружение OAuth\",\"id\":\"автоматическое-обнаружение-oauth\",\"depth\":4},{\"value\":\"Поток аутентификации\",\"id\":\"поток-аутентификации\",\"depth\":4},{\"value\":\"Требования к перенаправлению браузера\",\"id\":\"требования-к-перенаправлению-браузера\",\"depth\":4},{\"value\":\"Управление OAuth-аутентификацией\",\"id\":\"управление-oauth-аутентификацией\",\"depth\":4},{\"value\":\"Свойства конфигурации OAuth\",\"id\":\"свойства-конфигурации-oauth\",\"depth\":4},{\"value\":\"Примеры конфигураций\",\"id\":\"примеры-конфигураций\",\"depth\":3},{\"value\":\"Python MCP Server (Stdio)\",\"id\":\"python-mcp-server-stdio\",\"depth\":4},{\"value\":\"Node.js MCP Server (Stdio)\",\"id\":\"nodejs-mcp-server-stdio\",\"depth\":4},{\"value\":\"Docker-based MCP Server\",\"id\":\"docker-based-mcp-server\",\"depth\":4},{\"value\":\"HTTP-based MCP Server\",\"id\":\"http-based-mcp-server\",\"depth\":4},{\"value\":\"HTTP-based MCP Server с Custom Headers\",\"id\":\"http-based-mcp-server-с-custom-headers\",\"depth\":4},{\"value\":\"MCP Server с фильтрацией инструментов\",\"id\":\"mcp-server-с-фильтрацией-инструментов\",\"depth\":4},{\"value\":\"Подробное описание процесса обнаружения\",\"id\":\"подробное-описание-процесса-обнаружения\",\"depth\":2},{\"value\":\"1. Итерация по серверам и подключение\",\"id\":\"1-итерация-по-серверам-и-подключение\",\"depth\":3},{\"value\":\"2. Обнаружение инструментов\",\"id\":\"2-обнаружение-инструментов\",\"depth\":3},{\"value\":\"3. Разрешение конфликтов\",\"id\":\"3-разрешение-конфликтов\",\"depth\":3},{\"value\":\"4. Обработка схем\",\"id\":\"4-обработка-схем\",\"depth\":3},{\"value\":\"5. Управление подключениями\",\"id\":\"5-управление-подключениями\",\"depth\":3},{\"value\":\"Порядок выполнения инструментов\",\"id\":\"порядок-выполнения-инструментов\",\"depth\":2},{\"value\":\"1. Вызов инструмента\",\"id\":\"1-вызов-инструмента\",\"depth\":3},{\"value\":\"2. Процесс подтверждения\",\"id\":\"2-процесс-подтверждения\",\"depth\":3},{\"value\":\"Обход на основе доверия\",\"id\":\"обход-на-основе-доверия\",\"depth\":4},{\"value\":\"Динамическое разрешение\",\"id\":\"динамическое-разрешение\",\"depth\":4},{\"value\":\"Обработка выбора пользователя\",\"id\":\"обработка-выбора-пользователя\",\"depth\":4},{\"value\":\"3. Выполнение\",\"id\":\"3-выполнение\",\"depth\":3},{\"value\":\"4. Обработка ответа\",\"id\":\"4-обработка-ответа\",\"depth\":3},{\"value\":\"Как взаимодействовать с вашим MCP сервером\",\"id\":\"как-взаимодействовать-с-вашим-mcp-сервером\",\"depth\":2},{\"value\":[[\"$\",\"$1b\",\".0\",{\"children\":[\"Использование команды \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"/mcp\"}]]}]],\"id\":\"использование-команды-mcp\",\"depth\":3},{\"value\":[[\"$\",\"$1b\",\".0\",{\"children\":[\"Пример вывода \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"/mcp\"}]]}]],\"id\":\"пример-вывода-mcp\",\"depth\":3},{\"value\":\"Использование инструментов\",\"id\":\"использование-инструментов\",\"depth\":3},{\"value\":\"Мониторинг состояния и устранение неполадок\",\"id\":\"мониторинг-состояния-и-устранение-неполадок\",\"depth\":2},{\"value\":\"Состояния подключения\",\"id\":\"состояния-подключения\",\"depth\":3},{\"value\":[[\"$\",\"$1b\",\".0\",{\"children\":[\"Статус сервера (\",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"MCPServerStatus\"}],\")\"]}]],\"id\":\"статус-сервера-mcpserverstatus\",\"depth\":4},{\"value\":[[\"$\",\"$1b\",\".0\",{\"children\":[\"Состояние обнаружения (\",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"MCPDiscoveryState\"}],\")\"]}]],\"id\":\"состояние-обнаружения-mcpdiscoverystate\",\"depth\":4},{\"value\":\"Распространённые проблемы и решения\",\"id\":\"распространённые-проблемы-и-решения\",\"depth\":3},{\"value\":\"Сервер не подключается\",\"id\":\"сервер-не-подключается\",\"depth\":4},{\"value\":\"Инструменты не обнаружены\",\"id\":\"инструменты-не-обнаружены\",\"depth\":4},{\"value\":\"Инструменты не выполняются\",\"id\":\"инструменты-не-выполняются\",\"depth\":4},{\"value\":\"Совместимость песочницы\",\"id\":\"совместимость-песочницы\",\"depth\":4},{\"value\":\"Советы по отладке\",\"id\":\"советы-по-отладке\",\"depth\":3},{\"value\":\"Важные замечания\",\"id\":\"важные-замечания\",\"depth\":2},{\"value\":\"Вопросы безопасности\",\"id\":\"вопросы-безопасности\",\"depth\":3},{\"value\":\"Производительность и управление ресурсами\",\"id\":\"производительность-и-управление-ресурсами\",\"depth\":3},{\"value\":\"Совместимость схем\",\"id\":\"совместимость-схем\",\"depth\":3},{\"value\":\"Возврат Rich Content из инструментов\",\"id\":\"возврат-rich-content-из-инструментов\",\"depth\":2},{\"value\":\"Как это работает\",\"id\":\"как-это-работает\",\"depth\":3},{\"value\":\"Пример: возврат текста и изображения\",\"id\":\"пример-возврат-текста-и-изображения\",\"depth\":3},{\"value\":\"MCP Prompts как Slash Commands\",\"id\":\"mcp-prompts-как-slash-commands\",\"depth\":2},{\"value\":\"Определение промптов на сервере\",\"id\":\"определение-промптов-на-сервере\",\"depth\":3},{\"value\":\"Вызов промптов\",\"id\":\"вызов-промптов\",\"depth\":3},{\"value\":[[\"$\",\"$1b\",\".0\",{\"children\":[\"Управление MCP серверами с помощью \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"qwen mcp\"}]]}]],\"id\":\"управление-mcp-серверами-с-помощью-qwen-mcp\",\"depth\":2},{\"value\":[[\"$\",\"$1b\",\".0\",{\"children\":[\"Добавление сервера (\",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"qwen mcp add\"}],\")\"]}]],\"id\":\"добавление-сервера-qwen-mcp-add\",\"depth\":3},{\"value\":\"Добавление stdio сервера\",\"id\":\"добавление-stdio-сервера\",\"depth\":4},{\"value\":\"Добавление HTTP сервера\",\"id\":\"добавление-http-сервера\",\"depth\":4},{\"value\":\"Добавление SSE сервера\",\"id\":\"добавление-sse-сервера\",\"depth\":4},{\"value\":[[\"$\",\"$1b\",\".0\",{\"children\":[\"Просмотр списка серверов (\",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"qwen mcp list\"}],\")\"]}]],\"id\":\"просмотр-списка-серверов-qwen-mcp-list\",\"depth\":3},{\"value\":[[\"$\",\"$1b\",\".0\",{\"children\":[\"Удаление сервера (\",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"qwen mcp remove\"}],\")\"]}]],\"id\":\"удаление-сервера-qwen-mcp-remove\",\"depth\":3}],\"children\":[[\"$\",\"$L1c\",null,{}],[\"$\",\"$L1d\",null,{\"metadata\":{\"title\":\"MCP серверы с Qwen Code\",\"filePath\":\"content/ru/tools/mcp-server.md\",\"timestamp\":1789666354000},\"bottomContent\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"id\":\"nextra-skip-nav\"}],[\"$\",\"main\",null,{\"data-pagefind-body\":true,\"children\":[[\"$\",\"h1\",null,{\"id\":\"$undefined\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-bold x:mt-2 x:text-4xl\",\"children\":[\"MCP серверы с Qwen Code\",\"$undefined\"]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Этот документ содержит руководство по настройке и использованию Model Context Protocol (MCP) серверов с Qwen Code.\"}],\"\\n\",[\"$\",\"h2\",null,{\"id\":\"что-такое-mcp-сервер\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border\",\"children\":[\"Что такое MCP сервер?\",[\"$\",\"$L1e\",null,{\"id\":\"что-такое-mcp-сервер\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"MCP сервер — это приложение, которое предоставляет инструменты и ресурсы для CLI через Model Context Protocol, позволяя ему взаимодействовать с внешними системами и источниками данных. MCP серверы выступают в роли моста между моделью и вашей локальной средой или другими сервисами, например API.\"}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"MCP сервер позволяет CLI:\"}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Обнаруживать инструменты:\"}],\" Получать список доступных инструментов, их описания и параметры через стандартизированные схемы.\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Выполнять инструменты:\"}],\" Вызывать конкретные инструменты с заданными аргументами и получать структурированные ответы.\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Доступ к ресурсам:\"}],\" Читать данные из определённых ресурсов (хотя CLI в основном ориентирован на выполнение инструментов).\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"С помощью MCP сервера вы можете расширить возможности CLI, чтобы выполнять действия, выходящие за рамки встроенных функций, например взаимодействовать с базами данных, API, пользовательскими скриптами или специализированными рабочими процессами.\"}],\"\\n\",[\"$\",\"h2\",null,{\"id\":\"архитектура-основной-интеграции\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border\",\"children\":[\"Архитектура основной интеграции\",[\"$\",\"$L1e\",null,{\"id\":\"архитектура-основной-интеграции\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"Qwen Code интегрируется с MCP-серверами через сложную систему обнаружения и выполнения, встроенную в основной пакет (\",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"packages/core/src/tools/\"}],\"):\"]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"слой-обнаружения-mcp-clientts\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[[\"Слой обнаружения (\",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"mcp-client.ts\"}],\")\"],[\"$\",\"$L1e\",null,{\"id\":\"слой-обнаружения-mcp-clientts\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"Процесс обнаружения координируется функцией \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"discoverMcpTools()\"}],\", которая:\"]}],\"\\n\",[\"$\",\"ol\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Перебирает настроенные серверы\"}],\" из конфигурации \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"mcpServers\"}],\" в вашем \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"settings.json\"}]]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Устанавливает соединения\"}],\" с использованием соответствующих транспортных механизмов (Stdio, SSE или Streamable HTTP)\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Получает определения инструментов\"}],\" с каждого сервера по протоколу MCP\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Очищает и проверяет\"}],\" схемы инструментов на совместимость с Qwen API\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Регистрирует инструменты\"}],\" в глобальном реестре инструментов с разрешением конфликтов\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"execution-layer-mcp-toolts\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[[\"Execution Layer (\",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"mcp-tool.ts\"}],\")\"],[\"$\",\"$L1e\",null,{\"id\":\"execution-layer-mcp-toolts\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"Каждый обнаруженный MCP tool оборачивается в экземпляр \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"DiscoveredMCPTool\"}],\", который:\"]}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Обрабатывает логику подтверждения\"}],\" на основе настроек доверия сервера и пользовательских предпочтений\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Управляет выполнением tool’а\"}],\" путем вызова MCP сервера с правильными параметрами\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Обрабатывает ответы\"}],\" как для контекста LLM, так и для отображения пользователю\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Сохраняет состояние подключения\"}],\" и обрабатывает таймауты\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"transport-mechanisms\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"Transport Mechanisms\",[\"$\",\"$L1e\",null,{\"id\":\"transport-mechanisms\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"CLI поддерживает три типа транспорта MCP:\"}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Stdio Transport:\"}],\" Запускает subprocess и общается через stdin/stdout\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"SSE Transport:\"}],\" Подключается к endpoint’ам Server-Sent Events\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Streamable HTTP Transport:\"}],\" Использует HTTP streaming для коммуникации\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h2\",null,{\"id\":\"как-настроить-свой-mcp-сервер\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border\",\"children\":[\"Как настроить свой MCP сервер\",[\"$\",\"$L1e\",null,{\"id\":\"как-настроить-свой-mcp-сервер\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"Qwen Code использует конфигурацию \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"mcpServers\"}],\" в вашем файле \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"settings.json\"}],\", чтобы находить и подключаться к MCP серверам. Эта конфигурация поддерживает несколько серверов с разными механизмами транспорта.\"]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"настройка-mcp-сервера-в-settingsjson\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"Настройка MCP-сервера в settings.json\",[\"$\",\"$L1e\",null,{\"id\":\"настройка-mcp-сервера-в-settingsjson\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"Вы можете настроить MCP-серверы глобально в файле \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"~/.qwen/settings.json\"}],\" или в корневой директории вашего проекта, создав или открыв файл \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\".qwen/settings.json\"}],\". Внутри файла добавьте блок конфигурации \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"mcpServers\"}],\".\"]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"структура-конфигурации\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"Структура конфигурации\",[\"$\",\"$L1e\",null,{\"id\":\"структура-конфигурации\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"Добавьте объект \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"mcpServers\"}],\" в ваш файл \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"settings.json\"}],\":\"]}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"{ \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#B31D28\",\"--shiki-light-font-style\":\"italic\",\"--shiki-dark\":\"#FDAEB7\",\"--shiki-dark-font-style\":\"italic\"},\"children\":\"...файл\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#B31D28\",\"--shiki-light-font-style\":\"italic\",\"--shiki-dark\":\"#FDAEB7\",\"--shiki-dark-font-style\":\"italic\"},\"children\":\" содержит\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#B31D28\",\"--shiki-light-font-style\":\"italic\",\"--shiki-dark\":\"#FDAEB7\",\"--shiki-dark-font-style\":\"italic\"},\"children\":\" другие\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#B31D28\",\"--shiki-light-font-style\":\"italic\",\"--shiki-dark\":\"#FDAEB7\",\"--shiki-dark-font-style\":\"italic\"},\"children\":\" объекты\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#B31D28\",\"--shiki-light-font-style\":\"italic\",\"--shiki-dark\":\"#FDAEB7\",\"--shiki-dark-font-style\":\"italic\"},\"children\":\" конфигурации\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"mcpServers\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"serverName\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"command\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"path/to/server\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"args\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": [\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"--arg1\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"value1\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"],\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"env\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"API_KEY\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"$MY_API_TOKEN\\\"\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" },\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"cwd\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"./server-directory\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"timeout\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"30000\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"trust\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"false\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" }\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" }\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"}\"}]}]]}]]}]]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"свойства-конфигурации\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"Свойства конфигурации\",[\"$\",\"$L1e\",null,{\"id\":\"свойства-конфигурации\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Каждая конфигурация сервера поддерживает следующие свойства:\"}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"обязательно-одно-из-следующих\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[\"Обязательно (одно из следующих)\",[\"$\",\"$L1e\",null,{\"id\":\"обязательно-одно-из-следующих\"}]]}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"command\"}]}],\" (string): Путь к исполняемому файлу для транспорта Stdio\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"url\"}]}],\" (string): URL endpoint для SSE (например, \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"\\\"http://localhost:8080/sse\\\"\"}],\")\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"httpUrl\"}]}],\" (string): URL endpoint для HTTP streaming\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"необязательные-параметры\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[\"Необязательные параметры\",[\"$\",\"$L1e\",null,{\"id\":\"необязательные-параметры\"}]]}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"args\"}]}],\" (string[]): Аргументы командной строки для транспорта Stdio\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"headers\"}]}],\" (object): Пользовательские HTTP-заголовки при использовании \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"url\"}],\" или \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"httpUrl\"}]]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"env\"}]}],\" (object): Переменные окружения для процесса сервера. Значения могут ссылаться на переменные окружения с использованием синтаксиса \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"$$VAR_NAME\"}],\" или \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"$${VAR_NAME}\"}]]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"cwd\"}]}],\" (string): Рабочая директория для транспорта Stdio\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"timeout\"}]}],\" (number): Таймаут запроса в миллисекундах (по умолчанию: 600,000 мс = 10 минут)\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"trust\"}]}],\" (boolean): Если \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"true\"}],\", отключает все подтверждения вызовов инструментов для этого сервера (по умолчанию: \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"false\"}],\")\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"includeTools\"}]}],\" (string[]): Список названий инструментов, которые нужно подключить с этого MCP-сервера. Если указано, то будут доступны только перечисленные здесь инструменты (whitelist-поведение). Если не указано, по умолчанию активны все инструменты сервера.\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"excludeTools\"}]}],\" (string[]): Список названий инструментов, которые нужно исключить с этого MCP-сервера. Указанные здесь инструменты будут недоступны модели, даже если сервер их предоставляет. \",[\"$\",\"strong\",null,{\"children\":\"Примечание:\"}],\" \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"excludeTools\"}],\" имеет приоритет над \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"includeTools\"}],\" — если инструмент присутствует в обоих списках, он будет исключён.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"поддержка-oauth-для-удаленных-mcp-серверов\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"Поддержка OAuth для удаленных MCP серверов\",[\"$\",\"$L1e\",null,{\"id\":\"поддержка-oauth-для-удаленных-mcp-серверов\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Qwen Code поддерживает аутентификацию OAuth 2.0 для удаленных MCP серверов с использованием транспортов SSE или HTTP. Это позволяет безопасно получать доступ к MCP серверам, которые требуют аутентификации.\"}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"автоматическое-обнаружение-oauth\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[\"Автоматическое обнаружение OAuth\",[\"$\",\"$L1e\",null,{\"id\":\"автоматическое-обнаружение-oauth\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Для серверов, которые поддерживают автоматическое обнаружение OAuth, вы можете опустить конфигурацию OAuth и позволить CLI обнаружить её автоматически:\"}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"{\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"mcpServers\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"discoveredServer\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"url\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"https://api.example.com/sse\\\"\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" }\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" }\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"}\"}]}]]}]]}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"CLI автоматически:\"}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":\"Определяет, когда сервер требует аутентификацию через OAuth (ответы 401)\"}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":\"Обнаруживает OAuth эндпоинты из метаданных сервера\"}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":\"Выполняет динамическую регистрацию клиента, если это поддерживается\"}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":\"Обрабатывает OAuth flow и управление токенами\"}],\"\\n\"]}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"поток-аутентификации\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[\"Поток аутентификации\",[\"$\",\"$L1e\",null,{\"id\":\"поток-аутентификации\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"При подключении к серверу с поддержкой OAuth:\"}],\"\\n\",[\"$\",\"ol\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Первая попытка подключения\"}],\" завершается ошибкой 401 Unauthorized\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Обнаружение OAuth\"}],\" находит endpoint’ы авторизации и получения токенов\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Открывается браузер\"}],\" для аутентификации пользователя (требуется доступ к локальному браузеру)\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Authorization code\"}],\" обменивается на access token’ы\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Токены безопасно сохраняются\"}],\" для последующего использования\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Повторная попытка подключения\"}],\" проходит успешно с действующими токенами\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"требования-к-перенаправлению-браузера\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[\"Требования к перенаправлению браузера\",[\"$\",\"$L1e\",null,{\"id\":\"требования-к-перенаправлению-браузера\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Важно:\"}],\" Для аутентификации через OAuth ваша локальная машина должна:\"]}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":\"Открывать веб-браузер для аутентификации\"}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[\"Принимать перенаправления по адресу \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"http://localhost:7777/oauth/callback\"}]]}],\"\\n\"]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Эта функция не будет работать в:\"}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":\"Headless-средах без доступа к браузеру\"}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":\"Удалённых SSH-сессиях без X11 forwarding\"}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":\"Контейнеризованных средах без поддержки браузера\"}],\"\\n\"]}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"управление-oauth-аутентификацией\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[\"Управление OAuth-аутентификацией\",[\"$\",\"$L1e\",null,{\"id\":\"управление-oauth-аутентификацией\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"Используйте команду \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"/mcp auth\"}],\" для управления OAuth-аутентификацией:\"]}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[[\"$\",\"span\",null,{\"children\":\" \"}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"# Показать список серверов, требующих аутентификацию\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"/mcp\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" auth\"}]]}]]}]]}]]}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-light-font-weight\":\"bold\",\"--shiki-dark\":\"#79B8FF\",\"--shiki-dark-font-weight\":\"bold\"},\"children\":\"# Аутентификация на определенном сервере\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"/mcp auth serverName\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":\" \"}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-light-font-weight\":\"bold\",\"--shiki-dark\":\"#79B8FF\",\"--shiki-dark-font-weight\":\"bold\"},\"children\":\"# Повторная аутентификация при истечении срока действия токенов\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"/mcp auth serverName\"}]}]]}]]}]]}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"свойства-конфигурации-oauth\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[\"Свойства конфигурации OAuth\",[\"$\",\"$L1e\",null,{\"id\":\"свойства-конфигурации-oauth\"}]]}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"enabled\"}]}],\" (boolean): Включить OAuth для этого сервера\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"clientId\"}]}],\" (string): Идентификатор клиента OAuth (необязательно при динамической регистрации)\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"clientSecret\"}]}],\" (string): Секрет клиента OAuth (необязательно для публичных клиентов)\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"authorizationUrl\"}]}],\" (string): Конечная точка авторизации OAuth (автоматически определяется, если не указана)\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"tokenUrl\"}]}],\" (string): Конечная точка токена OAuth (автоматически определяется, если не указана)\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"scopes\"}]}],\" (string[]): Требуемые scope’ы OAuth\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"redirectUri\"}]}],\" (string): Пользовательский URI перенаправления (по умолчанию \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"http://localhost:7777/oauth/callback\"}],\")\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"tokenParamName\"}]}],\" (string): Имя параметра запроса для токенов в URL SSE\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"audiences\"}]}],\" (string[]): Аудитории, для которых токен действителен\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\"#### Управление токенами\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\"OAuth токены автоматически:\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\"- **Безопасно хранятся** в `~/.qwen/mcp-oauth-tokens.json`\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\"- **Обновляются** при истечении срока действия (если доступны refresh токены)\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\"- **Проверяются** перед каждой попыткой подключения\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\"- **Очищаются** при недействительности или истечении срока действия\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\"#### Тип провайдера аутентификации\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\"Вы можете указать тип провайдера аутентификации с помощью свойства `authProviderType`:\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\"- **`authProviderType`** (string): Определяет провайдер аутентификации. Может принимать одно из следующих значений:\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\" - **`dynamic_discovery`** (по умолчанию): CLI автоматически обнаружит конфигурацию OAuth с сервера.\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\" - **`google_credentials`**: CLI будет использовать Google Application Default Credentials (ADC) для аутентификации на сервере. При использовании этого провайдера необходимо указать требуемые scopes.\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\"```json\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\"{\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\" \\\"mcpServers\\\": {\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\" \\\"googleCloudServer\\\": {\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\" \\\"httpUrl\\\": \\\"https://my-gcp-service.run.app/mcp\\\",\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\" \\\"authProviderType\\\": \\\"google_credentials\\\",\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\" \\\"oauth\\\": {\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\" \\\"scopes\\\": [\\\"https://www.googleapis.com/auth/userinfo.email\\\"]\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\" }\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\" }\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\" }\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\"}\"}]}]]}]]}]]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"примеры-конфигураций\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"Примеры конфигураций\",[\"$\",\"$L1e\",null,{\"id\":\"примеры-конфигураций\"}]]}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"python-mcp-server-stdio\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[\"Python MCP Server (Stdio)\",[\"$\",\"$L1e\",null,{\"id\":\"python-mcp-server-stdio\"}]]}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"{\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"mcpServers\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"pythonTools\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"command\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"python\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"args\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": [\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"-m\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"my_mcp_server\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"--port\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"8080\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"],\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"cwd\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"./mcp-servers/python\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"env\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"DATABASE_URL\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"$DB_CONNECTION_STRING\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"API_KEY\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"${EXTERNAL_API_KEY}\\\"\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" },\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"timeout\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"15000\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" }\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" }\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"}\"}]}]]}]]}]]}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"nodejs-mcp-server-stdio\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[\"Node.js MCP Server (Stdio)\",[\"$\",\"$L1e\",null,{\"id\":\"nodejs-mcp-server-stdio\"}]]}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"{\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"mcpServers\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"nodeServer\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"command\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"node\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"args\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": [\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"dist/server.js\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"--verbose\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"],\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"cwd\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"./mcp-servers/node\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"trust\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"true\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" }\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" }\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"}\"}]}]]}]]}]]}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"docker-based-mcp-server\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[\"Docker-based MCP Server\",[\"$\",\"$L1e\",null,{\"id\":\"docker-based-mcp-server\"}]]}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"{\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"mcpServers\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"dockerizedServer\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"command\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"docker\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"args\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": [\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"run\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"-i\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"--rm\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"-e\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"API_KEY\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"-v\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"${PWD}:/workspace\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"my-mcp-server:latest\\\"\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" ],\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"env\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"API_KEY\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"$EXTERNAL_SERVICE_TOKEN\\\"\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" }\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" }\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" }\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"}\"}]}]]}]]}]]}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"http-based-mcp-server\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[\"HTTP-based MCP Server\",[\"$\",\"$L1e\",null,{\"id\":\"http-based-mcp-server\"}]]}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"{\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"mcpServers\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"httpServer\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"httpUrl\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"http://localhost:3000/mcp\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"timeout\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"5000\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" }\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" }\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"}\"}]}]]}]]}]]}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"http-based-mcp-server-с-custom-headers\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[\"HTTP-based MCP Server с Custom Headers\",[\"$\",\"$L1e\",null,{\"id\":\"http-based-mcp-server-с-custom-headers\"}]]}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"{\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"mcpServers\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"httpServerWithAuth\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"httpUrl\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"http://localhost:3000/mcp\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"headers\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"Authorization\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"Bearer your-api-token\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"X-Custom-Header\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"custom-value\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"Content-Type\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"application/json\\\"\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" },\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"timeout\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"5000\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" }\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" }\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"}\"}]}]]}]]}]]}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"mcp-server-с-фильтрацией-инструментов\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[\"MCP Server с фильтрацией инструментов\",[\"$\",\"$L1e\",null,{\"id\":\"mcp-server-с-фильтрацией-инструментов\"}]]}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"{\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"mcpServers\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"filteredServer\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"command\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"python\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"args\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": [\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"-m\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"my_mcp_server\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"],\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"includeTools\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": [\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"safe_tool\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"file_reader\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"data_processor\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"],\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\" // \\\"excludeTools\\\": [\\\"dangerous_tool\\\", \\\"file_deleter\\\"],\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"timeout\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"30000\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" }\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" }\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"}\"}]}]]}]]}]]}],\"\\n\",[\"$\",\"h2\",null,{\"id\":\"подробное-описание-процесса-обнаружения\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border\",\"children\":[\"Подробное описание процесса обнаружения\",[\"$\",\"$L1e\",null,{\"id\":\"подробное-описание-процесса-обнаружения\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Когда Qwen Code запускается, он выполняет обнаружение MCP-серверов через следующий детализированный процесс:\"}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"1-итерация-по-серверам-и-подключение\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"1. Итерация по серверам и подключение\",[\"$\",\"$L1e\",null,{\"id\":\"1-итерация-по-серверам-и-подключение\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"Для каждого сконфигурированного сервера в \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"mcpServers\"}],\":\"]}],\"\\n\",[\"$\",\"ol\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Начинается отслеживание статуса:\"}],\" Статус сервера устанавливается в \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"CONNECTING\"}]]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Выбор транспорта:\"}],\" В зависимости от свойств конфигурации:\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"httpUrl\"}],\" → \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"StreamableHTTPClientTransport\"}]]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"url\"}],\" → \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"SSEClientTransport\"}]]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"command\"}],\" → \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"StdioClientTransport\"}]]}],\"\\n\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Установка соединения:\"}],\" MCP-клиент пытается установить соединение с заданным таймаутом\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Обработка ошибок:\"}],\" Ошибки подключения логируются, а статус сервера устанавливается в \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"DISCONNECTED\"}]]}],\"\\n\"]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"2-обнаружение-инструментов\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"2. Обнаружение инструментов\",[\"$\",\"$L1e\",null,{\"id\":\"2-обнаружение-инструментов\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"После успешного подключения:\"}],\"\\n\",[\"$\",\"ol\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Получение списка инструментов:\"}],\" Клиент вызывает endpoint получения списка инструментов сервера MCP\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Валидация схемы:\"}],\" Проверяется объявление функции каждого инструмента\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Фильтрация инструментов:\"}],\" Инструменты фильтруются на основе конфигурации \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"includeTools\"}],\" и \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"excludeTools\"}]]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Очистка имен:\"}],\" Имена инструментов приводятся в соответствие с требованиями Qwen API:\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":\"Недопустимые символы (все, кроме букв, цифр, подчеркивания, точки и дефиса) заменяются на подчеркивание\"}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[\"Имена длиннее 63 символов обрезаются с заменой средней части (\",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"___\"}],\")\"]}],\"\\n\"]}],\"\\n\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"3-разрешение-конфликтов\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"3. Разрешение конфликтов\",[\"$\",\"$L1e\",null,{\"id\":\"3-разрешение-конфликтов\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Когда несколько серверов предоставляют инструменты с одинаковыми именами:\"}],\"\\n\",[\"$\",\"ol\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Первый зарегистрированный побеждает:\"}],\" Первый сервер, зарегистрировавший имя инструмента, получает имя без префикса\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Автоматическое добавление префикса:\"}],\" Последующие серверы получают имена с префиксом: \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"serverName__toolName\"}]]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Отслеживание в реестре:\"}],\" Реестр инструментов хранит сопоставления между именами серверов и их инструментами\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"4-обработка-схем\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"4. Обработка схем\",[\"$\",\"$L1e\",null,{\"id\":\"4-обработка-схем\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Схемы параметров инструментов проходят санитизацию для совместимости с API:\"}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[\"Свойства \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"$$schema\"}]]}],\" удаляются\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"additionalProperties\"}]}],\" вырезаются\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"anyOf\"}],\" с \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"default\"}]]}],\" теряют значения по умолчанию (совместимость с Vertex AI)\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Рекурсивная обработка\"}],\" применяется к вложенным схемам\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"5-управление-подключениями\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"5. Управление подключениями\",[\"$\",\"$L1e\",null,{\"id\":\"5-управление-подключениями\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"После обнаружения:\"}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Постоянные подключения:\"}],\" Серверы, которые успешно зарегистрировали инструменты, сохраняют свои подключения\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Очистка:\"}],\" Подключения серверов, не предоставивших рабочих инструментов, закрываются\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Обновление статуса:\"}],\" Финальный статус сервера устанавливается как \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"CONNECTED\"}],\" или \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"DISCONNECTED\"}]]}],\"\\n\"]}],\"\\n\",[\"$\",\"h2\",null,{\"id\":\"порядок-выполнения-инструментов\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border\",\"children\":[\"Порядок выполнения инструментов\",[\"$\",\"$L1e\",null,{\"id\":\"порядок-выполнения-инструментов\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Когда модель решает использовать инструмент MCP, происходит следующий процесс выполнения:\"}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"1-вызов-инструмента\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"1. Вызов инструмента\",[\"$\",\"$L1e\",null,{\"id\":\"1-вызов-инструмента\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"Модель генерирует \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"FunctionCall\"}],\" с:\"]}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Имя инструмента:\"}],\" Зарегистрированное имя (возможно, с префиксом)\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Аргументы:\"}],\" JSON-объект, соответствующий схеме параметров инструмента\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"2-процесс-подтверждения\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"2. Процесс подтверждения\",[\"$\",\"$L1e\",null,{\"id\":\"2-процесс-подтверждения\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"Каждый \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"DiscoveredMCPTool\"}],\" реализует сложную логику подтверждения:\"]}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"обход-на-основе-доверия\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[\"Обход на основе доверия\",[\"$\",\"$L1e\",null,{\"id\":\"обход-на-основе-доверия\"}]]}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"if\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" (\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"this\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\".trust) {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" return\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" false\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"; \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// Подтверждение не требуется\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"}\"}]}]]}]]}]]}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"динамическое-разрешение\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[\"Динамическое разрешение\",[\"$\",\"$L1e\",null,{\"id\":\"динамическое-разрешение\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Система поддерживает внутренние allow-lists для:\"}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"На уровне сервера:\"}],\" \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"serverName\"}],\" → Все инструменты с этого сервера считаются доверенными\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"На уровне инструмента:\"}],\" \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"serverName.toolName\"}],\" → Этот конкретный инструмент считается доверенным\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"обработка-выбора-пользователя\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[\"Обработка выбора пользователя\",[\"$\",\"$L1e\",null,{\"id\":\"обработка-выбора-пользователя\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Когда требуется подтверждение, пользователь может выбрать:\"}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Выполнить один раз:\"}],\" Выполнить только в этот раз\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Всегда разрешать этот инструмент:\"}],\" Добавить в allow-list на уровне инструмента\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Всегда разрешать этот сервер:\"}],\" Добавить в allow-list на уровне сервера\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Отмена:\"}],\" Прервать выполнение\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"3-выполнение\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"3. Выполнение\",[\"$\",\"$L1e\",null,{\"id\":\"3-выполнение\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"После подтверждения (или обхода доверия):\"}],\"\\n\",[\"$\",\"ol\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Подготовка параметров:\"}],\" Аргументы проверяются на соответствие схеме инструмента\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Вызов MCP:\"}],\" Базовый \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"CallableTool\"}],\" вызывает сервер с:\"]}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" functionCalls\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" [\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" {\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" name: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"this\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\".serverToolName, \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// Оригинальное имя инструмента на сервере\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" args: params,\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" },\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"];\"}]}]]}]]}]]}],\"\\n\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Обработка ответа:\"}],\" Результаты форматируются как для контекста LLM, так и для отображения пользователю\"]}],\"\\n\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"4-обработка-ответа\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"4. Обработка ответа\",[\"$\",\"$L1e\",null,{\"id\":\"4-обработка-ответа\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Результат выполнения содержит:\"}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"llmContent\"}],\":\"]}],\" Необработанные части ответа для контекста языковой модели\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"returnDisplay\"}],\":\"]}],\" Форматированный вывод для отображения пользователю (часто JSON в markdown code блоках)\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h2\",null,{\"id\":\"как-взаимодействовать-с-вашим-mcp-сервером\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border\",\"children\":[\"Как взаимодействовать с вашим MCP сервером\",[\"$\",\"$L1e\",null,{\"id\":\"как-взаимодействовать-с-вашим-mcp-сервером\"}]]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"использование-команды-mcp\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[[\"Использование команды \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"/mcp\"}]],[\"$\",\"$L1e\",null,{\"id\":\"использование-команды-mcp\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"Команда \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"/mcp\"}],\" предоставляет полную информацию о настройке вашего MCP сервера:\"]}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"/mcp\"}]}]}]]}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Вывод включает:\"}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Список серверов:\"}],\" Все настроенные MCP серверы\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Статус подключения:\"}],\" \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"CONNECTED\"}],\", \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"CONNECTING\"}],\" или \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"DISCONNECTED\"}]]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Детали сервера:\"}],\" Сводка конфигурации (без чувствительных данных)\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Доступные инструменты:\"}],\" Список инструментов с каждого сервера с описаниями\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Состояние обнаружения:\"}],\" Общий статус процесса обнаружения\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"пример-вывода-mcp\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[[\"Пример вывода \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"/mcp\"}]],[\"$\",\"$L1e\",null,{\"id\":\"пример-вывода-mcp\"}]]}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\"MCP Servers Status:\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\"📡 pythonTools (CONNECTED)\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\" Command: python -m my_mcp_server --port 8080\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\" Working Directory: ./mcp-servers/python\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\" Timeout: 15000ms\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\" Tools: calculate_sum, file_analyzer, data_processor\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\"🔌 nodeServer (DISCONNECTED)\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\" Command: node dist/server.js --verbose\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\" Error: Connection refused\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\"🐳 dockerizedServer (CONNECTED)\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\" Command: docker run -i --rm -e API_KEY my-mcp-server:latest\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\" Tools: docker__deploy, docker__status\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"children\":\"Discovery State: COMPLETED\"}]}]]}]]}]]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"использование-инструментов\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"Использование инструментов\",[\"$\",\"$L1e\",null,{\"id\":\"использование-инструментов\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"После обнаружения инструменты MCP становятся доступны модели Qwen как встроенные инструменты. Модель автоматически:\"}],\"\\n\",[\"$\",\"ol\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Выбирает подходящие инструменты\"}],\" в зависимости от ваших запросов\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Отображает диалоги подтверждения\"}],\" (если только сервер не является доверенным)\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Выполняет инструменты\"}],\" с корректными параметрами\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Отображает результаты\"}],\" в удобном для пользователя формате\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h2\",null,{\"id\":\"мониторинг-состояния-и-устранение-неполадок\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border\",\"children\":[\"Мониторинг состояния и устранение неполадок\",[\"$\",\"$L1e\",null,{\"id\":\"мониторинг-состояния-и-устранение-неполадок\"}]]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"состояния-подключения\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"Состояния подключения\",[\"$\",\"$L1e\",null,{\"id\":\"состояния-подключения\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Интеграция MCP отслеживает несколько состояний:\"}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"статус-сервера-mcpserverstatus\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[[\"Статус сервера (\",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"MCPServerStatus\"}],\")\"],[\"$\",\"$L1e\",null,{\"id\":\"статус-сервера-mcpserverstatus\"}]]}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"DISCONNECTED\"}],\":\"]}],\" Сервер не подключен или возникли ошибки\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"CONNECTING\"}],\":\"]}],\" Выполняется попытка подключения\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"CONNECTED\"}],\":\"]}],\" Сервер подключен и готов к работе\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"состояние-обнаружения-mcpdiscoverystate\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[[\"Состояние обнаружения (\",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"MCPDiscoveryState\"}],\")\"],[\"$\",\"$L1e\",null,{\"id\":\"состояние-обнаружения-mcpdiscoverystate\"}]]}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"NOT_STARTED\"}],\":\"]}],\" Обнаружение ещё не началось\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"IN_PROGRESS\"}],\":\"]}],\" В процессе обнаружения серверов\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"COMPLETED\"}],\":\"]}],\" Обнаружение завершено (с ошибками или без)\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"распространённые-проблемы-и-решения\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"Распространённые проблемы и решения\",[\"$\",\"$L1e\",null,{\"id\":\"распространённые-проблемы-и-решения\"}]]}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"сервер-не-подключается\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[\"Сервер не подключается\",[\"$\",\"$L1e\",null,{\"id\":\"сервер-не-подключается\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Симптомы:\"}],\" Сервер отображает статус \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"DISCONNECTED\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"$\",\"strong\",null,{\"children\":\"Устранение неполадок:\"}]}],\"\\n\",[\"$\",\"ol\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Проверьте конфигурацию:\"}],\" Убедитесь, что \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"command\"}],\", \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"args\"}],\" и \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"cwd\"}],\" указаны верно\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Протестируйте вручную:\"}],\" Запустите команду сервера напрямую, чтобы убедиться, что она работает\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Проверьте зависимости:\"}],\" Убедитесь, что все необходимые пакеты установлены\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Изучите логи:\"}],\" Найдите сообщения об ошибках в выводе CLI\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Проверьте права доступа:\"}],\" Убедитесь, что CLI может выполнить команду сервера\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"инструменты-не-обнаружены\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[\"Инструменты не обнаружены\",[\"$\",\"$L1e\",null,{\"id\":\"инструменты-не-обнаружены\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Симптомы:\"}],\" Сервер подключается, но инструменты недоступны\"]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"$\",\"strong\",null,{\"children\":\"Устранение неполадок:\"}]}],\"\\n\",[\"$\",\"ol\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Проверьте регистрацию инструментов:\"}],\" Убедитесь, что ваш сервер действительно регистрирует инструменты\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Проверьте протокол MCP:\"}],\" Подтвердите, что ваш сервер правильно реализует список инструментов MCP\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Изучите логи сервера:\"}],\" Проверьте вывод stderr на наличие ошибок на стороне сервера\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Протестируйте список инструментов:\"}],\" Вручную протестируйте endpoint обнаружения инструментов вашего сервера\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"инструменты-не-выполняются\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[\"Инструменты не выполняются\",[\"$\",\"$L1e\",null,{\"id\":\"инструменты-не-выполняются\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Симптомы:\"}],\" Инструменты обнаруживаются, но завершаются с ошибкой во время выполнения\"]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"$\",\"strong\",null,{\"children\":\"Устранение неполадок:\"}]}],\"\\n\",[\"$\",\"ol\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Валидация параметров:\"}],\" Убедитесь, что ваш инструмент принимает ожидаемые параметры\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Совместимость схем:\"}],\" Проверьте, что ваши input схемы являются валидными JSON Schema\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Обработка ошибок:\"}],\" Проверьте, не выбрасывает ли ваш инструмент необработанные исключения\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Проблемы с таймаутом:\"}],\" Рассмотрите возможность увеличения значения \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"timeout\"}]]}],\"\\n\"]}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"совместимость-песочницы\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[\"Совместимость песочницы\",[\"$\",\"$L1e\",null,{\"id\":\"совместимость-песочницы\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Симптомы:\"}],\" MCP серверы завершаются с ошибкой при включенной песочнице\"]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"$\",\"strong\",null,{\"children\":\"Решения:\"}]}],\"\\n\",[\"$\",\"ol\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Серверы на базе Docker:\"}],\" Используйте Docker контейнеры, которые включают все зависимости\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Доступность путей:\"}],\" Убедитесь, что исполняемые файлы сервера доступны в песочнице\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Доступ к сети:\"}],\" Настройте песочницу для разрешения необходимых сетевых подключений\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Переменные окружения:\"}],\" Проверьте, что необходимые переменные окружения передаются корректно\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"советы-по-отладке\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"Советы по отладке\",[\"$\",\"$L1e\",null,{\"id\":\"советы-по-отладке\"}]]}],\"\\n\",[\"$\",\"ol\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Включите режим отладки:\"}],\" Запустите CLI с флагом \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"--debug\"}],\", чтобы получить подробный вывод\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Проверьте stderr:\"}],\" stderr сервера MCP записывается в лог (информационные сообщения фильтруются)\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Изолируйте тестирование:\"}],\" Протестируйте ваш MCP-сервер отдельно перед интеграцией\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Инкрементальная настройка:\"}],\" Начните с простых инструментов, прежде чем добавлять сложный функционал\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":[\"Часто используйте \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"/mcp\"}],\":\"]}],\" Отслеживайте статус сервера во время разработки\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h2\",null,{\"id\":\"важные-замечания\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border\",\"children\":[\"Важные замечания\",[\"$\",\"$L1e\",null,{\"id\":\"важные-замечания\"}]]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"вопросы-безопасности\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"Вопросы безопасности\",[\"$\",\"$L1e\",null,{\"id\":\"вопросы-безопасности\"}]]}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Настройки доверия:\"}],\" Опция \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"trust\"}],\" отключает все диалоги подтверждения. Используйте с осторожностью и только для серверов, которыми вы полностью управляете\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Токены доступа:\"}],\" Будьте внимательны к безопасности при настройке переменных окружения, содержащих API ключи или токены\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Совместимость с песочницей:\"}],\" При использовании песочницы убедитесь, что MCP-серверы доступны внутри песочничной среды\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Конфиденциальные данные:\"}],\" Использование персональных токенов с широкими правами может привести к утечке информации между репозиториями\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"производительность-и-управление-ресурсами\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"Производительность и управление ресурсами\",[\"$\",\"$L1e\",null,{\"id\":\"производительность-и-управление-ресурсами\"}]]}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Постоянные соединения:\"}],\" CLI поддерживает постоянные соединения с серверами, которые успешно зарегистрировали инструменты\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Автоматическая очистка:\"}],\" Соединения с серверами, не предоставляющими инструментов, автоматически закрываются\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Управление таймаутами:\"}],\" Настройте соответствующие таймауты в зависимости от характеристик ответов вашего сервера\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Мониторинг ресурсов:\"}],\" MCP-серверы запускаются как отдельные процессы и потребляют системные ресурсы\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"совместимость-схем\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"Совместимость схем\",[\"$\",\"$L1e\",null,{\"id\":\"совместимость-схем\"}]]}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Удаление свойств:\"}],\" Система автоматически удаляет определенные свойства схемы (\",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"$$schema\"}],\", \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"additionalProperties\"}],\") для совместимости с Qwen API\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Очистка имен:\"}],\" Имена инструментов автоматически очищаются для соответствия требованиям API\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"Разрешение конфликтов:\"}],\" Конфликты имен инструментов между серверами разрешаются путем автоматического добавления префиксов\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Эта комплексная интеграция делает MCP-серверы мощным способом расширения возможностей CLI с сохранением безопасности, надежности и удобства использования.\"}],\"\\n\",[\"$\",\"h2\",null,{\"id\":\"возврат-rich-content-из-инструментов\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border\",\"children\":[\"Возврат Rich Content из инструментов\",[\"$\",\"$L1e\",null,{\"id\":\"возврат-rich-content-из-инструментов\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Инструменты MCP не ограничены возвратом простого текста. Вы можете возвращать rich, multi-part контент, включая текст, изображения, аудио и другие бинарные данные в одном ответе инструмента. Это позволяет создавать мощные инструменты, которые могут предоставлять модели разнообразную информацию за один ход.\"}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Все данные, возвращаемые из инструмента, обрабатываются и отправляются модели в качестве контекста для следующей генерации, позволяя ей рассуждать или суммировать предоставленную информацию.\"}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"как-это-работает\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"Как это работает\",[\"$\",\"$L1e\",null,{\"id\":\"как-это-работает\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"Чтобы вернуть rich content, ответ вашего инструмента должен соответствовать спецификации MCP для \",[\"$\",\"a\",null,{\"href\":\"https://modelcontextprotocol.io/specification/2025-06-18/server/tools#tool-result\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"className\":\"x:focus-visible:nextra-focus x:text-primary-600 x:underline x:hover:no-underline x:decoration-from-font x:[text-underline-position:from-font]\",\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"CallToolResult\"}],false]}],\". Поле \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"content\"}],\" результата должно быть массивом объектов \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"ContentBlock\"}],\". CLI корректно обработает этот массив, отделяя текст от бинарных данных и упаковывая их для модели.\"]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"Вы можете комбинировать различные типы content блоков в массиве \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"content\"}],\". Поддерживаемые типы блоков включают:\"]}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"text\"}]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"image\"}]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"audio\"}]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"resource\"}],\" (встроенный контент)\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"resource_link\"}]}],\"\\n\"]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"пример-возврат-текста-и-изображения\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"Пример: возврат текста и изображения\",[\"$\",\"$L1e\",null,{\"id\":\"пример-возврат-текста-и-изображения\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Вот пример корректного JSON-ответа от инструмента MCP, который возвращает как текстовое описание, так и изображение:\"}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"{\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"content\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": [\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" {\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"type\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"text\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"text\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"Вот логотип, который вы запрашивали.\\\"\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" },\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" {\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"type\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"image\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"data\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"BASE64_ENCODED_IMAGE_DATA_HERE\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"mimeType\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"image/png\\\"\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" },\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" {\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"type\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"text\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"text\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"Логотип был создан в 2025 году.\\\"\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" }\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" ]\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"}\"}]}]]}]]}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Когда Qwen Code получает этот ответ, он:\"}],\"\\n\",[\"$\",\"ol\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[\"Извлекает весь текст и объединяет его в одну часть \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"functionResponse\"}],\" для модели.\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[\"Представляет данные изображения как отдельную часть \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"inlineData\"}],\".\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":\"Выводит понятное и дружелюбное резюме в CLI, указывая, что были получены и текст, и изображение.\"}],\"\\n\"]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Это позволяет создавать сложные инструменты, которые могут предоставлять модели Qwen богатый многомодальный контекст.\"}],\"\\n\",[\"$\",\"h2\",null,{\"id\":\"mcp-prompts-как-slash-commands\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border\",\"children\":[\"MCP Prompts как Slash Commands\",[\"$\",\"$L1e\",null,{\"id\":\"mcp-prompts-как-slash-commands\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Помимо инструментов, MCP-серверы могут предоставлять预定义ные prompts, которые можно выполнять как slash commands внутри Qwen Code. Это позволяет создавать shortcuts для часто используемых или сложных запросов, которые можно легко вызывать по имени.\"}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"определение-промптов-на-сервере\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"Определение промптов на сервере\",[\"$\",\"$L1e\",null,{\"id\":\"определение-промптов-на-сервере\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Вот небольшой пример stdio MCP сервера, который определяет промпты:\"}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"import\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" { McpServer } \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"from\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" '@modelcontextprotocol/sdk/server/mcp.js'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"import\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" { StdioServerTransport } \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"from\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" '@modelcontextprotocol/sdk/server/stdio.js'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"import\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" { z } \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"from\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" 'zod'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":\" \"}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" server\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" new\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\" McpServer\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"({\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" name: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'prompt-server'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" version: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'1.0.0'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"});\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":\" \"}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"server.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"registerPrompt\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" 'poem-writer'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" {\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" title: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'Poem Writer'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" description: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'Write a nice haiku'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" argsSchema: { title: z.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"string\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(), mood: z.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"string\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"().\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"optional\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"() },\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" },\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" ({ \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFAB70\"},\"children\":\"title\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFAB70\"},\"children\":\"mood\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" }) \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" ({\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" messages: [\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" {\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" role: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'user'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" content: {\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" type: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'text'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" text: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`Write a haiku${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"mood\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" ?\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" ` with the mood ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"mood\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"}`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" :\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" ''} called ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"title\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"}. Note that a haiku is 5 syllables followed by 7 syllables followed by 5 syllables `\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" },\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" },\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" ],\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" }),\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\");\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":\" \"}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" transport\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" new\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\" StdioServerTransport\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"();\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" server.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"connect\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(transport);\"}]]}]]}]]}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"Это можно добавить в \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"settings.json\"}],\" в разделе \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"mcpServers\"}],\" следующим образом:\"]}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"nodeServer\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"command\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"node\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" \\\"args\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": [\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"filename.ts\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"],\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"}\"}]}]]}]]}]]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"вызов-промптов\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[\"Вызов промптов\",[\"$\",\"$L1e\",null,{\"id\":\"вызов-промптов\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"После того как промпт будет обнаружен, вы можете вызвать его, используя его имя в качестве slash-команды. CLI автоматически обработает парсинг аргументов.\"}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"/poem-writer\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" --title=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"Qwen Code\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" --mood=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"reverent\\\"\"}]]}]}]]}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"или, используя позиционные аргументы:\"}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"/poem-writer\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"Qwen Code\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" reverent\"}]]}]}]]}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"При выполнении этой команды CLI вызывает метод \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"prompts/get\"}],\" на сервере MCP с переданными аргументами. Сервер отвечает за подстановку аргументов в шаблон промпта и возвращает финальный текст промпта. Затем CLI отправляет этот промпт модели для выполнения. Это удобный способ автоматизировать и делиться общими рабочими процессами.\"]}],\"\\n\",[\"$\",\"h2\",null,{\"id\":\"управление-mcp-серверами-с-помощью-qwen-mcp\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border\",\"children\":[[\"Управление MCP серверами с помощью \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"qwen mcp\"}]],[\"$\",\"$L1e\",null,{\"id\":\"управление-mcp-серверами-с-помощью-qwen-mcp\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"Хотя вы всегда можете настроить MCP сервера, отредактировав вручную файл \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"settings.json\"}],\", CLI предоставляет удобный набор команд для программного управления конфигурациями ваших серверов. Эти команды упрощают процесс добавления, просмотра и удаления MCP серверов без необходимости напрямую редактировать JSON файлы.\"]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"добавление-сервера-qwen-mcp-add\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[[\"Добавление сервера (\",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"qwen mcp add\"}],\")\"],[\"$\",\"$L1e\",null,{\"id\":\"добавление-сервера-qwen-mcp-add\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"Команда \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"add\"}],\" настраивает новый MCP-сервер в вашем \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"settings.json\"}],\". В зависимости от области видимости (\",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"-s, --scope\"}],\"), сервер будет добавлен либо в пользовательский конфиг \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"~/.qwen/settings.json\"}],\", либо в проектный конфиг \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\".qwen/settings.json\"}],\".\"]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"$\",\"strong\",null,{\"children\":\"Команда:\"}]}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"qwen\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" mcp\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" add\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" [options] \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"\u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"name\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" \u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"commandOrUrl\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" [args...]\"}]]}]}]]}]]}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"\u003cname\u003e\"}],\": Уникальное имя сервера.\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"\u003ccommandOrUrl\u003e\"}],\": Команда для выполнения (для \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"stdio\"}],\") или URL (для \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"http\"}],\"/\",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"sse\"}],\").\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"[args...]\"}],\": Опциональные аргументы для команды \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"stdio\"}],\".\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"$\",\"strong\",null,{\"children\":\"Опции (флаги):\"}]}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"x:[:is(ol,ul)_\u0026]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"-s, --scope\"}],\": Область конфигурации (user или project). [по умолчанию: “project”]\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"-t, --transport\"}],\": Тип транспорта (stdio, sse, http). [по умолчанию: “stdio”]\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"-e, --env\"}],\": Установить переменные окружения (например, -e KEY=value).\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"-H, --header\"}],\": Установить HTTP-заголовки для SSE и HTTP транспортов (например, -H “X-Api-Key: abc123” -H “Authorization: Bearer abc123”).\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"--timeout\"}],\": Установить таймаут подключения в миллисекундах.\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"--trust\"}],\": Доверять серверу (пропустить все подтверждения вызова инструментов).\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"--description\"}],\": Задать описание сервера.\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"--include-tools\"}],\": Список инструментов для включения, разделённый запятыми.\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"x:my-[.5em]\",\"children\":[[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"--exclude-tools\"}],\": Список инструментов для исключения, разделённый запятыми.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"добавление-stdio-сервера\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[\"Добавление stdio сервера\",[\"$\",\"$L1e\",null,{\"id\":\"добавление-stdio-сервера\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Это транспорт по умолчанию для запуска локальных серверов.\"}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[[\"$\",\"span\",null,{\"children\":\" \"}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"# Базовый синтаксис\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"qwen\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" mcp\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" add\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" \u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"nam\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" \u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"comman\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"d\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" [args...]\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":\" \"}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"# Пример: Добавление локального сервера\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"qwen\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" mcp\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" add\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" my-stdio-server\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" -e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" API_KEY=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"123\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" /path/to/server\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" arg1\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" arg2\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" arg3\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":\" \"}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"# Пример: Добавление локального python сервера\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"qwen\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" mcp\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" add\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" python-server\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" python\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" server.py\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" --port\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" 8080\"}]]}]]}]]}]]}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"добавление-http-сервера\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[\"Добавление HTTP сервера\",[\"$\",\"$L1e\",null,{\"id\":\"добавление-http-сервера\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Этот транспорт используется для серверов, которые используют потоковую передачу по HTTP.\"}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[[\"$\",\"span\",null,{\"children\":\" \"}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"# Базовый синтаксис\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"qwen\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" mcp\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" add\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" --transport\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" http\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" \u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"nam\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" \u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"ur\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"l\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"\u003e\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":\" \"}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"# Пример: Добавление HTTP сервера\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"qwen\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" mcp\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" add\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" --transport\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" http\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" http-server\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" https://api.example.com/mcp/\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":\" \"}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"# Пример: Добавление HTTP сервера с заголовком аутентификации\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"qwen\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" mcp\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" add\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" --transport\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" http\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" secure-http\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" https://api.example.com/mcp/\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" --header\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"Authorization: Bearer abc123\\\"\"}]]}]]}]]}]]}],\"\\n\",[\"$\",\"h4\",null,{\"id\":\"добавление-sse-сервера\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-xl\",\"children\":[\"Добавление SSE сервера\",[\"$\",\"$L1e\",null,{\"id\":\"добавление-sse-сервера\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":\"Этот транспорт используется для серверов, которые используют Server-Sent Events (SSE).\"}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[[\"$\",\"span\",null,{\"children\":\" \"}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"# Базовый синтаксис\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"qwen\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" mcp\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" add\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" --transport\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" sse\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" \u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"nam\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" \u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"ur\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"l\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"\u003e\"}]]}]]}]]}]]}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-light-font-weight\":\"bold\",\"--shiki-dark\":\"#79B8FF\",\"--shiki-dark-font-weight\":\"bold\"},\"children\":\"# Пример: Добавление SSE-сервера\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"qwen mcp add --transport sse sse-server https://api.example.com/sse/\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":\" \"}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-light-font-weight\":\"bold\",\"--shiki-dark\":\"#79B8FF\",\"--shiki-dark-font-weight\":\"bold\"},\"children\":\"# Пример: Добавление SSE-сервера с заголовком авторизации\"}]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"qwen mcp add --transport sse secure-sse https://api.example.com/sse/ --header \\\"Authorization: Bearer abc123\\\"\"}]}]]}]]}]]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"просмотр-списка-серверов-qwen-mcp-list\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[[\"Просмотр списка серверов (\",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"qwen mcp list\"}],\")\"],[\"$\",\"$L1e\",null,{\"id\":\"просмотр-списка-серверов-qwen-mcp-list\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"Чтобы посмотреть все настроенные MCP-серверы, используйте команду \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"list\"}],\". Она отобразит имя каждого сервера, его конфигурацию и статус подключения.\"]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"$\",\"strong\",null,{\"children\":\"Команда:\"}]}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"qwen\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" mcp\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" list\"}]]}]}]]}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"$\",\"strong\",null,{\"children\":\"Пример вывода:\"}]}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"✓\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" stdio-server:\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" command:\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" python3\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" server.py\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" (stdio) - Connected\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"✓\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" http-server:\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" https://api.example.com/mcp\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" (http) - Connected\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"✗\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" sse-server:\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" https://api.example.com/sse\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" (sse) - Disconnected\"}]]}]]}]]}]]}],\"\\n\",[\"$\",\"h3\",null,{\"id\":\"удаление-сервера-qwen-mcp-remove\",\"className\":\"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl\",\"children\":[[\"Удаление сервера (\",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"qwen mcp remove\"}],\")\"],[\"$\",\"$L1e\",null,{\"id\":\"удаление-сервера-qwen-mcp-remove\"}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"Чтобы удалить сервер из вашей конфигурации, используйте команду \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"remove\"}],\" с указанием имени сервера.\"]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"$\",\"strong\",null,{\"children\":\"Команда:\"}]}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"qwen\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" mcp\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" remove\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" \u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"nam\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"\u003e\"}]]}]}]]}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"$\",\"strong\",null,{\"children\":\"Пример:\"}]}],\"\\n\",[\"$\",\"div\",null,{\"data-pagefind-ignore\":\"all\",\"className\":\"nextra-code x:relative x:not-first:mt-[1.25em]\",\"children\":[\"$undefined\",[\"$\",\"pre\",null,{\"className\":\"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose\",\"tabIndex\":\"0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2\",\"children\":[[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"height\":\"1em\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}]}]}],false]}],[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"qwen\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" mcp\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" remove\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" my-server\"}]]}]}]]}]]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"x:not-first:mt-[1.25em] x:leading-7\",\"children\":[\"Эта команда найдет и удалит запись “my-server” из объекта \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"mcpServers\"}],\" в соответствующем файле \",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"settings.json\"}],\", определяемом scope (\",[\"$\",\"code\",null,{\"className\":\"nextra-code\",\"dir\":\"ltr\",\"children\":\"-s, --scope\"}],\").\"]}]]}]]}]]}]}]\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"MCP серверы с Qwen Code | \"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"x\"}],[\"$\",\"meta\",\"4\",{\"name\":\"msapplication-TileColor\",\"content\":\"#fff\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"6\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"Qwen Code\"}],[\"$\",\"meta\",\"7\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"default\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:title\",\"content\":\"MCP серверы с Qwen Code | \"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:description\",\"content\":\"x\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image\",\"content\":\"https://assets.vercel.com/image/upload/v1572282926/swr/twitter-card.jpg\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:site\",\"content\":\"@qwenLLM\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:title\",\"content\":\"MCP серверы с Qwen Code | \"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:description\",\"content\":\"x\"}],[\"$\",\"meta\",\"15\",{\"name\":\"twitter:image\",\"content\":\"https://assets.vercel.com/image/upload/v1572282926/swr/twitter-card.jpg\"}]]\n4:null\n"])</script></body></html> |