{"id":3477,"date":"2025-09-26T14:49:09","date_gmt":"2025-09-26T12:49:09","guid":{"rendered":"https:\/\/davidka.net\/ru\/?p=3477"},"modified":"2025-09-26T20:07:45","modified_gmt":"2025-09-26T18:07:45","slug":"mcp-powershell-server-how-to-use","status":"publish","type":"post","link":"https:\/\/ru.davidka.net\/ru\/mcp-powershell-server-how-to-use\/","title":{"rendered":"\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e MCP PowerShell Server. how-to-use.md"},"content":{"rendered":"\n<div id=\"rtoc-mokuji-wrapper\" class=\"rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default\" data-id=\"3477\" data-theme=\"Neve - Davidka\">\n\t\t\t<div id=\"rtoc-mokuji-title\" class=\"rtoc_btn_none rtoc_left\">\n\t\t\t\n\t\t\t<span>In Questo Articolo<\/span>\n\t\t\t<\/div><ol class=\"rtoc-mokuji decimal_ol level-1\"><li class=\"rtoc-item\"><a href=\"#rtoc-1\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430<\/a><ul class=\"rtoc-mokuji mokuji_ul level-2\"><li class=\"rtoc-item\"><a href=\"#rtoc-2\">\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-3\">\u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430<\/a><\/li><\/ul><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-4\">\u0412\u044b\u0431\u043e\u0440 \u0440\u0435\u0436\u0438\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u044b: HTTP vs. STDIO<\/a><ul class=\"rtoc-mokuji mokuji_ul level-2\"><li class=\"rtoc-item\"><a href=\"#rtoc-5\">\u041a\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c HTTP \u0440\u0435\u0436\u0438\u043c?<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-6\">\u041a\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c STDIO \u0440\u0435\u0436\u0438\u043c?<\/a><\/li><\/ul><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-7\">STDIO \u0440\u0435\u0436\u0438\u043c<\/a><ul class=\"rtoc-mokuji mokuji_ul level-2\"><li class=\"rtoc-item\"><a href=\"#rtoc-8\">\u0417\u0430\u043f\u0443\u0441\u043a STDIO \u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-9\">\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 STDIO \u0440\u0435\u0436\u0438\u043c\u0430<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-10\">\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 STDIO \u0440\u0435\u0436\u0438\u043c\u0430<\/a><\/li><\/ul><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-11\">HTTP \u0440\u0435\u0436\u0438\u043c<\/a><ul class=\"rtoc-mokuji mokuji_ul level-2\"><li class=\"rtoc-item\"><a href=\"#rtoc-12\">\u0417\u0430\u043f\u0443\u0441\u043a HTTP \u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-13\">HTTP API \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442\u044b<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-14\">\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 HTTP \u0440\u0435\u0436\u0438\u043c\u0430<\/a><\/li><\/ul><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-15\">\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 Gemini CLI<\/a><ul class=\"rtoc-mokuji mokuji_ul level-2\"><li class=\"rtoc-item\"><a href=\"#rtoc-16\">\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-17\">\u0420\u0443\u0447\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430<\/a><\/li><\/ul><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-18\">\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/a><ul class=\"rtoc-mokuji mokuji_ul level-2\"><li class=\"rtoc-item\"><a href=\"#rtoc-19\">\u0411\u0430\u0437\u043e\u0432\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b PowerShell<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-20\">\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-21\">\u0421\u043a\u0440\u0438\u043f\u0442\u044b \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-22\">\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433<\/a><\/li><\/ul><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-23\">\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f<\/a><ul class=\"rtoc-mokuji mokuji_ul level-2\"><li class=\"rtoc-item\"><a href=\"#rtoc-24\">\u0424\u0430\u0439\u043b config.json<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-25\">\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f<\/a><\/li><\/ul><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-26\">\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c<\/a><ul class=\"rtoc-mokuji mokuji_ul level-2\"><li class=\"rtoc-item\"><a href=\"#rtoc-27\">\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u043f\u043e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-28\">\u0410\u0443\u0434\u0438\u0442 \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433<\/a><\/li><\/ul><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-29\">\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/a><ul class=\"rtoc-mokuji mokuji_ul level-2\"><li class=\"rtoc-item\"><a href=\"#rtoc-30\">\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 MCP \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-31\">\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430<\/a><ul class=\"rtoc-mokuji mokuji_none level-3\"><li class=\"rtoc-item\"><a href=\"#rtoc-32\">tools\/call<\/a><\/li><\/ul><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-33\">Error Codes<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-34\">Logging Levels<\/a><\/li><\/ul><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-35\">\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/a><\/li><\/ol><\/div><h2 id=\"rtoc-1\"  class=\"wp-block-heading\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430<\/h2>\n\n\n\n<h3 id=\"rtoc-2\"  class=\"wp-block-heading\">\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>PowerShell 7.0+<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">   # \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 PowerShell\n   $PSVersionTable.PSVersion\n\n   # \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 PowerShell 7 (\u0435\u0441\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e)\n   # \u0421\u043a\u0430\u0447\u0430\u0439\u0442\u0435 \u0441 https:\/\/github.com\/PowerShell\/PowerShell<\/code><\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u041f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0414\u043b\u044f \u043f\u043e\u0440\u0442\u043e\u0432 < 1024 \u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u0430 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430<\/li>\n\n\n\n<li>\u041f\u0440\u0430\u0432\u0430 \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 PowerShell \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432<\/li>\n<\/ul>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">   # \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438\n   Get-ExecutionPolicy\n\n   # \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432\n   Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser<\/code><\/pre>\n\n\n\n<h3 id=\"rtoc-3\"  class=\"wp-block-heading\">\u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u041d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f \u043a \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">   # \u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u0432 \u043a\u043e\u0440\u0435\u043d\u044c \u043c\u043e\u0434\u0443\u043b\u044f\n   cd C:\\powershell\\modules\\mcp-powershell-server\n\n   # \u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c\n   cd src\\servers<\/code><\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0444\u0430\u0439\u043b\u043e\u0432<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">   # \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442\n   Get-ChildItem *.ps1 | Select-Object Name<\/code><\/pre>\n\n\n\n<h2 id=\"rtoc-4\"  class=\"wp-block-heading\">\u0412\u044b\u0431\u043e\u0440 \u0440\u0435\u0436\u0438\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u044b: HTTP vs. STDIO<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u043f\u043e\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f \u0432 \u0434\u0435\u0442\u0430\u043b\u0438, \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a\u043e\u0439 \u0438\u0437 \u0434\u0432\u0443\u0445 \u0440\u0435\u0436\u0438\u043c\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0432\u0430\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442. \u0412\u044b\u0431\u043e\u0440 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0442\u043e\u0433\u043e, <strong>\u043a\u0430\u043a \u0438 \u043e\u0442\u043a\u0443\u0434\u0430<\/strong> \u0432\u044b \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>HTTP \u0440\u0435\u0436\u0438\u043c (<code class=\"\" data-line=\"\">mcp-powershell-http.ps1<\/code>)<\/strong>: \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a <strong>\u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0438\u0441<\/strong>. \u041e\u043d \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043f\u043e \u0441\u0435\u0442\u0438 (HTTP) \u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0441 \u0434\u0440\u0443\u0433\u0438\u0445 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u0432 \u0438\u043b\u0438 \u0438\u0437 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u042d\u0442\u043e \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0434\u043b\u044f \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0439.<\/li>\n\n\n\n<li><strong>STDIO \u0440\u0435\u0436\u0438\u043c (<code class=\"\" data-line=\"\">mcp-powershell-stdio.ps1<\/code>)<\/strong>: \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a <strong>\u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/strong>, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0435 \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c. \u041e\u043d \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u0432\u0432\u043e\u0434\u0430 (Standard Input) \u0438 \u043e\u0442\u0434\u0430\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u0432\u044b\u0432\u043e\u0434\u0430 (Standard Output). \u042d\u0442\u043e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u0438\u0434\u0435\u0430\u043b\u0435\u043d \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441 <code class=\"\" data-line=\"\">gemini-cli<\/code>.<\/li>\n<\/ul>\n\n\n\n<h3 id=\"rtoc-5\"  class=\"wp-block-heading\">\u041a\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c HTTP \u0440\u0435\u0436\u0438\u043c?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0412\u044b\u0431\u0438\u0440\u0430\u0439\u0442\u0435 HTTP, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f <strong>\u0441\u0435\u0442\u0435\u0432\u0430\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435:<\/strong> \u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043a\u0440\u0438\u043f\u0442 \u043d\u0430 Python) \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 <strong>\u0434\u0440\u0443\u0433\u043e\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435<\/strong>.<\/li>\n\n\n\n<li><strong>\u0412\u0435\u0431-\u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f:<\/strong> \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c PowerShell \u0438\u0437 \u0432\u0435\u0431-\u043f\u0430\u043d\u0435\u043b\u0438, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e JavaScript.<\/li>\n\n\n\n<li><strong>\u041c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430:<\/strong> \u0420\u0430\u0437\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0432 \u0432\u0430\u0448\u0435\u0439 \u0441\u0435\u0442\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u043e\u0431\u043c\u0435\u043d\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438.<\/li>\n\n\n\n<li><strong>\u041f\u0440\u043e\u0441\u0442\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435:<\/strong> \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u0440\u043e\u0434\u0435 <code class=\"\" data-line=\"\">curl<\/code> \u0438\u043b\u0438 Postman.<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439:<\/strong> \u041a\u043b\u0438\u0435\u043d\u0442 \u0438 \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0441\u0435\u0442\u0438 \u0438 \u043e\u0431\u0449\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u0432\u0435\u0431-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c.<\/p>\n<\/blockquote>\n\n\n\n<h3 id=\"rtoc-6\"  class=\"wp-block-heading\">\u041a\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c STDIO \u0440\u0435\u0436\u0438\u043c?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0412\u044b\u0431\u0438\u0440\u0430\u0439\u0442\u0435 STDIO \u0434\u043b\u044f <strong>\u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0438 \u0431\u043e\u043b\u0435\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 Gemini CLI:<\/strong> \u042d\u0442\u043e <strong>\u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439<\/strong> \u0438 \u0441\u0430\u043c\u044b\u0439 \u0447\u0430\u0441\u0442\u044b\u0439 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439. <code class=\"\" data-line=\"\">gemini-cli<\/code> \u0441\u0430\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 <code class=\"\" data-line=\"\">mcp-powershell-stdio.ps1<\/code> \u043a\u0430\u043a \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0438 \u043e\u0431\u0449\u0430\u0435\u0442\u0441\u044f \u0441 \u043d\u0438\u043c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e.<\/li>\n\n\n\n<li><strong>\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b-\u043e\u0431\u0435\u0440\u0442\u043a\u0438:<\/strong> \u0412\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c \u044f\u0437\u044b\u043a\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, Node.js) \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0441\u0435\u0440\u0432\u0435\u0440 PowerShell \u043a\u0430\u043a \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u043c.<\/li>\n\n\n\n<li><strong>\u041f\u043e\u0432\u044b\u0448\u0435\u043d\u043d\u0430\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c:<\/strong> \u042d\u0442\u043e\u0442 \u0440\u0435\u0436\u0438\u043c \u043d\u0435 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043f\u043e\u0440\u0442\u044b, \u0447\u0442\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0446\u0435\u043b\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0443\u0433\u0440\u043e\u0437.<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439:<\/strong> \u041a\u043b\u0438\u0435\u043d\u0442 \u0438 \u0441\u0435\u0440\u0432\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043d\u0430 <strong>\u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435<\/strong>, \u0438 \u043a\u043b\u0438\u0435\u043d\u0442 \u0441\u0430\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u043c \u0446\u0438\u043a\u043b\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0430.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438\u0441\u044c \u0441 \u0440\u0435\u0436\u0438\u043c\u043e\u043c, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u0435 \u043a \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c\u0443 \u0440\u0430\u0437\u0434\u0435\u043b\u0443 \u043d\u0438\u0436\u0435 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043f\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e.<\/p>\n\n\n\n<h2 id=\"rtoc-7\"  class=\"wp-block-heading\">STDIO \u0440\u0435\u0436\u0438\u043c<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">STDIO \u0440\u0435\u0436\u0438\u043c \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 MCP-\u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438, \u0442\u0430\u043a\u0438\u043c\u0438 \u043a\u0430\u043a <code class=\"\" data-line=\"\">gemini-cli<\/code>.<\/p>\n\n\n\n<h3 id=\"rtoc-8\"  class=\"wp-block-heading\">\u0417\u0430\u043f\u0443\u0441\u043a STDIO \u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/h3>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\"># \u041f\u0440\u044f\u043c\u043e\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0430 (\u0438\u0437 \u043f\u0430\u043f\u043a\u0438 src\/servers)\n.\\mcp-powershell-stdio.ps1\n\n# \u0418\u043b\u0438 \u0438\u0437 \u043a\u043e\u0440\u043d\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430\n.\\src\\servers\\mcp-powershell-stdio.ps1<\/code><\/pre>\n\n\n\n<h3 id=\"rtoc-9\"  class=\"wp-block-heading\">\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 STDIO \u0440\u0435\u0436\u0438\u043c\u0430<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b<\/strong>: JSON-RPC \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043f\u043e\u0442\u043e\u043a\u0438 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430<\/li>\n\n\n\n<li><strong>\u041b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/strong>: \u0412 \u0444\u0430\u0439\u043b <code class=\"\" data-line=\"\">%TEMP%\\mcp-powershell-server.log<\/code><\/li>\n\n\n\n<li><strong>\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430<\/strong>: UTF-8 \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0440\u0443\u0441\u0441\u043a\u0438\u043c\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438<\/li>\n\n\n\n<li><strong>\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c<\/strong>: \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043b\u044e\u0431\u044b\u043c\u0438 MCP-\u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438<\/li>\n<\/ul>\n\n\n\n<h3 id=\"rtoc-10\"  class=\"wp-block-heading\">\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 STDIO \u0440\u0435\u0436\u0438\u043c\u0430<\/h3>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\"># \u0417\u0430\u043f\u0443\u0441\u043a \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 (\u0438\u0437 \u043f\u0430\u043f\u043a\u0438 src\/servers)\n.\\test-mcp.ps1\n\n# \u0418\u043b\u0438 \u0438\u0437 \u043a\u043e\u0440\u043d\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430\n.\\src\\servers\\test-mcp.ps1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">{&quot;jsonrpc&quot;:&quot;2.0&quot;,&quot;id&quot;:1,&quot;method&quot;:&quot;initialize&quot;,&quot;params&quot;:{&quot;protocolVersion&quot;:&quot;2024-11-05&quot;}}\n{&quot;jsonrpc&quot;:&quot;2.0&quot;,&quot;id&quot;:2,&quot;method&quot;:&quot;tools\/list&quot;}\n{&quot;jsonrpc&quot;:&quot;2.0&quot;,&quot;id&quot;:3,&quot;method&quot;:&quot;tools\/call&quot;,&quot;params&quot;:{&quot;name&quot;:&quot;run-script&quot;,&quot;arguments&quot;:{&quot;script&quot;:&quot;Get-Date&quot;}}}<\/code><\/pre>\n\n\n\n<h2 id=\"rtoc-11\"  class=\"wp-block-heading\">HTTP \u0440\u0435\u0436\u0438\u043c<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">HTTP \u0440\u0435\u0436\u0438\u043c \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0439 \u0438 REST API.<\/p>\n\n\n\n<h3 id=\"rtoc-12\"  class=\"wp-block-heading\">\u0417\u0430\u043f\u0443\u0441\u043a HTTP \u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/h3>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\"># \u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a (localhost:8090) \u0438\u0437 \u043f\u0430\u043f\u043a\u0438 src\/servers\n.\\mcp-powershell-http.ps1\n\n# \u0417\u0430\u043f\u0443\u0441\u043a \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c \u043f\u043e\u0440\u0442\u0443\n.\\mcp-powershell-http.ps1 -Port 9090\n\n# \u0417\u0430\u043f\u0443\u0441\u043a \u043d\u0430 \u0432\u0441\u0435\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u0445\n.\\mcp-powershell-http.ps1 -ServerHost &quot;0.0.0.0&quot; -Port 8080\n\n# \u0417\u0430\u043f\u0443\u0441\u043a \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u043e\u043c\n.\\mcp-powershell-http.ps1 -ConfigFile &quot;config.json&quot;\n\n# \u0418\u043b\u0438 \u0438\u0437 \u043a\u043e\u0440\u043d\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430\n.\\src\\servers\\mcp-powershell-http.ps1 -Port 8090<\/code><\/pre>\n\n\n\n<h3 id=\"rtoc-13\"  class=\"wp-block-heading\">HTTP API \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442\u044b<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0412\u0441\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043a\u0430\u043a POST \u043d\u0430 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 URL \u0441\u0435\u0440\u0432\u0435\u0440\u0430.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>URL<\/strong>: <code class=\"\" data-line=\"\">http:\/\/localhost:8090\/<\/code><br><strong>Method<\/strong>: <code class=\"\" data-line=\"\">POST<\/code><br><strong>Content-Type<\/strong>: <code class=\"\" data-line=\"\">application\/json<\/code><\/p>\n\n\n\n<h3 id=\"rtoc-14\"  class=\"wp-block-heading\">\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 HTTP \u0440\u0435\u0436\u0438\u043c\u0430<\/h3>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\"># \u0422\u0435\u0441\u0442 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Invoke-RestMethod\n$body = @{\n    jsonrpc = &quot;2.0&quot;\n    id = 1\n    method = &quot;tools\/list&quot;\n} | ConvertTo-Json\n\nInvoke-RestMethod -Uri &quot;http:\/\/localhost:8090\/&quot; -Method POST -Body $body -ContentType &quot;application\/json&quot;<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\"># \u0422\u0435\u0441\u0442 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e curl\ncurl -X POST http:\/\/localhost:8090\/ \\\n  -H &quot;Content-Type: application\/json&quot; \\\n  -d &#039;{&quot;jsonrpc&quot;:&quot;2.0&quot;,&quot;id&quot;:1,&quot;method&quot;:&quot;tools\/list&quot;}&#039;<\/code><\/pre>\n\n\n\n<h2 id=\"rtoc-15\"  class=\"wp-block-heading\">\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 Gemini CLI<\/h2>\n\n\n\n<h3 id=\"rtoc-16\"  class=\"wp-block-heading\">\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430<\/h3>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\"># \u0417\u0430\u043f\u0443\u0441\u043a \u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 Gemini CLI\n.\\start-mcp-with-gemini.ps1 -ApiKey &quot;your-gemini-api-key&quot;\n\n# \u0421 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438\n.\\start-mcp-with-gemini.ps1 -ApiKey &quot;your-key&quot; -ServerPort 9090 -Wait 15<\/code><\/pre>\n\n\n\n<h3 id=\"rtoc-17\"  class=\"wp-block-heading\">\u0420\u0443\u0447\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 MCP<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">   # \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\n   $configDir = &quot;$env:USERPROFILE\\.config\\gemini&quot;\n   New-Item -Path $configDir -ItemType Directory -Force\n\n   # \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 MCP\n   $config = @{\n       mcpServers = @{\n           powershell = @{\n               command = &quot;pwsh&quot;\n               args = @(&quot;-File&quot;, &quot;C:\\path\\to\\mcp-powershell-stdio.ps1&quot;)\n               env = @{}\n           }\n       }\n   } | ConvertTo-Json -Depth 5\n\n   $config | Set-Content &quot;$configDir\\mcp_servers.json&quot; -Encoding UTF8<\/code><\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 gemini-cli<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">   # \u0418\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c\n   gemini --mcp-config &quot;path\/to\/mcp_servers.json&quot; -i\n\n   # \u041e\u0434\u0438\u043d\u043e\u0447\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441\n   gemini --mcp-config &quot;path\/to\/mcp_servers.json&quot; -m gemini-2.5-pro -p &quot;\u0412\u044b\u043f\u043e\u043b\u043d\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 Get-Process | Select-Object -First 5&quot;<\/code><\/pre>\n\n\n\n<h2 id=\"rtoc-18\"  class=\"wp-block-heading\">\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/h2>\n\n\n\n<h3 id=\"rtoc-19\"  class=\"wp-block-heading\">\u0411\u0430\u0437\u043e\u0432\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b PowerShell<\/h3>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">{\n  &quot;jsonrpc&quot;: &quot;2.0&quot;,\n  &quot;id&quot;: 1,\n  &quot;method&quot;: &quot;tools\/call&quot;,\n  &quot;params&quot;: {\n    &quot;name&quot;: &quot;run-script&quot;,\n    &quot;arguments&quot;: {\n      &quot;script&quot;: &quot;Get-ComputerInfo | Select-Object WindowsProductName, TotalPhysicalMemory&quot;\n    }\n  }\n}<\/code><\/pre>\n\n\n\n<h3 id=\"rtoc-20\"  class=\"wp-block-heading\">\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438<\/h3>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">{\n  &quot;jsonrpc&quot;: &quot;2.0&quot;,\n  &quot;id&quot;: 2,\n  &quot;method&quot;: &quot;tools\/call&quot;,\n  &quot;params&quot;: {\n    &quot;name&quot;: &quot;run-script&quot;,\n    &quot;arguments&quot;: {\n      &quot;script&quot;: &quot;Get-ChildItem C:\\\\ -Directory | Select-Object Name, CreationTime | Format-Table&quot;,\n      &quot;workingDirectory&quot;: &quot;C:\\\\&quot;,\n      &quot;timeoutSeconds&quot;: 30\n    }\n  }\n}<\/code><\/pre>\n\n\n\n<h3 id=\"rtoc-21\"  class=\"wp-block-heading\">\u0421\u043a\u0440\u0438\u043f\u0442\u044b \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438<\/h3>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">{\n  &quot;jsonrpc&quot;: &quot;2.0&quot;,\n  &quot;id&quot;: 3,\n  &quot;method&quot;: &quot;tools\/call&quot;,\n  &quot;params&quot;: {\n    &quot;name&quot;: &quot;run-script&quot;,\n    &quot;arguments&quot;: {\n      &quot;script&quot;: &quot;param($ProcessName) Get-Process -Name $ProcessName -ErrorAction SilentlyContinue&quot;,\n      &quot;parameters&quot;: {\n        &quot;ProcessName&quot;: &quot;notepad&quot;\n      }\n    }\n  }\n}<\/code><\/pre>\n\n\n\n<h3 id=\"rtoc-22\"  class=\"wp-block-heading\">\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433<\/h3>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">{\n  &quot;jsonrpc&quot;: &quot;2.0&quot;,\n  &quot;id&quot;: 4,\n  &quot;method&quot;: &quot;tools\/call&quot;,\n  &quot;params&quot;: {\n    &quot;name&quot;: &quot;run-script&quot;,\n    &quot;arguments&quot;: {\n      &quot;script&quot;: &quot;$cpu = Get-Counter &#039;\\\\Processor(_Total)\\\\% Processor Time&#039; | Select-Object -ExpandProperty CounterSamples | Select-Object -ExpandProperty CookedValue; $memory = Get-Counter &#039;\\\\Memory\\\\Available MBytes&#039; | Select-Object -ExpandProperty CounterSamples | Select-Object -ExpandProperty CookedValue; Write-Output \\&quot;CPU: $(&#091;math]::Round($cpu, 2))%, Available Memory: $memory MB\\&quot;&quot;\n    }\n  }\n}<\/code><\/pre>\n\n\n\n<h2 id=\"rtoc-23\"  class=\"wp-block-heading\">\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f<\/h2>\n\n\n\n<h3 id=\"rtoc-24\"  class=\"wp-block-heading\">\u0424\u0430\u0439\u043b config.json<\/h3>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">{\n  &quot;Port&quot;: 8090,\n  &quot;Host&quot;: &quot;localhost&quot;,\n  &quot;MaxConcurrentRequests&quot;: 10,\n  &quot;TimeoutSeconds&quot;: 300,\n  &quot;LogLevel&quot;: &quot;INFO&quot;,\n  &quot;AllowedPaths&quot;: &#091;\n    &quot;C:\\\\Scripts\\\\&quot;,\n    &quot;C:\\\\Tools\\\\&quot;,\n    &quot;C:\\\\Temp\\\\&quot;\n  ],\n  &quot;Security&quot;: {\n    &quot;EnableScriptValidation&quot;: true,\n    &quot;BlockDangerousCommands&quot;: true,\n    &quot;RestrictedCommands&quot;: &#091;\n      &quot;Remove-Item&quot;,\n      &quot;Format-Volume&quot;,\n      &quot;Stop-Computer&quot;,\n      &quot;Restart-Computer&quot;,\n      &quot;New-ItemProperty -Path &#039;HKLM:*&#039;&quot;,\n      &quot;Remove-ItemProperty -Path &#039;HKLM:*&#039;&quot;\n    ],\n    &quot;AllowedModules&quot;: &#091;\n      &quot;Microsoft.PowerShell.*&quot;,\n      &quot;PackageManagement&quot;,\n      &quot;PowerShellGet&quot;\n    ]\n  },\n  &quot;Logging&quot;: {\n    &quot;LogFile&quot;: &quot;%TEMP%\\\\mcp-powershell-server.log&quot;,\n    &quot;MaxLogSize&quot;: &quot;10MB&quot;,\n    &quot;LogRotation&quot;: true\n  }\n}<\/code><\/pre>\n\n\n\n<h3 id=\"rtoc-25\"  class=\"wp-block-heading\">\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f<\/h3>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\"># \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f\n$env:MCP_PS_PORT = &quot;8090&quot;\n$env:MCP_PS_HOST = &quot;localhost&quot;\n$env:MCP_PS_TIMEOUT = &quot;300&quot;\n$env:MCP_PS_LOG_LEVEL = &quot;INFO&quot;<\/code><\/pre>\n\n\n\n<h2 id=\"rtoc-26\"  class=\"wp-block-heading\">\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c<\/h2>\n\n\n\n<h3 id=\"rtoc-27\"  class=\"wp-block-heading\">\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u043f\u043e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">   &quot;RestrictedCommands&quot;: &#091;\n     &quot;Remove-Item&quot;,\n     &quot;Format-Volume&quot;,\n     &quot;Stop-Computer&quot;,\n     &quot;Restart-Computer&quot;,\n     &quot;Invoke-Expression&quot;,\n     &quot;iex&quot;,\n     &quot;&amp; *&quot;\n   ]<\/code><\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043f\u0443\u0442\u0435\u0439<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">   &quot;AllowedPaths&quot;: &#091;\n     &quot;C:\\\\Scripts\\\\&quot;,\n     &quot;C:\\\\Tools\\\\&quot;,\n     &quot;C:\\\\Temp\\\\&quot;\n   ]<\/code><\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u0421\u0435\u0442\u0435\u0432\u044b\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">   # \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0445\u043e\u0441\u0442\u0443\n   .\\start-mcp-server.ps1 -ServerHost &quot;127.0.0.1&quot;<\/code><\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>\u0422\u0430\u0439\u043c-\u0430\u0443\u0442\u044b<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">   &quot;TimeoutSeconds&quot;: 60  \/\/ \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/code><\/pre>\n\n\n\n<h3 id=\"rtoc-28\"  class=\"wp-block-heading\">\u0410\u0443\u0434\u0438\u0442 \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433<\/h3>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\"># \u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043b\u043e\u0433\u043e\u0432 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438\nGet-Content &quot;$env:TEMP\\mcp-powershell-server.log&quot; -Wait -Tail 10\n\n# \u0410\u043d\u0430\u043b\u0438\u0437 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434\nSelect-String -Path &quot;$env:TEMP\\mcp-powershell-server.log&quot; -Pattern &quot;\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 PowerShell \u0441\u043a\u0440\u0438\u043f\u0442\u0430&quot;<\/code><\/pre>\n\n\n\n<h2 id=\"rtoc-29\"  class=\"wp-block-heading\">\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/h2>\n\n\n\n<h3 id=\"rtoc-30\"  class=\"wp-block-heading\">\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 MCP \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">   # \u0412 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 Invoke-MCPMethod \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043d\u043e\u0432\u044b\u0439 case\n   &quot;my-custom-tool&quot; {\n       # \u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432\n       if (-not $arguments.ContainsKey(&quot;required_param&quot;)) {\n           return New-MCPResponse -Id $Id -Error @{\n               code = -32602\n               message = &quot;Missing required parameter &#039;required_param&#039;&quot;\n           }\n       }\n\n       # \u041b\u043e\u0433\u0438\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\n       $result = Invoke-MyCustomFunction -Param $arguments.required_param\n\n       # \u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\n       return New-MCPResponse -Id $Id -Result @{\n           content = @(\n               @{\n                   type = &quot;text&quot;\n                   text = &quot;Result: $result&quot;\n               }\n           )\n       }\n   }<\/code><\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0432 tools\/list<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">   # \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0432 \u043c\u0435\u0442\u043e\u0434 tools\/list\n   @{\n       name = &quot;my-custom-tool&quot;\n       description = &quot;\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u043e\u0435\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430&quot;\n       inputSchema = @{\n           type = &quot;object&quot;\n           properties = @{\n               required_param = @{\n                   type = &quot;string&quot;\n                   description = &quot;\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440&quot;\n               }\n           }\n           required = @(&quot;required_param&quot;)\n       }\n   }<\/code><\/pre>\n\n\n\n<h3 id=\"rtoc-31\"  class=\"wp-block-heading\">\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430<\/h3>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\"># \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0440\u0435\u0435\u0441\u0442\u0440\u043e\u043c\n&quot;registry-query&quot; {\n    if (-not $arguments.ContainsKey(&quot;path&quot;)) {\n        return New-MCPResponse -Id $Id -Error @{\n            code = -32602\n            message = &quot;Missing required parameter &#039;path&#039;&quot;\n        }\n    }\n\n    try {\n        $regPath = $arguments.path\n        $regKey = Get-ItemProperty -Path $regPath -ErrorAction Stop\n        $result = $regKey | Format-List | Out-String\n\n        return New-MCPResponse -Id $Id -Result @{\n            content = @(\n                @{\n                    type = &quot;text&quot;\n                    text = &quot;Registry values at ${regPath}:`n$result&quot;\n                }\n            )\n        }\n    }\n    catch {\n        return New-MCPResponse -Id $Id -Error @{\n            code = -32603\n            message = &quot;Registry query failed: $($_.Exception.Message)&quot;\n        }\n    }\n}```\n\n## \u0423\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043d\u0435\u043f\u043e\u043b\u0430\u0434\u043e\u043a\n\n### \u0414\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">powershell<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 PowerShell<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">$PSVersionTable.PSVersion<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u0440\u0442\u0430<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Test-NetConnection -ComputerName localhost -Port 8090<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043b\u043e\u0433\u043e\u0432<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Get-Content &#171;$env:TEMP\\mcp-powershell-server.log&#187; -Tail 50<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 PowerShell<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Get-Process -Name pwsh*<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">### \u0427\u0430\u0441\u0442\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b\n\n1. **&quot;\u041f\u043e\u0440\u0442 \u0443\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f&quot;**<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">powershell<br># \u041d\u0430\u0439\u0442\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0439 \u043f\u043e\u0440\u0442<br>Get-NetTCPConnection -LocalPort 8090 | Get-Process<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"># \u0418\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u043e\u0440\u0442<br>.\\start-mcp-server.ps1 -Port 9090<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">2. **&quot;\u0414\u043e\u0441\u0442\u0443\u043f \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d&quot;**<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">powershell<br># \u0417\u0430\u043f\u0443\u0441\u043a \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u0434\u043b\u044f \u043f\u043e\u0440\u0442\u043e\u0432 < 1024<br>Start-Process pwsh -Verb RunAs -ArgumentList &#171;-File&#187;, &#171;start-mcp-server.ps1&#187;<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">3. **&quot;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u043e\u0439&quot;**<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">powershell # \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 # \u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 UTF-8<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">4. **&quot;\u0421\u043a\u0440\u0438\u043f\u0442 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f&quot;**<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">powershell<br># \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<br>Get-ExecutionPolicy -List<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"># \u0412\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435<br>powershell.exe -ExecutionPolicy Bypass -File &#171;script.ps1&#187;<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">### \u041e\u0442\u043b\u0430\u0434\u043a\u0430<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">powershell<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">$DebugPreference = &#171;Continue&#187;<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u0422\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Set-PSDebug -Trace 1<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u0412\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Set-PSDebug -Off<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">## API Reference\n\n### MCP Methods\n\n#### initialize\n\n\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f MCP \u0441\u0435\u0440\u0432\u0435\u0440\u0430.\n\n**Request:**<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">json<br>{<br>&#171;jsonrpc&#187;: &#171;2.0&#187;,<br>&#171;id&#187;: 1,<br>&#171;method&#187;: &#171;initialize&#187;,<br>&#171;params&#187;: {<br>&#171;protocolVersion&#187;: &#171;2024-11-05&#187;<br>}<br>}<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">**Response:**<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">json<br>{<br>&#171;jsonrpc&#187;: &#171;2.0&#187;,<br>&#171;id&#187;: 1,<br>&#171;result&#187;: {<br>&#171;protocolVersion&#187;: &#171;2024-11-05&#187;,<br>&#171;capabilities&#187;: {<br>&#171;tools&#187;: {<br>&#171;listChanged&#187;: true<br>}<br>},<br>&#171;serverInfo&#187;: {<br>&#171;name&#187;: &#171;PowerShell Script Runner&#187;,<br>&#171;version&#187;: &#171;1.0.0&#187;,<br>&#171;description&#187;: &#171;\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 PowerShell \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0447\u0435\u0440\u0435\u0437 MCP&#187;<br>}<br>}<br>}<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">#### tools\/list\n\n\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432.\n\n**Request:**<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">json<br>{<br>&#171;jsonrpc&#187;: &#171;2.0&#187;,<br>&#171;id&#187;: 2,<br>&#171;method&#187;: &#171;tools\/list&#187;<br>}<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">**Response:**<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">json<br>{<br>&#171;jsonrpc&#187;: &#171;2.0&#187;,<br>&#171;id&#187;: 2,<br>&#171;result&#187;: {<br>&#171;tools&#187;: [<br>{<br>&#171;name&#187;: &#171;run-script&#187;,<br>&#171;description&#187;: &#171;\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 PowerShell \u0441\u043a\u0440\u0438\u043f\u0442 \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438&#187;,<br>&#171;inputSchema&#187;: {<br>&#171;type&#187;: &#171;object&#187;,<br>&#171;properties&#187;: {<br>&#171;script&#187;: {<br>&#171;type&#187;: &#171;string&#187;,<br>&#171;description&#187;: &#171;PowerShell \u043a\u043e\u0434 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f&#187;<br>},<br>&#171;parameters&#187;: {<br>&#171;type&#187;: &#171;object&#187;,<br>&#171;description&#187;: &#171;\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u043b\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u0430 (\u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e)&#187;<br>},<br>&#171;workingDirectory&#187;: {<br>&#171;type&#187;: &#171;string&#187;,<br>&#171;description&#187;: &#171;\u0420\u0430\u0431\u043e\u0447\u0430\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f&#187;<br>},<br>&#171;timeoutSeconds&#187;: {<br>&#171;type&#187;: &#171;integer&#187;,<br>&#171;description&#187;: &#171;\u0422\u0430\u0439\u043c-\u0430\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445&#187;,<br>&#171;default&#187;: 300,<br>&#171;minimum&#187;: 1,<br>&#171;maximum&#187;: 3600<br>}<br>},<br>&#171;required&#187;: [&#171;script&#187;]<br>}<br>}<br>]<br>}<br>}&#171;`<\/p>\n\n\n\n<h4 id=\"rtoc-32\"  class=\"wp-block-heading\">tools\/call<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Request:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">{\n  &quot;jsonrpc&quot;: &quot;2.0&quot;,\n  &quot;id&quot;: 3,\n  &quot;method&quot;: &quot;tools\/call&quot;,\n  &quot;params&quot;: {\n    &quot;name&quot;: &quot;run-script&quot;,\n    &quot;arguments&quot;: {\n      &quot;script&quot;: &quot;Get-Date&quot;,\n      &quot;timeoutSeconds&quot;: 30\n    }\n  }\n}```\n\n**Response:**<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">json<br>{<br>&#171;jsonrpc&#187;: &#171;2.0&#187;,<br>&#171;id&#187;: 3,<br>&#171;result&#187;: {<br>&#171;content&#187;: [<br>{<br>&#171;type&#187;: &#171;text&#187;,<br>&#171;text&#187;: &#171;\u0412\u044b\u0432\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:\\n<code class=\"\" data-line=\"\">\\n\u0412\u0442\u043e\u0440\u043d\u0438\u043a, 25 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f 2025 \u0433. 14:30:45\\n<\/code>&#171;<br>}<br>],<br>&#171;isError&#187;: false,<br>&#171;_meta&#187;: {<br>&#171;executionTime&#187;: &#171;2025-09-25 14:30:45&#187;,<br>&#171;success&#187;: true,<br>&#171;errorCount&#187;: 0,<br>&#171;warningCount&#187;: 0<br>}<br>}<br>}<br>&#171;`<\/p>\n\n\n\n<h3 id=\"rtoc-33\"  class=\"wp-block-heading\">Error Codes<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">\u041a\u043e\u0434<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\">-32700<\/td><td class=\"has-text-align-left\" data-align=\"left\">Parse error &#8212; \u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 JSON<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">-32600<\/td><td class=\"has-text-align-left\" data-align=\"left\">Invalid Request &#8212; \u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">-32601<\/td><td class=\"has-text-align-left\" data-align=\"left\">Method not found &#8212; \u041c\u0435\u0442\u043e\u0434 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">-32602<\/td><td class=\"has-text-align-left\" data-align=\"left\">Invalid params &#8212; \u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">-32603<\/td><td class=\"has-text-align-left\" data-align=\"left\">Internal error &#8212; \u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 id=\"rtoc-34\"  class=\"wp-block-heading\">Logging Levels<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">\u0423\u0440\u043e\u0432\u0435\u043d\u044c<\/th><th class=\"has-text-align-left\" data-align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\">DEBUG<\/td><td class=\"has-text-align-left\" data-align=\"left\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0430\u044f \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">INFO<\/td><td class=\"has-text-align-left\" data-align=\"left\">\u041e\u0431\u0449\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0440\u0430\u0431\u043e\u0442\u0435<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">WARNING<\/td><td class=\"has-text-align-left\" data-align=\"left\">\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f \u043e \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0445<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">ERROR<\/td><td class=\"has-text-align-left\" data-align=\"left\">\u041e\u0448\u0438\u0431\u043a\u0438, \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0438\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 id=\"rtoc-35\"  class=\"wp-block-heading\">\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">MCP PowerShell Server \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043c\u043e\u0449\u043d\u044b\u0439 \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 PowerShell \u0441 \u0418\u0418-\u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u0430\u043c\u0438 \u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438 \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b MCP. \u0421\u043b\u0435\u0434\u0443\u0439\u0442\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f\u043c \u043f\u043e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u0430.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Questo Articolo \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0412\u044b\u0431\u043e\u0440 \u0440\u0435\u0436\u0438\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u044b: HTTP vs. STDIO \u041a\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c HTTP \u0440\u0435\u0436\u0438\u043c? \u041a\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c STDIO \u0440\u0435\u0436\u0438\u043c? STDIO \u0440\u0435\u0436\u0438\u043c \u0417\u0430\u043f\u0443\u0441\u043a STDIO \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 STDIO \u0440\u0435\u0436\u0438\u043c\u0430 \u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 STDIO \u0440\u0435\u0436\u0438\u043c\u0430 HTTP \u0440\u0435\u0436\u0438\u043c \u0417\u0430\u043f\u0443\u0441\u043a HTTP \u0441\u0435\u0440\u0432\u0435\u0440\u0430 HTTP API \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442\u044b \u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 HTTP \u0440\u0435\u0436\u0438\u043c\u0430 \u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 Gemini CLI \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0420\u0443\u0447\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u041f\u0440\u0438\u043c\u0435\u0440\u044b&hellip;&nbsp;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[937],"tags":[944,108,938,939,765],"class_list":["post-3477","post","type-post","status-publish","format-standard","hentry","category-mcp-powershell-server","tag-tag-client-server","tag-tag-mcp","tag-tag-mcp-server","tag-tag-powershell-script-execution","tag-powershell"],"acf":[],"_links":{"self":[{"href":"https:\/\/ru.davidka.net\/ru\/wp-json\/wp\/v2\/posts\/3477","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ru.davidka.net\/ru\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ru.davidka.net\/ru\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ru.davidka.net\/ru\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ru.davidka.net\/ru\/wp-json\/wp\/v2\/comments?post=3477"}],"version-history":[{"count":0,"href":"https:\/\/ru.davidka.net\/ru\/wp-json\/wp\/v2\/posts\/3477\/revisions"}],"wp:attachment":[{"href":"https:\/\/ru.davidka.net\/ru\/wp-json\/wp\/v2\/media?parent=3477"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ru.davidka.net\/ru\/wp-json\/wp\/v2\/categories?post=3477"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ru.davidka.net\/ru\/wp-json\/wp\/v2\/tags?post=3477"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}