43ce536e460ebd9ddb223755e0530e974e71df72source_git · quanticsoul4772/mcp-server-win-cli · current release
Observed 2026-08-25T12:23:23.520Z using mcpSecurity-inventory. Status: partial. Negotiated protocol: 2024-11-05.
{
"tools": {},
"resources": {}
}| 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"
]
} | — | — · — | — |
Status of all background command execution jobs
{
"resource_key": "cli://background-jobs",
"uri": "cli://background-jobs",
"name": "Background Jobs",
"description": "Status of all background command execution jobs",
"mime_type": "application/json",
"annotations": null,
"metadata_hash": "5ce3c85f3489a36b4ea5883274ef17f6e005ff576c5c441d6c2f8ac0add024a1"
}Main CLI server configuration (excluding sensitive data)
{
"resource_key": "cli://config",
"uri": "cli://config",
"name": "CLI Server Configuration",
"description": "Main CLI server configuration (excluding sensitive data)",
"mime_type": "application/json",
"annotations": null,
"metadata_hash": "8aa4e0109f4f4e7f44635185f74800d1b3bc81f5f0c4fa86fd1e812d8f5f8404"
}Summary of recent command executions with statistics and patterns
{
"resource_key": "cli://history-summary",
"uri": "cli://history-summary",
"name": "Command History Summary",
"description": "Summary of recent command executions with statistics and patterns",
"mime_type": "application/json",
"annotations": null,
"metadata_hash": "f1724ce26ae56c462b3588127db814c4194ed36c2fd639192166cabe24f41f03"
}The current working directory of the CLI server
{
"resource_key": "cli://currentdir",
"uri": "cli://currentdir",
"name": "Current Working Directory",
"description": "The current working directory of the CLI server",
"mime_type": "text/plain",
"annotations": null,
"metadata_hash": "dc41305bfcf589cc178e829f5eff54c146c3e08079b3a8527f8fcfdf7fd46506"
}Complete security validation rules including blocked commands, arguments, operators, and path restrictions
{
"resource_key": "cli://validation-rules",
"uri": "cli://validation-rules",
"name": "Security Validation Rules",
"description": "Complete security validation rules including blocked commands, arguments, operators, and path restrictions",
"mime_type": "application/json",
"annotations": null,
"metadata_hash": "a994d6da94109c21d1f7d180b8d436b09bca84d1d26f3915233bc90d8f0ccf31"
}All SSH connection configurations
{
"resource_key": "ssh://config",
"uri": "ssh://config",
"name": "SSH Configuration",
"description": "All SSH connection configurations",
"mime_type": "application/json",
"annotations": null,
"metadata_hash": "b6e70b7422bdb93255db92ff5c73d98ee2aecba729d9dce57a1cd4c973543ad2"
}Active SSH connections, pool statistics, and connection health
{
"resource_key": "ssh://pool-status",
"uri": "ssh://pool-status",
"name": "SSH Connection Pool Status",
"description": "Active SSH connections, pool statistics, and connection health",
"mime_type": "application/json",
"annotations": null,
"metadata_hash": "6a9ec277a2b2b9436083b29f69e35926cd370688990e738e651462176cdea3bc"
}