03e7ea0e69
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Replace template API scaffolding with Windows desktop system tools: - shell.ts: PowerShell/cmd/bash executor + persistent terminal sessions - tools/execute.ts: windows_execute (#1) - tools/process.ts: windows_process_list (#2) - tools/audio.ts: windows_audio_get, windows_audio_set (#6, #7) - tools/system.ts: windows_system_info (#18) - tools/terminal.ts: windows_terminal_start/send/read/list/kill (#35) - tools/filesystem.ts: windows_file_read/write/edit, windows_search (#36-39) Removes template API client/config/types (not needed for local OS MCP). Authored-by: Moko Consulting
602 lines
15 KiB
Markdown
602 lines
15 KiB
Markdown
# mcp_windows — Feature Issues
|
|
|
|
Issues to create on Gitea once repo is published.
|
|
Labels: `type: feature`, `priority: normal` unless noted otherwise.
|
|
|
|
---
|
|
|
|
## Category: Terminal & Process Execution
|
|
|
|
### Issue 1: Tool — `windows_execute`
|
|
**Labels:** `type: feature`, `priority: high`
|
|
|
|
Execute shell commands (PowerShell, cmd, bash) with intelligent completion detection. Support background execution, timeout, and working directory.
|
|
|
|
**Acceptance criteria:**
|
|
- Execute PowerShell commands by default
|
|
- Support `shell` param: `pwsh`, `cmd`, `bash`
|
|
- Support `timeout` param (ms)
|
|
- Support `cwd` (working directory)
|
|
- Support `background` flag for long-running commands
|
|
- Return stdout, stderr, exit code
|
|
- Detect hung/interactive prompts
|
|
|
|
---
|
|
|
|
### Issue 2: Tool — `windows_process_list`
|
|
**Labels:** `type: feature`, `priority: high`
|
|
|
|
List running processes with PID, name, CPU%, memory usage, window title, and path.
|
|
|
|
**Acceptance criteria:**
|
|
- Return all running processes
|
|
- Include: PID, name, CPU%, memory (MB), window title, executable path
|
|
- Support `filter` param (name substring match)
|
|
- Support `sort` param (cpu, memory, name)
|
|
|
|
---
|
|
|
|
### Issue 3: Tool — `windows_process_kill`
|
|
**Labels:** `type: feature`, `priority: normal`
|
|
|
|
Terminate a running process by PID or name.
|
|
|
|
**Acceptance criteria:**
|
|
- Kill by PID (single or array)
|
|
- Kill by name (with confirmation count)
|
|
- Support `force` flag for immediate termination
|
|
- Return success/failure per process
|
|
|
|
---
|
|
|
|
### Issue 4: Tool — `windows_service_list`
|
|
**Labels:** `type: feature`, `priority: normal`
|
|
|
|
List Windows services with status, startup type, and description.
|
|
|
|
**Acceptance criteria:**
|
|
- Return all services (or filtered by status/name)
|
|
- Include: name, display name, status, startup type, description
|
|
- Support `filter` param (name match)
|
|
- Support `status` param (running, stopped, all)
|
|
|
|
---
|
|
|
|
### Issue 5: Tool — `windows_service_control`
|
|
**Labels:** `type: feature`, `priority: normal`
|
|
|
|
Start, stop, restart, or change startup type of Windows services.
|
|
|
|
**Acceptance criteria:**
|
|
- Actions: start, stop, restart, enable, disable
|
|
- Support service name or display name
|
|
- Return new service status after action
|
|
- Require elevation indicator for protected services
|
|
|
|
---
|
|
|
|
## Category: Audio & Volume Control
|
|
|
|
### Issue 6: Tool — `windows_audio_get`
|
|
**Labels:** `type: feature`, `priority: high`
|
|
|
|
Get current audio state: master volume level, mute status, default device.
|
|
|
|
**Acceptance criteria:**
|
|
- Return master volume (0-100)
|
|
- Return mute state (boolean)
|
|
- Return default playback device name
|
|
- Return list of available audio devices
|
|
|
|
---
|
|
|
|
### Issue 7: Tool — `windows_audio_set`
|
|
**Labels:** `type: feature`, `priority: high`
|
|
|
|
Set audio volume, mute/unmute, or change default audio device.
|
|
|
|
**Acceptance criteria:**
|
|
- Set master volume (0-100)
|
|
- Set mute state (true/false/toggle)
|
|
- Set default playback device by name
|
|
- Return new state after change
|
|
|
|
---
|
|
|
|
### Issue 8: Tool — `windows_audio_app_volumes`
|
|
**Labels:** `type: feature`, `priority: normal`
|
|
|
|
Get and set per-application volume levels.
|
|
|
|
**Acceptance criteria:**
|
|
- List all apps with active audio sessions
|
|
- Get volume/mute per app
|
|
- Set volume/mute per app
|
|
- Identify apps by name or PID
|
|
|
|
---
|
|
|
|
## Category: Display & Monitor
|
|
|
|
### Issue 9: Tool — `windows_display_get`
|
|
**Labels:** `type: feature`, `priority: normal`
|
|
|
|
Get display configuration: resolution, refresh rate, scaling, multi-monitor layout.
|
|
|
|
**Acceptance criteria:**
|
|
- List all connected monitors
|
|
- Per monitor: resolution, refresh rate, scaling %, position, primary flag
|
|
- Include display name/model
|
|
- Report HDR status
|
|
|
|
---
|
|
|
|
### Issue 10: Tool — `windows_display_set`
|
|
**Labels:** `type: feature`, `priority: normal`
|
|
|
|
Change display settings: resolution, refresh rate, scaling, brightness.
|
|
|
|
**Acceptance criteria:**
|
|
- Set resolution per monitor
|
|
- Set refresh rate
|
|
- Set brightness (where supported)
|
|
- Set scaling percentage
|
|
- Return new settings after change
|
|
|
|
---
|
|
|
|
### Issue 11: Tool — `windows_screenshot`
|
|
**Labels:** `type: feature`, `priority: normal`
|
|
|
|
Capture screenshot of screen, window, or region.
|
|
|
|
**Acceptance criteria:**
|
|
- Capture full screen (specify monitor)
|
|
- Capture specific window by title/PID
|
|
- Capture region (x, y, width, height)
|
|
- Return as base64 or save to file path
|
|
- Support format: png, jpg
|
|
|
|
---
|
|
|
|
## Category: Power Management
|
|
|
|
### Issue 12: Tool — `windows_power_get`
|
|
**Labels:** `type: feature`, `priority: normal`
|
|
|
|
Get power state: battery level, AC/battery, power plan, screen timeout settings.
|
|
|
|
**Acceptance criteria:**
|
|
- Battery percentage and charging status
|
|
- Current power plan name
|
|
- Screen/sleep timeout values
|
|
- Estimated time remaining (battery)
|
|
|
|
---
|
|
|
|
### Issue 13: Tool — `windows_power_action`
|
|
**Labels:** `type: feature`, `priority: normal`
|
|
|
|
Execute power actions: sleep, hibernate, lock, shutdown, restart, schedule.
|
|
|
|
**Acceptance criteria:**
|
|
- Actions: sleep, hibernate, lock, shutdown, restart, log-off
|
|
- Support `delay` param (seconds)
|
|
- Support `cancel` to abort scheduled action
|
|
- Support power plan switch (balanced, performance, power saver)
|
|
|
|
---
|
|
|
|
## Category: Window Management
|
|
|
|
### Issue 14: Tool — `windows_window_list`
|
|
**Labels:** `type: feature`, `priority: normal`
|
|
|
|
List all open windows with title, position, size, state.
|
|
|
|
**Acceptance criteria:**
|
|
- List visible windows
|
|
- Include: title, PID, process name, position (x,y), size (w,h), state (minimized/maximized/normal)
|
|
- Support `filter` by title or process name
|
|
- Include z-order (front to back)
|
|
|
|
---
|
|
|
|
### Issue 15: Tool — `windows_window_control`
|
|
**Labels:** `type: feature`, `priority: normal`
|
|
|
|
Move, resize, minimize, maximize, close, or focus windows.
|
|
|
|
**Acceptance criteria:**
|
|
- Actions: minimize, maximize, restore, close, focus, move, resize
|
|
- Identify window by title (substring) or PID
|
|
- Move: set x, y position
|
|
- Resize: set width, height
|
|
- Support `topmost` flag (always on top)
|
|
|
|
---
|
|
|
|
## Category: Clipboard
|
|
|
|
### Issue 16: Tool — `windows_clipboard_get`
|
|
**Labels:** `type: feature`, `priority: normal`
|
|
|
|
Read clipboard contents (text, file paths, image).
|
|
|
|
**Acceptance criteria:**
|
|
- Get text content
|
|
- Get file list (when files are copied)
|
|
- Get image as base64 (when image is copied)
|
|
- Report content type available
|
|
|
|
---
|
|
|
|
### Issue 17: Tool — `windows_clipboard_set`
|
|
**Labels:** `type: feature`, `priority: normal`
|
|
|
|
Set clipboard contents.
|
|
|
|
**Acceptance criteria:**
|
|
- Set text content
|
|
- Set file list (for paste-as-files)
|
|
- Set image from base64 or file path
|
|
- Clear clipboard
|
|
|
|
---
|
|
|
|
## Category: System Information
|
|
|
|
### Issue 18: Tool — `windows_system_info`
|
|
**Labels:** `type: feature`, `priority: high`
|
|
|
|
Get comprehensive system information.
|
|
|
|
**Acceptance criteria:**
|
|
- OS version, build, edition
|
|
- CPU: model, cores, usage %
|
|
- RAM: total, available, used %
|
|
- Disk: per-drive total, free, usage %
|
|
- Network: adapters, IPs, connection status
|
|
- Uptime
|
|
- Hostname, username, domain
|
|
|
|
---
|
|
|
|
### Issue 19: Tool — `windows_installed_apps`
|
|
**Labels:** `type: feature`, `priority: low`
|
|
|
|
List installed applications.
|
|
|
|
**Acceptance criteria:**
|
|
- List apps from registry + Store apps
|
|
- Include: name, version, publisher, install date, size
|
|
- Support `filter` param
|
|
- Support `sort` param (name, date, size)
|
|
|
|
---
|
|
|
|
## Category: Notifications & UI
|
|
|
|
### Issue 20: Tool — `windows_notification_send`
|
|
**Labels:** `type: feature`, `priority: normal`
|
|
|
|
Send Windows toast notifications.
|
|
|
|
**Acceptance criteria:**
|
|
- Title and body text
|
|
- Support icon (file path)
|
|
- Support action buttons
|
|
- Support expiration time
|
|
- Optional sound
|
|
|
|
---
|
|
|
|
### Issue 21: Tool — `windows_dialog`
|
|
**Labels:** `type: feature`, `priority: low`
|
|
|
|
Show system dialog boxes (message box, input, file picker).
|
|
|
|
**Acceptance criteria:**
|
|
- Message box with configurable buttons (OK, Yes/No, etc.)
|
|
- Input dialog (text prompt)
|
|
- File open/save dialog with filters
|
|
- Folder picker
|
|
- Return user selection
|
|
|
|
---
|
|
|
|
## Category: Network
|
|
|
|
### Issue 22: Tool — `windows_network_info`
|
|
**Labels:** `type: feature`, `priority: normal`
|
|
|
|
Get network configuration and status.
|
|
|
|
**Acceptance criteria:**
|
|
- List adapters: name, type, status, IP, MAC, speed
|
|
- DNS servers
|
|
- Default gateway
|
|
- Wi-Fi: SSID, signal strength, security
|
|
- Current internet connectivity status
|
|
|
|
---
|
|
|
|
### Issue 23: Tool — `windows_network_connections`
|
|
**Labels:** `type: feature`, `priority: low`
|
|
|
|
List active network connections (like netstat).
|
|
|
|
**Acceptance criteria:**
|
|
- List TCP/UDP connections
|
|
- Include: local addr:port, remote addr:port, state, PID, process name
|
|
- Support filter by state, port, process
|
|
- Support `listen` flag (only listening ports)
|
|
|
|
---
|
|
|
|
## Category: File System (Enhanced)
|
|
|
|
### Issue 24: Tool — `windows_drives`
|
|
**Labels:** `type: feature`, `priority: normal`
|
|
|
|
List drives/volumes with type, label, capacity, free space.
|
|
|
|
**Acceptance criteria:**
|
|
- All mounted drives (local, network, removable)
|
|
- Include: letter, label, type, filesystem, total, free, used %
|
|
- Detect USB/removable vs fixed vs network
|
|
|
|
---
|
|
|
|
### Issue 25: Tool — `windows_file_search`
|
|
**Labels:** `type: feature`, `priority: normal`
|
|
|
|
Search files using Windows Search index (instant results for indexed locations).
|
|
|
|
**Acceptance criteria:**
|
|
- Search by name pattern (glob or regex)
|
|
- Search by content (indexed content search)
|
|
- Filter by date range, size, type
|
|
- Use Windows Search index when available
|
|
- Fallback to filesystem walk for non-indexed paths
|
|
- Return: path, size, modified date, type
|
|
|
|
---
|
|
|
|
### Issue 26: Tool — `windows_recycle_bin`
|
|
**Labels:** `type: feature`, `priority: low`
|
|
|
|
Manage the Recycle Bin.
|
|
|
|
**Acceptance criteria:**
|
|
- List items (name, original path, size, deleted date)
|
|
- Restore item(s)
|
|
- Empty bin (all or selected)
|
|
- Get bin size/count
|
|
|
|
---
|
|
|
|
## Category: Scheduled Tasks
|
|
|
|
### Issue 27: Tool — `windows_task_scheduler_list`
|
|
**Labels:** `type: feature`, `priority: normal`
|
|
|
|
List Windows Task Scheduler tasks.
|
|
|
|
**Acceptance criteria:**
|
|
- List all tasks or filter by folder/name
|
|
- Include: name, status, last run, next run, trigger type
|
|
- Support folder navigation
|
|
|
|
---
|
|
|
|
### Issue 28: Tool — `windows_task_scheduler_manage`
|
|
**Labels:** `type: feature`, `priority: normal`
|
|
|
|
Create, delete, enable, disable, or run scheduled tasks.
|
|
|
|
**Acceptance criteria:**
|
|
- Create task: name, command, trigger (time, interval, event), run level
|
|
- Delete task by name
|
|
- Enable/disable task
|
|
- Run task immediately
|
|
- Modify existing task triggers
|
|
|
|
---
|
|
|
|
## Category: Registry
|
|
|
|
### Issue 29: Tool — `windows_registry_read`
|
|
**Labels:** `type: feature`, `priority: low`
|
|
|
|
Read Windows Registry keys and values.
|
|
|
|
**Acceptance criteria:**
|
|
- Read value by full path (HKLM, HKCU, etc.)
|
|
- List subkeys of a key
|
|
- List values of a key
|
|
- Return value type (REG_SZ, DWORD, etc.)
|
|
- Support common abbreviations (HKLM, HKCU, HKCR)
|
|
|
|
---
|
|
|
|
### Issue 30: Tool — `windows_registry_write`
|
|
**Labels:** `type: feature`, `priority: low`, `priority: caution`
|
|
|
|
Write Windows Registry keys and values.
|
|
|
|
**Acceptance criteria:**
|
|
- Set value (string, dword, binary, expandsz, multi_sz)
|
|
- Create key
|
|
- Delete value
|
|
- Delete key (with confirmation)
|
|
- Backup key before modification
|
|
- Restricted to HKCU by default (HKLM requires explicit flag)
|
|
|
|
---
|
|
|
|
## Category: Environment & Configuration
|
|
|
|
### Issue 31: Tool — `windows_env_get`
|
|
**Labels:** `type: feature`, `priority: normal`
|
|
|
|
Get environment variables (user, system, process).
|
|
|
|
**Acceptance criteria:**
|
|
- Get specific variable by name
|
|
- List all variables (user, system, or both)
|
|
- Show PATH as parsed list
|
|
- Indicate scope (user vs system)
|
|
|
|
---
|
|
|
|
### Issue 32: Tool — `windows_env_set`
|
|
**Labels:** `type: feature`, `priority: normal`
|
|
|
|
Set environment variables persistently (user or system scope).
|
|
|
|
**Acceptance criteria:**
|
|
- Set user-scope variable
|
|
- Set system-scope variable (requires elevation)
|
|
- Append/prepend to PATH
|
|
- Remove variable
|
|
- Changes persist across sessions
|
|
|
|
---
|
|
|
|
## Category: Startup & Autorun
|
|
|
|
### Issue 33: Tool — `windows_startup_list`
|
|
**Labels:** `type: feature`, `priority: normal`
|
|
|
|
List applications configured to run at startup.
|
|
|
|
**Acceptance criteria:**
|
|
- Registry Run/RunOnce (HKLM + HKCU)
|
|
- Startup folder items
|
|
- Scheduled tasks set to run at logon
|
|
- Task Manager startup tab equivalent
|
|
- Include: name, command, location, enabled status
|
|
|
|
---
|
|
|
|
### Issue 34: Tool — `windows_startup_manage`
|
|
**Labels:** `type: feature`, `priority: normal`
|
|
|
|
Enable, disable, or add startup items.
|
|
|
|
**Acceptance criteria:**
|
|
- Disable/enable existing startup item
|
|
- Add new startup item (registry or startup folder)
|
|
- Remove startup item
|
|
- Set startup delay
|
|
|
|
---
|
|
|
|
## Category: Desktop Commander Parity (Terminal)
|
|
|
|
### Issue 35: Tool — `windows_terminal_session`
|
|
**Labels:** `type: feature`, `priority: high`
|
|
|
|
Persistent interactive terminal sessions (REPL, SSH, etc.) with output pagination.
|
|
|
|
**Acceptance criteria:**
|
|
- Start persistent session (pwsh, cmd, python, node, wsl)
|
|
- Send input to session
|
|
- Read output with offset/length pagination
|
|
- List active sessions
|
|
- Terminate session
|
|
- Detect prompt/completion state
|
|
- Context overflow protection (configurable line limit)
|
|
|
|
---
|
|
|
|
### Issue 36: Tool — `windows_file_read`
|
|
**Labels:** `type: feature`, `priority: high`
|
|
|
|
Read files with smart pagination, format detection, and URL support.
|
|
|
|
**Acceptance criteria:**
|
|
- Text files with line offset/length pagination
|
|
- PDF text extraction
|
|
- Excel: sheet selection, range support
|
|
- DOCX: outline mode
|
|
- Images: base64 encoding
|
|
- URL fetching (isUrl flag)
|
|
- Binary file detection
|
|
- Negative offset for tail behavior
|
|
|
|
---
|
|
|
|
### Issue 37: Tool — `windows_file_write`
|
|
**Labels:** `type: feature`, `priority: high`
|
|
|
|
Write files with format support and chunking.
|
|
|
|
**Acceptance criteria:**
|
|
- Text write/append
|
|
- Excel write (JSON 2D array → .xlsx)
|
|
- DOCX creation from markdown
|
|
- PDF creation from markdown
|
|
- Chunked writing for large files
|
|
- Create parent directories if needed
|
|
|
|
---
|
|
|
|
### Issue 38: Tool — `windows_file_edit`
|
|
**Labels:** `type: feature`, `priority: high`
|
|
|
|
Surgical file edits with find/replace.
|
|
|
|
**Acceptance criteria:**
|
|
- Find and replace text (single or all occurrences)
|
|
- Expected replacement count validation
|
|
- Character-level diff on near-matches
|
|
- Line-range replacement
|
|
- Regex support
|
|
- Dry-run mode
|
|
|
|
---
|
|
|
|
### Issue 39: Tool — `windows_search`
|
|
**Labels:** `type: feature`, `priority: high`
|
|
|
|
Search files by name or content with streaming results.
|
|
|
|
**Acceptance criteria:**
|
|
- Search by filename pattern (glob)
|
|
- Search by file content (regex or literal)
|
|
- Case sensitivity toggle
|
|
- File type filter
|
|
- Exclude patterns
|
|
- Context lines around matches
|
|
- Result pagination
|
|
- Background/streaming mode for large searches
|
|
|
|
---
|
|
|
|
## Category: Configuration
|
|
|
|
### Issue 40: Tool — `windows_mcp_config`
|
|
**Labels:** `type: feature`, `priority: normal`
|
|
|
|
Get and set mcp_windows configuration.
|
|
|
|
**Acceptance criteria:**
|
|
- Get current config (allowed paths, blocked commands, limits)
|
|
- Set values dynamically without restart
|
|
- Configurable: blocked commands, allowed directories, output line limits
|
|
- Persist config to `~/.mcp_windows.json`
|
|
|
|
---
|
|
|
|
## Milestone Plan
|
|
|
|
| Milestone | Issues | Priority |
|
|
|-----------|--------|----------|
|
|
| **v1.0 — Core** | #1, #2, #6, #7, #18, #35-39 | High |
|
|
| **v1.1 — System Control** | #3-5, #8, #12-13, #22, #24 | Normal |
|
|
| **v1.2 — Desktop Automation** | #9-11, #14-17, #20 | Normal |
|
|
| **v1.3 — Admin Tools** | #27-34, #40 | Normal |
|
|
| **v1.4 — Advanced** | #19, #21, #23, #25-26 | Low |
|