Microsoft & Azure intelligence →
Association is based on retained identity fields; it does not by itself prove first-party publication.
Enables secure command-line interactions on Windows systems through PowerShell, CMD, and Git Bash, with support for SSH remote connections, SFTP file transfers, system monitoring, and configurable security controls including command blocking and path restrictions
Detailed security scan evidence is not public for this MCP yet. Public identity, registry metadata, and independently observed protocol inventory remain available.
Installation and connection instructions are shown only when supported by retained package, repository, or endpoint evidence.
No verified installation or connection method is available in the retained evidence yet.
| Canonical slug | windows-cli-mcp-server-d02cddfc | Deployment | Local Only |
|---|---|---|---|
| Canonical package | — | Repository | quanticsoul4772/mcp-server-win-cli |
| First published | — | Latest release | — |
| Last security verification | — | Classification confidence | 90% |
| Publication | Draft | Official distribution | Not verified |
| Channel | Identifier | Current version | Versions | Source |
|---|---|---|---|---|
| source_git | quanticsoul4772/mcp-server-win-cli | 43ce536e460ebd9ddb223755e0530e974e71df72 | 1 | Repository |
| Package | Version | Published / observed | Inventory | Security scan |
|---|---|---|---|---|
| source_gitquanticsoul4772/mcp-server-win-cli | 43ce536e460ebd9ddb223755e0530e974e71df72Current | Aug 25, 2026 | 34 toolsPartial · 7 resources · 0 prompts | Evidence restricted |
Independently scan the exact version your agents use, receive alerts when its risk changes, and investigate every finding with retained version evidence.
No public current-version evidence is available yet.
| Tool | Category | Annotations | Risk |
|---|---|---|---|
check_security_config[Diagnostics] Get current security configuration including blocked commands, allowed paths, and restrictions. Use this to troubleshoot why commands are being blocked.Input schema{
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"all",
"commands",
"paths",
"operators",
"limits",
"environment"
],
"description": "Filter by configuration category (optional, default: all)"
}
},
"required": []
} | — | — | |
create_ssh_connection[SSH Operations] Create a new SSH connectionInput schema{
"type": "object",
"properties": {
"connectionId": {
"type": "string",
"description": "ID of the SSH connection"
},
"connectionConfig": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "Host of the SSH connection"
},
"port": {
"type": "number",
"description": "Port of the SSH connection"
},
"username": {
"type": "string",
"description": "Username for the SSH connection"
},
"password": {
"type": "string",
"description": "Password for the SSH connection"
},
"privateKeyPath": {
"type": "string",
"description": "Path to the private key for the SSH connection"
}
},
"required": [
"host",
"port",
"username"
]
}
},
"required": [
"connectionId",
"connectionConfig"
]
} | — | — | |
delete_ssh_connection[SSH Operations] Delete an existing SSH connectionInput schema{
"type": "object",
"properties": {
"connectionId": {
"type": "string",
"description": "ID of the SSH connection to delete"
}
},
"required": [
"connectionId"
]
} | — | — | |
dns_lookup[Diagnostics] Perform DNS lookup for hostname
Example usage:
```json
{
"hostname": "google.com",
"record_type": "A",
"timeout": 5000
}
```
Supported record types: A, AAAA, MX, TXT, NS, CNAME, ALLInput schema{
"type": "object",
"properties": {
"hostname": {
"type": "string",
"description": "Hostname to lookup (e.g., \"google.com\")"
},
"record_type": {
"type": "string",
"enum": [
"A",
"AAAA",
"MX",
"TXT",
"NS",
"CNAME",
"ALL"
],
"description": "DNS record type to query (default: A)",
"default": "A"
},
"timeout": {
"type": "number",
"description": "Timeout in milliseconds (default: 5000, max: 10000)",
"default": 5000
}
},
"required": [
"hostname"
]
} | — | — | |
execute_batch[Command Execution] Execute multiple commands sequentially
Example usage:
```json
{
"shell": "powershell",
"commands": [
"cd C:\\project",
"npm install",
"npm run build"
],
"stopOnError": true,
"timeout": 300
}
```
Executes commands in order. If stopOnError=true, stops on first failure.Input schema{
"type": "object",
"properties": {
"shell": {
"type": "string",
"enum": [
"powershell",
"cmd",
"gitbash"
],
"description": "Shell to use for command execution"
},
"commands": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of commands to execute sequentially",
"minItems": 1,
"maxItems": 10
},
"stopOnError": {
"type": "boolean",
"description": "Stop execution if a command fails (default: true)",
"default": true
},
"timeout": {
"type": "number",
"description": "Timeout per command in seconds (default: 60)",
"default": 60
},
"env": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Custom environment variables applied to all commands (optional)"
}
},
"required": [
"shell",
"commands"
]
} | — | — | |
execute_command[Command Execution] Execute a command in the specified shell (powershell, cmd, or gitbash)
Example usage (PowerShell):
```json
{
"shell": "powershell",
"command": "Get-Process | Select-Object -First 5",
"workingDir": "C:\\Users\\username"
}
```
Example usage with custom environment variables:
```json
{
"shell": "powershell",
"command": "python -c \"print('Hello 世界')\"",
"env": {
"PYTHONIOENCODING": "utf-8",
"PYTHONUTF8": "1"
}
}
```
Example usage (CMD):
```json
{
"shell": "cmd",
"command": "dir /b",
"workingDir": "C:\\Projects"
}
```
Example usage (Git Bash):
```json
{
"shell": "gitbash",
"command": "ls -la",
"workingDir": "/c/Users/username"
}
```Input schema{
"type": "object",
"properties": {
"shell": {
"type": "string",
"enum": [
"powershell",
"cmd",
"gitbash"
],
"description": "Shell to use for command execution"
},
"command": {
"type": "string",
"description": "Command to execute"
},
"workingDir": {
"type": "string",
"description": "Working directory for command execution (optional)"
},
"timeout": {
"type": "number",
"description": "Command timeout in seconds (overrides config default)"
},
"env": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Custom environment variables for command execution (optional). Example: {\"PYTHONIOENCODING\": \"utf-8\"}"
}
},
"required": [
"shell",
"command"
]
} | — | — | |
explain_exit_code[Diagnostics] Explain what an exit code means and how to resolve issuesInput schema{
"type": "object",
"properties": {
"exit_code": {
"type": "number",
"description": "Exit code to explain (e.g., 0, -1, -2, or process-specific codes)"
}
},
"required": [
"exit_code"
]
} | — | — | |
get_config_value[Diagnostics] Get a specific configuration value by path (dot notation)
Example usage:
```json
{
"path": "security.maxCommandLength",
"show_type": true
}
```
Examples:
- "security.maxCommandLength"
- "shells.powershell.enabled"
- "ssh.strictHostKeyChecking"Input schema{
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Configuration path in dot notation (e.g., \"security.maxCommandLength\")"
},
"show_type": {
"type": "boolean",
"description": "Include value type information (default: true)",
"default": true
}
},
"required": [
"path"
]
} | — | — | |
get_cpu_usage[System Info] Get CPU usage percentage with configurable sampling interval
Example usage:
```json
{
"interval": 1000
}
```
Returns CPU usage percentage measured over the interval (default: 1 second).Input schema{
"type": "object",
"properties": {
"interval": {
"type": "number",
"description": "Measurement interval in milliseconds (default: 1000, min: 100, max: 10000)",
"default": 1000
}
}
} | — | — | |
get_disk_space[System Info] Get disk space information for all drives or specific drive
Example usage:
```json
{
"drive": "C",
"unit": "GB"
}
```
Returns disk space info (total, used, free) in specified units.Input schema{
"type": "object",
"properties": {
"drive": {
"type": "string",
"description": "Specific drive letter (e.g., \"C\", \"D\"). Omit for all drives."
},
"unit": {
"type": "string",
"enum": [
"bytes",
"MB",
"GB"
],
"description": "Unit for disk space values (default: GB)",
"default": "GB"
}
}
} | — | — | |
get_job_output[Command Execution] Get output from a background job with streaming support
Example usage:
```json
{
"jobId": "job_1",
"offset": 0
}
```
Returns job output. Use offset to get only new output since last call (streaming).Input schema{
"type": "object",
"properties": {
"jobId": {
"type": "string",
"description": "Job ID to query"
},
"offset": {
"type": "number",
"description": "Start position in output (default: 0, for streaming use last totalSize)",
"default": 0
}
},
"required": [
"jobId"
]
} | — | — | |
get_job_status[Command Execution] Get status and metadata for a background job
Example usage:
```json
{
"jobId": "job_1"
}
```
Returns job status, runtime, exit code, and output preview (first 500 chars).Input schema{
"type": "object",
"properties": {
"jobId": {
"type": "string",
"description": "Job ID to query"
}
},
"required": [
"jobId"
]
} | — | — | |
list_environment_variables[Diagnostics] List all accessible environment variables with optional filtering
Example usage:
```json
{
"filter": "^PATH|^TEMP",
"show_blocked_count": true,
"category": "system"
}
```
Security:
- Sensitive variables (API keys, passwords) automatically excluded
- Case-insensitive filtering
- Read-only accessInput schema{
"type": "object",
"properties": {
"filter": {
"type": "string",
"description": "Regex pattern to filter variable names (e.g., \"^PATH|^TEMP\")"
},
"show_blocked_count": {
"type": "boolean",
"description": "Show count of blocked variables (default: true)",
"default": true
},
"category": {
"type": "string",
"enum": [
"all",
"system",
"user"
],
"description": "Filter by variable category (Windows-specific, default: all)",
"default": "all"
}
}
} | — | — | |
list_processes[System Info] List running processes (requires opt-in configuration)
Example usage:
```json
{
"filter": "chrome",
"limit": 10,
"sort_by": "cpu"
}
```
SECURITY: This tool is disabled by default. Process enumeration can be used for reconnaissance.
To enable, add to config.json:
{
"security": {
"allowProcessListing": true
}
}Input schema{
"type": "object",
"properties": {
"filter": {
"type": "string",
"description": "Filter processes by name (partial match)"
},
"limit": {
"type": "number",
"description": "Maximum number of results (default: 10, max: 50)",
"default": 10
},
"sort_by": {
"type": "string",
"enum": [
"cpu",
"memory",
"name"
],
"description": "Sort results by (default: cpu)",
"default": "cpu"
}
}
} | — | — | |
read_command_history[Command Execution] Get the history of executed commands
Example usage:
```json
{
"limit": 5
}
```
Example response:
```json
[
{
"command": "Get-Process",
"output": "...",
"timestamp": "2024-03-20T10:30:00Z",
"exitCode": 0
}
]
```Input schema{
"type": "object",
"properties": {
"limit": {
"type": "number",
"description": "Maximum number of history entries to return (default: 10, max: 1000)"
}
},
"required": []
} | — | — | |
read_current_directory[System Info] Get the current working directoryInput schema{
"type": "object",
"properties": {},
"required": []
} | — | — | |
read_environment_variable[Diagnostics] Read a single environment variable with security filtering
Example usage:
```json
{
"name": "PATH",
"show_blocked_reason": true
}
```
Security:
- Sensitive variables (API_KEY, PASSWORD, TOKEN, SECRET) are blocked
- Case-insensitive variable name matching
- Read-only access (no write operations)Input schema{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the environment variable to read (case-insensitive)"
},
"show_blocked_reason": {
"type": "boolean",
"description": "Show reason if variable is blocked (default: true)",
"default": true
}
},
"required": [
"name"
]
} | — | — | |
read_ssh_connections[SSH Operations] Read all SSH connectionsInput schema{
"type": "object",
"properties": {},
"required": []
} | — | — | |
read_ssh_pool_status[SSH Operations] Get the status and health of the SSH connection poolInput schema{
"type": "object",
"properties": {},
"required": []
} | — | — | |
read_system_info[Diagnostics] Get system information for troubleshootingInput schema{
"type": "object",
"properties": {}
} | — | — | |
reload_config[Diagnostics] Validate configuration file and preview reload (server restart required)
Example usage:
```json
{
"validate_before": true
}
```
Note: This tool validates the config file. To apply changes, restart the MCP server.Input schema{
"type": "object",
"properties": {
"validate_before": {
"type": "boolean",
"description": "Validate config file before reloading (default: true)",
"default": true
}
}
} | — | — | |
sftp_delete[SSH Operations] Delete file or directory on remote host via SFTP
Example usage:
```json
{
"connectionId": "raspberry-pi",
"remotePath": "/home/pi/file.txt",
"isDirectory": false
}
```
SECURITY WARNING: Deletion is permanent and cannot be undone.
Remote path must be absolute. Set isDirectory=true to delete directories.Input schema{
"type": "object",
"properties": {
"connectionId": {
"type": "string",
"description": "ID of the SSH connection to use"
},
"remotePath": {
"type": "string",
"description": "Absolute path to remote file or directory to delete"
},
"isDirectory": {
"type": "boolean",
"description": "Set to true to delete a directory (default: false)",
"default": false
}
},
"required": [
"connectionId",
"remotePath"
]
} | — | — | |
sftp_download[SSH Operations] Download file from remote host via SFTP
Example usage:
```json
{
"connectionId": "raspberry-pi",
"remotePath": "/home/pi/file.txt",
"localPath": "C:\\downloads\\file.txt"
}
```
Security: Local path must be absolute. Creates parent directories if needed.Input schema{
"type": "object",
"properties": {
"connectionId": {
"type": "string",
"description": "ID of the SSH connection to use"
},
"remotePath": {
"type": "string",
"description": "Absolute path to remote file to download"
},
"localPath": {
"type": "string",
"description": "Absolute path where file will be saved locally"
}
},
"required": [
"connectionId",
"remotePath",
"localPath"
]
} | — | — | |
sftp_list_directory[SSH Operations] List files and directories on remote host via SFTP
Example usage:
```json
{
"connectionId": "raspberry-pi",
"remotePath": "/home/pi",
"pattern": "*.txt"
}
```
Security: Remote path must be absolute. Pattern supports glob wildcards.Input schema{
"type": "object",
"properties": {
"connectionId": {
"type": "string",
"description": "ID of the SSH connection to use"
},
"remotePath": {
"type": "string",
"description": "Absolute path to remote directory"
},
"pattern": {
"type": "string",
"description": "Optional glob pattern to filter files (e.g., \"*.txt\")"
}
},
"required": [
"connectionId",
"remotePath"
]
} | — | — | |
sftp_upload[SSH Operations] Upload file to remote host via SFTP
Example usage:
```json
{
"connectionId": "raspberry-pi",
"localPath": "C:\\data\\file.txt",
"remotePath": "/home/pi/file.txt"
}
```
Security: Validates local file exists. Remote path must be absolute.Input schema{
"type": "object",
"properties": {
"connectionId": {
"type": "string",
"description": "ID of the SSH connection to use"
},
"localPath": {
"type": "string",
"description": "Absolute path to local file to upload"
},
"remotePath": {
"type": "string",
"description": "Absolute path on remote host where file will be uploaded"
}
},
"required": [
"connectionId",
"localPath",
"remotePath"
]
} | — | — | |
ssh_disconnect[SSH Operations] Disconnect from an SSH server
Example usage:
```json
{
"connectionId": "raspberry-pi"
}
```
Use this to cleanly close SSH connections when they're no longer needed.Input schema{
"type": "object",
"properties": {
"connectionId": {
"type": "string",
"description": "ID of the SSH connection to disconnect",
"enum": []
}
},
"required": [
"connectionId"
]
} | — | — | |
ssh_execute[SSH Operations] Execute a command on a remote host via SSH
Example usage:
```json
{
"connectionId": "raspberry-pi",
"command": "uname -a"
}
```
Configuration required in config.json:
```json
{
"ssh": {
"enabled": true,
"connections": {
"raspberry-pi": {
"host": "raspberrypi.local",
"port": 22,
"username": "pi",
"password": "raspberry"
}
}
}
}
```Input schema{
"type": "object",
"properties": {
"connectionId": {
"type": "string",
"description": "ID of the SSH connection to use",
"enum": []
},
"command": {
"type": "string",
"description": "Command to execute"
},
"env": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Custom environment variables for remote command execution (optional). Note: SSH server must allow AcceptEnv for these variables."
}
},
"required": [
"connectionId",
"command"
]
} | — | — | |
start_background_job[Command Execution] Start a command as a background job
Example usage:
```json
{
"shell": "powershell",
"command": "Start-Sleep -Seconds 30; Write-Output 'Done'",
"timeout": 60
}
```
Returns job ID immediately. Use get_job_status to monitor progress.Input schema{
"type": "object",
"properties": {
"shell": {
"type": "string",
"enum": [
"powershell",
"cmd",
"gitbash"
],
"description": "Shell to use for command execution"
},
"command": {
"type": "string",
"description": "Command to execute"
},
"timeout": {
"type": "number",
"description": "Job timeout in seconds (default: 300, max: 3600)",
"default": 300
},
"env": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Custom environment variables for command execution (optional)"
}
},
"required": [
"shell",
"command"
]
} | — | — | |
test_connection[Diagnostics] Test shell connectivity and basic functionalityInput schema{
"type": "object",
"properties": {
"shell": {
"type": "string",
"enum": [
"powershell",
"cmd",
"gitbash"
],
"description": "Shell to test (powershell, cmd, or gitbash)"
},
"working_dir": {
"type": "string",
"description": "Optional working directory to test access"
}
},
"required": [
"shell"
]
} | — | — | |
test_connectivity[Diagnostics] Test network connectivity to host and port
Example usage:
```json
{
"host": "google.com",
"port": 443,
"timeout": 5000
}
```
Security: Blocks connections to private IPs, localhost, and cloud metadata endpoints.Input schema{
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "Hostname or IP address to test"
},
"port": {
"type": "number",
"description": "Port number to test (default: 80)",
"default": 80
},
"timeout": {
"type": "number",
"description": "Connection timeout in milliseconds (default: 5000, max: 10000)",
"default": 5000
}
},
"required": [
"host"
]
} | — | — | |
update_ssh_connection[SSH Operations] Update an existing SSH connectionInput schema{
"type": "object",
"properties": {
"connectionId": {
"type": "string",
"description": "ID of the SSH connection to update"
},
"connectionConfig": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "Host of the SSH connection"
},
"port": {
"type": "number",
"description": "Port of the SSH connection"
},
"username": {
"type": "string",
"description": "Username for the SSH connection"
},
"password": {
"type": "string",
"description": "Password for the SSH connection"
},
"privateKeyPath": {
"type": "string",
"description": "Path to the private key for the SSH connection"
}
},
"required": [
"host",
"port",
"username"
]
}
},
"required": [
"connectionId",
"connectionConfig"
]
} | — | — | |
validate_command[Diagnostics] Test if a command would be allowed without executing it (dry-run validation). Use this to troubleshoot security blocks before attempting execution.Input schema{
"type": "object",
"properties": {
"shell": {
"type": "string",
"enum": [
"powershell",
"cmd",
"gitbash"
],
"description": "Shell to validate against"
},
"command": {
"type": "string",
"description": "Command to validate"
},
"workingDir": {
"type": "string",
"description": "Working directory to validate (optional)"
}
},
"required": [
"shell",
"command"
]
} | — | — | |
validate_config[Diagnostics] Validate configuration file and show how it merges with defaultsInput schema{
"type": "object",
"properties": {
"show_merge_details": {
"type": "boolean",
"description": "Show detailed merge process (intersection for paths, union for blocks)",
"default": true
}
}
} | — | — | |
validate_ssh_connection[SSH Operations] Validate SSH connection configuration and test connectivityInput schema{
"type": "object",
"properties": {
"connectionConfig": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "Host of the SSH connection"
},
"port": {
"type": "number",
"description": "Port of the SSH connection"
},
"username": {
"type": "string",
"description": "Username for the SSH connection"
},
"password": {
"type": "string",
"description": "Password for the SSH connection"
},
"privateKeyPath": {
"type": "string",
"description": "Path to the private key for the SSH connection"
}
},
"required": [
"host",
"port",
"username"
]
}
},
"required": [
"connectionConfig"
]
} | — | — |
cli://background-jobsStatus of all background command execution jobs
cli://configMain CLI server configuration (excluding sensitive data)
cli://history-summarySummary of recent command executions with statistics and patterns
cli://currentdirThe current working directory of the CLI server
cli://validation-rulesComplete security validation rules including blocked commands, arguments, operators, and path restrictions
ssh://configAll SSH connection configurations
ssh://pool-statusActive SSH connections, pool statistics, and connection health
| Endpoint | Transport | Authentication | Health | Observed |
|---|---|---|---|---|
| No verified remote endpoint is linked. | ||||
No verified package installation command is available in the retained catalog evidence.
Windows CLI MCP Server exposed 34 tools during independent protocol observation, including check_security_config, create_ssh_connection, delete_ssh_connection, dns_lookup, execute_batch, execute_command, explain_exit_code, get_config_value, and others.
The selected current version does not yet have completed public verification. Unknown does not mean clean or vulnerable.
These internal links are derived from strong identity fields such as the implementation name, package, repository, vendor, and listing name—not generic description prose.
Association is based on retained identity fields; it does not by itself prove first-party publication.
Curated product and capability guides containing this catalog record.