powershell-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PWSH_MCP_EXE | No | Override the PowerShell executable path. Default is to prefer pwsh (PowerShell 7+) and fall back to powershell.exe. | |
| POWERSHELL_MCP_NO_TELEMETRY | No | Set to '1' to disable anonymous telemetry. | |
| POWERSHELL_MCP_TELEMETRY_URL | No | Override the telemetry endpoint URL. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| run_powershellA | Run a PowerShell script/command on this Windows host in a hidden process (no console window appears). Returns stdout, stderr and exit code. Use for any Windows command, file, or system task. |
| list_servicesA | List Windows services, optionally filtered by a name pattern. Returns Name, DisplayName, Status. |
| get_serviceA | Get detailed status of one Windows service by name. |
| control_serviceB | Start, stop, or restart a Windows service (requires the MCP host process to have sufficient privileges). |
| system_infoA | Return OS, CPU, memory and disk summary for this Windows host. |
| ssh_execA | Run a command on a remote host over SSH, fully in-process (no ssh.exe, no WSL — works headless). Use for Linux hosts or any OpenSSH target. Auth via privateKeyPath or password. Returns stdout, stderr, exit code. |
| winrm_execA | Run a command on a remote Windows host via PowerShell Remoting (WinRM / Invoke-Command). Native to Windows Server — no SSH server or agent needed on the target, only WinRM enabled. Output captured in-process (no console window). |
| sftp_uploadA | Upload a local file to a remote host over SFTP, in-process (ssh2 — no scp.exe, no WSL, headless). Use to deploy scripts/configs to Linux hosts. |
| sftp_downloadA | Download a file from a remote host to this Windows host over SFTP, in-process (ssh2 — no scp.exe, no WSL, headless). |
| run_programA | Run a native executable DIRECTLY (no shell) in a hidden process and capture clean stdout/stderr + exit code. Use this for console programs like gh, git, docker, node, python, etc. -- their output is captured reliably, unlike when the same program is run inside run_powershell (where a hidden PowerShell swallows native stdout). Provide the program and an args array (no shell quoting needed). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Most tools have clear, distinct purposes. run_powershell and run_program are carefully differentiated, and ssh_exec vs winrm_exec are distinguished by target platform. However, the pairings still create some ambiguity for agents selecting quickly.
Mostly consistent snake_case verb_noun pattern, but system_info deviates from verb-first style, and remote tools use protocol_verb naming (sftp_upload, ssh_exec). Overall readable and predictable.
Ten tools is well-scoped for a systems administration server covering local execution, service management, remote execution, and file transfer without unnecessary bloat.
Covers core lifecycle: service query/control, local and remote command execution, and file transfer. Missing process/event log management, but run_powershell provides a general fallback, so agents can work around minor gaps.