ssh-winrm-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| remote_inventory_statusA | Show the automatic local inventory path and whether it already exists. |
| remote_inventory_initC | Create an empty local inventory. A config path is not required to start the server. |
| remote_inventory_validateA | Validate the inventory JSON and every stored SSH/WinRM profile. |
| remote_profile_listA | List saved profiles with secrets redacted; optionally filter by protocol or tag. |
| remote_profile_getA | Read one saved connection profile with secrets redacted. |
| remote_profile_createB | Create a saved profile. Prefer password_env and passphrase environment references. |
| remote_profile_updateA | Update a profile by merging changes, or fully replace it with replace=true. Use remove_fields to delete optional settings. Required fields must remain valid. |
| remote_profile_renameC | Rename a saved profile. |
| remote_profile_deleteB | Delete a saved connection profile. |
| remote_testA | Test a saved or ad-hoc connection by executing a harmless marker command. |
| remote_executeA | Execute one command using a short-lived SSH or WinRM connection. connection may override a profile or fully describe an ad-hoc target, for example: {"protocol":"ssh","host":"server","username":"root","password":"..."}. WinRM shell may be powershell or cmd. SSH executes through the remote user's shell. |
| remote_run_programB | Run an executable with a safely quoted argument list on a saved or ad-hoc target. |
| remote_run_scriptC | Upload and run an inline or local script. Supports bash/sh, PowerShell, batch, Python, and executables. |
| remote_uploadA | Copy a local file or directory to a remote host. Set recursive=true for directories. |
| remote_downloadB | Copy a remote file or directory to the MCP server. Set recursive=true for directories. |
| remote_session_openA | Open a named persistent SSH shell or WinRM PowerShell runspace. Sessions remain alive until closed or until the MCP server process exits. SSH shell state such as cwd and exported variables persists. WinRM uses one reusable PSRP runspace. |
| remote_session_listA | List active named sessions and their health. |
| remote_session_executeA | Run a command inside a named persistent session and wait for completion. |
| remote_session_closeA | Close one named session and its remote shell/runspace. |
| remote_session_close_allA | Close every active session. |
| remote_session_cleanup_idleB | Close named sessions which have been idle for at least the requested number of seconds. |
| remote_job_startA | Start a long-running command in a named session and return immediately with a job ID. |
| remote_job_listB | List asynchronous jobs, optionally restricted to one session. |
| remote_job_statusC | Get the current state of a long-running job. |
| remote_job_resultC | Get a job result. Set wait=true to wait, optionally bounded by timeout seconds. |
| remote_job_cancelB | Interrupt and cancel a running job. SSH cancellation closes that named shell session. |
| remote_command_groupsA | List command groups and the persistent local plug-in directory. Set create_directory=true once to create the folder. Set reload=true after adding or editing a module. |
| remote_command_group_describeC | Describe the actions and parameters available in a specialized command group. |
| remote_command_group_runC | Build and run a specialized action, such as user management, services, reboot, or system inventory. Use either session_name or profile/connection. dry_run returns the generated command without executing it. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| profiles_resource | Saved profile names and redacted settings. |
| command_groups_resource | Available specialized command groups. |
TDQS
Scored across 29 tools
Most tools are clearly distinct by domain (profiles, sessions, jobs, inventory). The execution tools (remote_execute, remote_run_program, remote_run_script) have some conceptual overlap but their descriptions clarify specific use cases.
The majority follow a consistent remote_<domain>_<action> pattern (e.g., remote_profile_create, remote_session_open). A few exceptions like remote_command_groups, remote_upload, and remote_test deviate from this pattern.
With 29 tools, the count is on the higher side but justified by the broad scope covering profiles, inventory, command groups, file transfer, execution, sessions, and jobs. Each tool serves a distinct purpose within its domain.
The tool set covers full lifecycle management for profiles, sessions, and jobs, plus file transfer, execution, and inventory validation. There are no obvious dead ends or missing critical operations for remote SSH/WinRM management.