ืฉืจืช MCP (Model Context Protocol) ืืืจืฆืช ืกืงืจืืคืืื ืฉื PowerShell, ืืชืืื ืืืฆืื ืขืืืื HTTP ื-STDIO.
- ืชืืืืจ
- ืืืืื ืืฆื ืืืืืจ: HTTP ืื STDIO?
- ืชืืื ืืช
- ืืจืืฉืืช ืืขืจืืช
- ืืื ื ืืคืจืืืงื
- ืืชืืื ืืืืจื
- ืืื MCP ืืืื ืื
- ืชืฆืืจื
- ืืืืื
- ืจืืฉืื (ืืืืื)
- ืืื ืืืจืฆืื ืขื ืขืืืจื AI
- ืคืชืจืื ืืขืืืช
- ืคืืชืื ืืืจืืื
- ืจืืฉืืื
- ืชืืืื
- ืืจืกืืืช
ืชืืืืจ
ืฉืจืช MCP PowerShell ืืืคืฉืจ ืืขืืืจื AI ืืืจืืฅ ืคืงืืืืช ืืกืงืจืืคืืื ืฉื PowerShell ืืจื ืคืจืืืืงืื MCP ืืืชืืงื ื. ืืฉืจืช ืชืืื ืืฉื ื ืืฆืื ืขืืืื:
- ืืฆื STDIO: ืืืื ืืืจืฆืื ืขื
gemini-cliืืืงืืืืช MCP ืืงืืืืื ืืืจืื. - ืืฆื HTTP: ืืืืฉืืื ืืื ืืจื ื ืืืื ืืืจืฆืื ืืจืฉืช ืืจื REST API.
ืืืืื ืืฆื ืืืืืจ: HTTP ืื STDIO?
ืืืืืจื ืืื mcp-powershell-http.ps1 ืืืื mcp-powershell-stdio.ps1 ืชืืืื ืืืื ืืืืืคื ืืคืืืงืฆืืืช ืืืงืื ืชืชืงืฉืจ ืขื ืืฉืจืช.
mcp-powershell-http.ps1(ืืฆื HTTP) ืขืืื ืืื ืืืฆืจ ืืืกืขืื. ืืื ืืงืื ืืืื ืืช (ืืงืฉืืช HTTP) ืืื ืืงืื ืืจืฉืช, ืืขืืืจ ืืืชื ื"ืืืื" (PowerShell) ืืืืืืจ ืืช ืืชืืฆืื ืืืืื ื (ืชืฉืืืช HTTP).mcp-powershell-stdio.ps1(ืืฆื STDIO) ืขืืื ืืื ืขืืืจ ืืืฉื ืืืืื. ืืื ืืงืื ืืฉืืืืช ืืฉืืจืืช (ืืจื ืงืื ืกืื ืืจืืstdin) ืืชืืืื ืื ืื (ืืืฉื,gemini-cli) ืฉืืคืขืื ืืืชื, ืืืืืืจ ืืื ืืช ืืชืืฆืื (ืืจื ืคืื ืกืื ืืจืืstdout).
ืืชื ืืืฉืชืืฉ ืืืฆื HTTP
ืืืื ืืืืืจ ื-HTTP ืื ื ืืจืฉืช ืชืงืฉืืจืช ืจืฉืช.
- ื ืืืื ืืจืืืง: ืืคืืืงืฆืืืช ืืืงืื ื ืืฆืืช ืขื ืืืฉื ืืืจ.
- ืืื ืืืจืฆืืืช ืืื ืืจื ื: ืืฉ ืฆืืจื ืืงืจืื ืืกืงืจืืคืืื ืฉื PowerShell ืืืืฉืื ืืื ืืจื ื, ืคืื ื ื ืืืื ืื ืืจื ืืงืฉืืช AJAX.
- ืืจืืืืงืืืจืช ืืืงืจื-ืฉืืจืืชืื: ืฉืืจืืชืื ืืืจืื ืืจืฉืช ืฉืื ืฆืจืืืื ืืชืงืฉืจ ืขื PowerShell.
- ืืืืงืืช ืคืฉืืืืช: ืืชื ืจืืฆื ืืืฉืชืืฉ ืืืืื ืืื
curl, Postman ืืInvoke-RestMethodืืื ืืฉืืื ืคืงืืืืช.
ืืืืืื ืคืฉืืืืช: ืืืจ HTTP ืื ืืฉ ืจืฉืช ืืื ืืืงืื ืืฉืจืช.
ืืชื ืืืฉืชืืฉ ืืืฆื STDIO
ืืฆื ืื ืืืืืืื ืขืืืจ ืืื ืืืจืฆืื ืืงืืืืช ืืืืืืืืช.
- ืชืจืืืฉ ืขืืงืจื โ Gemini CLI: ืืืื
gemini-cliืืคืขืื ืืขืฆืื ืืชmcp-powershell-stdio.ps1ืืชืืืื ืื ืืืชืงืฉืจ ืืืชื ืืฉืืจืืช ืืจื ืืจืื ืงืื/ืคืื ืกืื ืืจืืืืื. - ืืื ืืืจืฆืื ืขื ืืืฉืืืื ืืงืืืืื ืืืจืื: ืืชืืื ืืช ืฉืื ื-Python, Node.js ืื ืฉืคื ืืืจืช ืืืืื ืืืคืขืื ืืื ืื ืืช ืืฉืจืช ืืืื ืืคืชืื ืคืืจืืื ืืจืฉืช.
- ืืืืื ืืืืืจืช: ืืืืืื ืฉืืื ืคืชืืืช ืคืืจืืื ืืจืฉืช, ืฉืืื ืื ืืืืืืืช ืืืชืจ ืืืจืืจืช ืืืื.
ืืืืืื ืคืฉืืืืช: ืืืจ STDIO ืื ืืืงืื ืืืฉืจืช ื ืืฆืืื ืขื ืืืชื ืืืื ื, ืืืืงืื ืืคืขืื ืืช ืืฉืจืช ืืขืฆืื.
ืืืืช ืืฉืืืื
| ืืืคืืื | ืืฆื HTTP (mcp-powershell-http.ps1) | ืืฆื STDIO (mcp-powershell-stdio.ps1) |
|---|---|---|
| ืชืจืืืฉ ืขืืงืจื | ืชืงืฉืืจืช ืจืฉืช, Web API | ืืื ืืืจืฆืื ืืงืืืืช ืขื ืืื CLI |
| ืกืื ืชืงืฉืืจืช | ืืงืื-ืฉืจืช ืืจืฉืช (TCP/IP) | ืชืงืฉืืจืช ืืื ืชืืืืืื (IPC) |
| ืืืงืื | ืืืงืื ืืืฉืจืช ืืืืืื ืืืืืช ืขื ืืืื ืืช ืฉืื ืืช | ืืืงืื ืืืฉืจืช ืืืืืื ืืืืืช ืขื ืืืชื ืืืื ื |
| ืืืืื | ืืืจืฉ ืชืฉืืืช ืื (ืืืฉื ืืคืืจื, ืืืืช ืืฉ) | ืืืืืื ืืืชืจ ืืืจืืจืช ืืืื (ืืื ืคืืจืืื ืคืชืืืื) |
| ืืงืืืืช ืืืคืืกืืื | curl, Postman, ืืืฉืืื ืืื ืืจื ื, ืกืงืจืืคืืื ืืจืืืงืื | gemini-cli, ืืืฉืืื ืขืืืคื ืืงืืืืื |
ืชืืื ืืช
- โ ืชืืืื ืืคืจืืืืงืื MCP ืืจืกื 2024-11-05
- โ ืฉื ื ืืฆืื ืขืืืื: STDIO ื-HTTP
- โ ืืืืื ืืจืฆืช ืกืงืจืืคืืื ืืชืืืืื PowerShell ื ืคืจืืื
- โ ืืื ื ืงืฆืื (timeout) ื ืืชื ืื ืืืืืจื
- โ ืจืืฉืื ืืคืืจื ืฉื ืื ืืคืขืืืืช
- โ ืืืคืื ืืฉืืืืืช ืืืืืจืืช ืฉื PowerShell
- โ ืชืืืื ืืคืจืืืจืื ืืกืงืจืืคืืื
- โ ืกืคืจืืืช ืขืืืื ื ืืชื ืช ืืืืืจื
- โ ืืคืขืืืื ืืืืืืืืื ืืืคืขืื ืคืฉืืื
ืืจืืฉืืช ืืขืจืืช
- PowerShell 7.0 ืืืขืื
- Windows 10/11 ืื Windows Server 2019+
- .NET 6.0 ืืืขืื
ืืื ื ืืคืจืืืงื
mcp-powershell-server/
โโโ src/
โ โโโ clients/ # ืืืฉืืื ืืงืื
โ โ โโโ node/ # ืืงืื Node.js
โ โ โโโ powershell/ # ืืงืื PowerShell
โ โ โโโ python/ # ืืงืื Python
โ โโโ servers/ # ืจืืืื ืฉืจืช
โ โโโ mcp-powershell-stdio.ps1 # ืืจืกืช STDIO ืฉื ืืฉืจืช
โ โโโ mcp-powershell-http.ps1 # ืืจืกืช HTTP ืฉื ืืฉืจืช
โ โโโ test-mcp.ps1 # ืฉืจืช ืืืืงืืช
โ โโโ config.json # ืงืืืฅ ืชืฆืืจื
โโโ docs/ # ืชืืขืื
โโโ README.md # ืงืืืฅ ืื
โโโ how-to-use.md # ืืืจืื ืฉืืืืฉ ืืคืืจื
ืืชืืื ืืืืจื
ืืฆื STDIO (ืขืืืจ gemini-cli)
- ืืคืขืืช ืืฉืจืช:
powershell .\src\servers\mcp-powershell-stdio.ps1 - ืืืืงื:
powershell .\src\servers\test-mcp.ps1
ืืฆื HTTP
- ืืคืขืื ืืกืืกืืช:
powershell .\src\servers\mcp-powershell-http.ps1 - ืขื ืคืจืืืจืื ืืืชืืืื ืืืฉืืช:
powershell .\src\servers\mcp-powershell-http.ps1 -Port 9090 -ServerHost "0.0.0.0" - ืขื ืงืืืฅ ืชืฆืืจื:
powershell .\src\servers\mcp-powershell-http.ps1 -ConfigFile ".\src\servers\config.json"
ืืื MCP ืืืื ืื
run-script
ืืจืืฅ ืกืงืจืืคื PowerShell ืขื ืคืจืืืจืื ืฉืฆืืื ื.
ืคืจืืืจืื:
script(ืืืื) – ืงืื PowerShell ืืืจืฆืparameters(ืืืคืฆืืื ืื) – ืืืืช ืืืืื ืฉื ืคืจืืืจืืworkingDirectory(ืืืคืฆืืื ืื) – ืกืคืจืืืช ืืขืืืืtimeoutSeconds(ืืืคืฆืืื ืื) – ืืื ืงืฆืื ืืืจืฆื (1-3600 ืฉื ืืืช)
ืืืืื ืืฉืืืืฉ ืืจื MCP:
{
"name": "run-script",
"arguments": {
"script": "Get-Process | Select-Object -First 5 | Format-Table",
"workingDirectory": "C:\\",
"timeoutSeconds": 30
}
}
ืชืฆืืจื
ืืฉืจืช ืชืืื ืืชืฆืืจื ืืืืฆืขืืช ืงืืืฅ config.json:
{
"Port": 8090,
"Host": "localhost",
"MaxConcurrentRequests": 10,
"TimeoutSeconds": 300,
"AllowedPaths": [
"C:\\Scripts\\",
"C:\\Tools\\"
],
"Security": {
"EnableScriptValidation": true,
"BlockDangerousCommands": true,
"RestrictedCommands": [
"Remove-Item",
"Format-Volume",
"Stop-Computer",
"Restart-Computer"
]
}
}
ืืืืื
- ืืจืฆืช ืกืงืจืืคืืื ืืชืืฆืขืช ืืชืืืืื PowerShell ืืืืืืื
- ืชืืืื ืืจืฉืืืช ืคืงืืืืช ืืกืืจืืช
- ืืืืืช ืืื ืืจืฆื
- ืจืืฉืื ืื ืืคืงืืืืช ืืืืจืฆืืช
- ืืคืฉืจืืช ืืืืืื ื ืชืืืื ืืืื ืื
ืจืืฉืื (ืืืืื)
- ืืฆื STDIO: ืืืืืื ื ืืชืืื ืืงืืืฅ
%TEMP%\mcp-powershell-server.log - ืืฆื HTTP: ืืืืืื ืืืฆืืื ืืงืื ืกืืื ืขื ืืืืฉืช ืฆืืข
ืจืืืช ืจืืฉืื: DEBUG, INFO, WARNING, ERROR
ืืื ืืืจืฆืื ืขื ืขืืืจื AI
Gemini CLI
gemini --mcp-config "path/to/mcp_servers.json" -m gemini-2.5-pro -p "ืืฆื ืืช 5 ืืชืืืืืื ืืจืืฉืื ืื ืืืขืจืืช"
ืืงืืืืช MCP ืืืจืื
ืืฉืจืช ืชืืื ืืื ืืืงืืืืช ืืชืืืืื ืืคืจืืืืงืื MCP 2024-11-05.
ืคืชืจืื ืืขืืืช
ืืขืืืช ื ืคืืฆืืช
- ืืคืืจื ืชืคืืก: ืฉื ื ืืช ืืคืืจื ืืชืฆืืจื ืื ืขืฆืืจ ืืช ืืชืืืื ืืืฉืชืืฉ ืืคืืจื.
- ืืจืฉืืืช ืืืฉื: ืืจืฆื ืขื ืคืืจืืื ืืืขืืคืื (<1024) ืืืจืฉืช ืืจืฉืืืช ืื ืื.
- ืงืืืื: ืืื ืฉ-PowerShell ืืืืืจ ื-UTF-8.
- ืืจืกืช PowerShell: ื ืืจืฉืช ืืจืกื 7 ืืืขืื ืฉื PowerShell.
ืืืืื
ืืืืง ืืช ืืืืืื ืฉื ืืฉืจืช ืืืืืื ืืขืืืช:
Get-Content "$env:TEMP\mcp-powershell-server.log" -Tail 20
ืคืืชืื ืืืจืืื
ื ืืชื ืืืจืืื ืืช ืืฉืจืช ืืงืืืช ืขื ืืื MCP ืืืฉืื. ืขืืื ื-how-to-use.md ืืืืจืืืช ืคืืชืื ืืคืืจืืืช.
ืจืืฉืืื
ืคืจืืืงื ืื ืืืคืฅ ืชืืช ืจืืฉืืื MIT. ืขืืื ืืงืืืฅ LICENSE ืืคืจืืื.
ืชืืืื
- ืคืชื Issue ืืืืืจ ื-GitHub.
- ืขืืื ืืชืืขืื ื-
how-to-use.md. - ืขืืื ืืืืืืืืช ืืฉืืืืฉ.
ืืจืกืืืช
- 1.0.0 – ืืจืกื ืจืืฉืื ืืช ืขื ืชืืืื ืืืฆืื STDIO ื-HTTP.