← Windows CLI MCP Server

Windows CLI MCP Server 43ce536e460ebd9ddb223755e0530e974e71df72

source_git · quanticsoul4772/mcp-server-win-cli · current release

34
Tools
7
Resources
0
Templates
0
Prompts

Observation

Observed 2026-08-25T12:23:23.520Z using mcpSecurity-inventory. Status: partial. Negotiated protocol: 2024-11-05.

Server capabilities
{
  "tools": {},
  "resources": {}
}

Tools 34

ToolCategoryAnnotationsRisk
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 connection
Input 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 connection
Input 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, ALL
Input 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 issues
Input 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 access
Input 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 directory
Input 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 connections
Input schema
{
  "type": "object",
  "properties": {},
  "required": []
}
— · —
read_ssh_pool_status[SSH Operations] Get the status and health of the SSH connection pool
Input schema
{
  "type": "object",
  "properties": {},
  "required": []
}
— · —
read_system_info[Diagnostics] Get system information for troubleshooting
Input 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 functionality
Input 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 connection
Input 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 defaults
Input 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 connectivity
Input 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"
  ]
}
— · —

Resources 7

Resource templates 0

Prompts 0

Let’s talk about MCP security.

Share your details and our security team will contact you.