Files
Jonathan Miller 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
feat: implement v1.0 high-priority tools (14 tools)
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
2026-05-25 21:03:40 -05:00

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 |