@mokoconsulting/mcp-windows 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/.gitattributes +94 -0
  2. package/.gitmessage +9 -0
  3. package/.mokogitea/ISSUE_TEMPLATE/adr.md +110 -0
  4. package/.mokogitea/ISSUE_TEMPLATE/bug_report.md +48 -0
  5. package/.mokogitea/ISSUE_TEMPLATE/config.yml +18 -0
  6. package/.mokogitea/ISSUE_TEMPLATE/documentation.md +52 -0
  7. package/.mokogitea/ISSUE_TEMPLATE/feature_request.md +51 -0
  8. package/.mokogitea/ISSUE_TEMPLATE/mcp_api_integration.md +48 -0
  9. package/.mokogitea/ISSUE_TEMPLATE/mcp_connection_issue.md +67 -0
  10. package/.mokogitea/ISSUE_TEMPLATE/mcp_tool_request.md +49 -0
  11. package/.mokogitea/ISSUE_TEMPLATE/question.md +82 -0
  12. package/.mokogitea/ISSUE_TEMPLATE/rfc.md +126 -0
  13. package/.mokogitea/ISSUE_TEMPLATE/security.md +51 -0
  14. package/.mokogitea/ISSUE_TEMPLATE/version.md +24 -0
  15. package/.mokogitea/branch-protection.yml +251 -0
  16. package/.mokogitea/workflows/auto-assign.yml +76 -0
  17. package/.mokogitea/workflows/auto-bump.yml +66 -0
  18. package/.mokogitea/workflows/auto-dev-issue.yml +207 -0
  19. package/.mokogitea/workflows/auto-release.yml +421 -0
  20. package/.mokogitea/workflows/branch-cleanup.yml +48 -0
  21. package/.mokogitea/workflows/cascade-dev.yml +10 -0
  22. package/.mokogitea/workflows/changelog-validation.yml +101 -0
  23. package/.mokogitea/workflows/ci-generic.yml +191 -0
  24. package/.mokogitea/workflows/cleanup.yml +87 -0
  25. package/.mokogitea/workflows/codeql-analysis.yml +115 -0
  26. package/.mokogitea/workflows/copilot-agent.yml +44 -0
  27. package/.mokogitea/workflows/deploy-manual.yml +126 -0
  28. package/.mokogitea/workflows/enterprise-firewall-setup.yml +758 -0
  29. package/.mokogitea/workflows/gitleaks.yml +92 -0
  30. package/.mokogitea/workflows/issue-branch.yml +73 -0
  31. package/.mokogitea/workflows/mcp-auto-release.yml +278 -0
  32. package/.mokogitea/workflows/mcp-build-test.yml +65 -0
  33. package/.mokogitea/workflows/mcp-sdk-check.yml +109 -0
  34. package/.mokogitea/workflows/mcp-tool-inventory.yml +61 -0
  35. package/.mokogitea/workflows/notify.yml +70 -0
  36. package/.mokogitea/workflows/npm-publish.yml +113 -0
  37. package/.mokogitea/workflows/pr-check.yml +534 -0
  38. package/.mokogitea/workflows/pre-release.yml +252 -0
  39. package/.mokogitea/workflows/rc-revert.yml +66 -0
  40. package/.mokogitea/workflows/repo-health.yml +712 -0
  41. package/.mokogitea/workflows/repository-cleanup.yml +525 -0
  42. package/.mokogitea/workflows/security-audit.yml +82 -0
  43. package/.mokogitea/workflows/standards-compliance.yml +2614 -0
  44. package/.mokogitea/workflows/sync-version-on-merge.yml +133 -0
  45. package/.mokogitea/workflows/update-server.yml +312 -0
  46. package/.mokogitea/workflows/workflow-sync-trigger.yml +73 -0
  47. package/CHANGELOG.md +130 -0
  48. package/CLAUDE.md +49 -0
  49. package/CONTRIBUTING.md +161 -0
  50. package/ISSUES.md +601 -0
  51. package/Makefile +70 -0
  52. package/README.md +80 -0
  53. package/automation/ci-issue-reporter.sh +237 -0
  54. package/config.example.json +18 -0
  55. package/dist/index.d.ts +3 -0
  56. package/dist/index.js +111 -0
  57. package/dist/shell.d.ts +50 -0
  58. package/dist/shell.js +209 -0
  59. package/dist/tools/apps.d.ts +3 -0
  60. package/dist/tools/apps.js +63 -0
  61. package/dist/tools/audio.d.ts +3 -0
  62. package/dist/tools/audio.js +142 -0
  63. package/dist/tools/audio_apps.d.ts +3 -0
  64. package/dist/tools/audio_apps.js +86 -0
  65. package/dist/tools/automation.d.ts +3 -0
  66. package/dist/tools/automation.js +261 -0
  67. package/dist/tools/bluetooth.d.ts +3 -0
  68. package/dist/tools/bluetooth.js +96 -0
  69. package/dist/tools/clipboard.d.ts +3 -0
  70. package/dist/tools/clipboard.js +118 -0
  71. package/dist/tools/config.d.ts +3 -0
  72. package/dist/tools/config.js +85 -0
  73. package/dist/tools/dialog.d.ts +3 -0
  74. package/dist/tools/dialog.js +72 -0
  75. package/dist/tools/display.d.ts +3 -0
  76. package/dist/tools/display.js +256 -0
  77. package/dist/tools/drives.d.ts +3 -0
  78. package/dist/tools/drives.js +98 -0
  79. package/dist/tools/environment.d.ts +3 -0
  80. package/dist/tools/environment.js +129 -0
  81. package/dist/tools/execute.d.ts +3 -0
  82. package/dist/tools/execute.js +28 -0
  83. package/dist/tools/filesystem.d.ts +3 -0
  84. package/dist/tools/filesystem.js +230 -0
  85. package/dist/tools/firewall.d.ts +3 -0
  86. package/dist/tools/firewall.js +108 -0
  87. package/dist/tools/hosts.d.ts +3 -0
  88. package/dist/tools/hosts.js +119 -0
  89. package/dist/tools/maintenance.d.ts +3 -0
  90. package/dist/tools/maintenance.js +236 -0
  91. package/dist/tools/netstat.d.ts +3 -0
  92. package/dist/tools/netstat.js +56 -0
  93. package/dist/tools/network.d.ts +3 -0
  94. package/dist/tools/network.js +70 -0
  95. package/dist/tools/notification.d.ts +3 -0
  96. package/dist/tools/notification.js +41 -0
  97. package/dist/tools/power.d.ts +3 -0
  98. package/dist/tools/power.js +104 -0
  99. package/dist/tools/printer.d.ts +3 -0
  100. package/dist/tools/printer.js +97 -0
  101. package/dist/tools/process.d.ts +3 -0
  102. package/dist/tools/process.js +54 -0
  103. package/dist/tools/process_kill.d.ts +3 -0
  104. package/dist/tools/process_kill.js +48 -0
  105. package/dist/tools/recycle_bin.d.ts +3 -0
  106. package/dist/tools/recycle_bin.js +108 -0
  107. package/dist/tools/registry.d.ts +3 -0
  108. package/dist/tools/registry.js +136 -0
  109. package/dist/tools/scheduler.d.ts +3 -0
  110. package/dist/tools/scheduler.js +116 -0
  111. package/dist/tools/service.d.ts +3 -0
  112. package/dist/tools/service.js +79 -0
  113. package/dist/tools/startup.d.ts +3 -0
  114. package/dist/tools/startup.js +159 -0
  115. package/dist/tools/storage.d.ts +3 -0
  116. package/dist/tools/storage.js +129 -0
  117. package/dist/tools/system.d.ts +3 -0
  118. package/dist/tools/system.js +84 -0
  119. package/dist/tools/system_mgmt.d.ts +3 -0
  120. package/dist/tools/system_mgmt.js +174 -0
  121. package/dist/tools/terminal.d.ts +3 -0
  122. package/dist/tools/terminal.js +80 -0
  123. package/dist/tools/theme.d.ts +3 -0
  124. package/dist/tools/theme.js +165 -0
  125. package/dist/tools/usb.d.ts +3 -0
  126. package/dist/tools/usb.js +52 -0
  127. package/dist/tools/virtual_desktop.d.ts +3 -0
  128. package/dist/tools/virtual_desktop.js +112 -0
  129. package/dist/tools/wifi.d.ts +3 -0
  130. package/dist/tools/wifi.js +136 -0
  131. package/dist/tools/window.d.ts +3 -0
  132. package/dist/tools/window.js +189 -0
  133. package/dist/tools/winget.d.ts +3 -0
  134. package/dist/tools/winget.js +79 -0
  135. package/dist/tools/wsl.d.ts +3 -0
  136. package/dist/tools/wsl.js +99 -0
  137. package/docs/API.md +63 -0
  138. package/docs/ARCHITECTURE.md +73 -0
  139. package/docs/INSTALLATION.md +102 -0
  140. package/docs/index.md +12 -0
  141. package/package.json +35 -0
  142. package/scripts/setup.mjs +123 -0
  143. package/src/index.ts +125 -0
  144. package/src/shell.ts +253 -0
  145. package/src/tools/apps.ts +76 -0
  146. package/src/tools/audio.ts +161 -0
  147. package/src/tools/audio_apps.ts +98 -0
  148. package/src/tools/automation.ts +297 -0
  149. package/src/tools/bluetooth.ts +114 -0
  150. package/src/tools/clipboard.ts +138 -0
  151. package/src/tools/config.ts +105 -0
  152. package/src/tools/dialog.ts +87 -0
  153. package/src/tools/display.ts +285 -0
  154. package/src/tools/drives.ts +124 -0
  155. package/src/tools/environment.ts +146 -0
  156. package/src/tools/execute.ts +35 -0
  157. package/src/tools/filesystem.ts +273 -0
  158. package/src/tools/firewall.ts +125 -0
  159. package/src/tools/hosts.ts +135 -0
  160. package/src/tools/maintenance.ts +299 -0
  161. package/src/tools/netstat.ts +72 -0
  162. package/src/tools/network.ts +84 -0
  163. package/src/tools/notification.ts +50 -0
  164. package/src/tools/power.ts +123 -0
  165. package/src/tools/printer.ts +114 -0
  166. package/src/tools/process.ts +80 -0
  167. package/src/tools/process_kill.ts +57 -0
  168. package/src/tools/recycle_bin.ts +126 -0
  169. package/src/tools/registry.ts +165 -0
  170. package/src/tools/scheduler.ts +140 -0
  171. package/src/tools/service.ts +102 -0
  172. package/src/tools/startup.ts +180 -0
  173. package/src/tools/storage.ts +141 -0
  174. package/src/tools/system.ts +99 -0
  175. package/src/tools/system_mgmt.ts +190 -0
  176. package/src/tools/terminal.ts +117 -0
  177. package/src/tools/theme.ts +205 -0
  178. package/src/tools/usb.ts +65 -0
  179. package/src/tools/virtual_desktop.ts +122 -0
  180. package/src/tools/wifi.ts +157 -0
  181. package/src/tools/window.ts +211 -0
  182. package/src/tools/winget.ts +100 -0
  183. package/src/tools/wsl.ts +112 -0
  184. package/tsconfig.json +19 -0
package/ISSUES.md ADDED
@@ -0,0 +1,601 @@
1
+ # mcp_windows — Feature Issues
2
+
3
+ Issues to create on Gitea once repo is published.
4
+ Labels: `type: feature`, `priority: normal` unless noted otherwise.
5
+
6
+ ---
7
+
8
+ ## Category: Terminal & Process Execution
9
+
10
+ ### Issue 1: Tool — `windows_execute`
11
+ **Labels:** `type: feature`, `priority: high`
12
+
13
+ Execute shell commands (PowerShell, cmd, bash) with intelligent completion detection. Support background execution, timeout, and working directory.
14
+
15
+ **Acceptance criteria:**
16
+ - Execute PowerShell commands by default
17
+ - Support `shell` param: `pwsh`, `cmd`, `bash`
18
+ - Support `timeout` param (ms)
19
+ - Support `cwd` (working directory)
20
+ - Support `background` flag for long-running commands
21
+ - Return stdout, stderr, exit code
22
+ - Detect hung/interactive prompts
23
+
24
+ ---
25
+
26
+ ### Issue 2: Tool — `windows_process_list`
27
+ **Labels:** `type: feature`, `priority: high`
28
+
29
+ List running processes with PID, name, CPU%, memory usage, window title, and path.
30
+
31
+ **Acceptance criteria:**
32
+ - Return all running processes
33
+ - Include: PID, name, CPU%, memory (MB), window title, executable path
34
+ - Support `filter` param (name substring match)
35
+ - Support `sort` param (cpu, memory, name)
36
+
37
+ ---
38
+
39
+ ### Issue 3: Tool — `windows_process_kill`
40
+ **Labels:** `type: feature`, `priority: normal`
41
+
42
+ Terminate a running process by PID or name.
43
+
44
+ **Acceptance criteria:**
45
+ - Kill by PID (single or array)
46
+ - Kill by name (with confirmation count)
47
+ - Support `force` flag for immediate termination
48
+ - Return success/failure per process
49
+
50
+ ---
51
+
52
+ ### Issue 4: Tool — `windows_service_list`
53
+ **Labels:** `type: feature`, `priority: normal`
54
+
55
+ List Windows services with status, startup type, and description.
56
+
57
+ **Acceptance criteria:**
58
+ - Return all services (or filtered by status/name)
59
+ - Include: name, display name, status, startup type, description
60
+ - Support `filter` param (name match)
61
+ - Support `status` param (running, stopped, all)
62
+
63
+ ---
64
+
65
+ ### Issue 5: Tool — `windows_service_control`
66
+ **Labels:** `type: feature`, `priority: normal`
67
+
68
+ Start, stop, restart, or change startup type of Windows services.
69
+
70
+ **Acceptance criteria:**
71
+ - Actions: start, stop, restart, enable, disable
72
+ - Support service name or display name
73
+ - Return new service status after action
74
+ - Require elevation indicator for protected services
75
+
76
+ ---
77
+
78
+ ## Category: Audio & Volume Control
79
+
80
+ ### Issue 6: Tool — `windows_audio_get`
81
+ **Labels:** `type: feature`, `priority: high`
82
+
83
+ Get current audio state: master volume level, mute status, default device.
84
+
85
+ **Acceptance criteria:**
86
+ - Return master volume (0-100)
87
+ - Return mute state (boolean)
88
+ - Return default playback device name
89
+ - Return list of available audio devices
90
+
91
+ ---
92
+
93
+ ### Issue 7: Tool — `windows_audio_set`
94
+ **Labels:** `type: feature`, `priority: high`
95
+
96
+ Set audio volume, mute/unmute, or change default audio device.
97
+
98
+ **Acceptance criteria:**
99
+ - Set master volume (0-100)
100
+ - Set mute state (true/false/toggle)
101
+ - Set default playback device by name
102
+ - Return new state after change
103
+
104
+ ---
105
+
106
+ ### Issue 8: Tool — `windows_audio_app_volumes`
107
+ **Labels:** `type: feature`, `priority: normal`
108
+
109
+ Get and set per-application volume levels.
110
+
111
+ **Acceptance criteria:**
112
+ - List all apps with active audio sessions
113
+ - Get volume/mute per app
114
+ - Set volume/mute per app
115
+ - Identify apps by name or PID
116
+
117
+ ---
118
+
119
+ ## Category: Display & Monitor
120
+
121
+ ### Issue 9: Tool — `windows_display_get`
122
+ **Labels:** `type: feature`, `priority: normal`
123
+
124
+ Get display configuration: resolution, refresh rate, scaling, multi-monitor layout.
125
+
126
+ **Acceptance criteria:**
127
+ - List all connected monitors
128
+ - Per monitor: resolution, refresh rate, scaling %, position, primary flag
129
+ - Include display name/model
130
+ - Report HDR status
131
+
132
+ ---
133
+
134
+ ### Issue 10: Tool — `windows_display_set`
135
+ **Labels:** `type: feature`, `priority: normal`
136
+
137
+ Change display settings: resolution, refresh rate, scaling, brightness.
138
+
139
+ **Acceptance criteria:**
140
+ - Set resolution per monitor
141
+ - Set refresh rate
142
+ - Set brightness (where supported)
143
+ - Set scaling percentage
144
+ - Return new settings after change
145
+
146
+ ---
147
+
148
+ ### Issue 11: Tool — `windows_screenshot`
149
+ **Labels:** `type: feature`, `priority: normal`
150
+
151
+ Capture screenshot of screen, window, or region.
152
+
153
+ **Acceptance criteria:**
154
+ - Capture full screen (specify monitor)
155
+ - Capture specific window by title/PID
156
+ - Capture region (x, y, width, height)
157
+ - Return as base64 or save to file path
158
+ - Support format: png, jpg
159
+
160
+ ---
161
+
162
+ ## Category: Power Management
163
+
164
+ ### Issue 12: Tool — `windows_power_get`
165
+ **Labels:** `type: feature`, `priority: normal`
166
+
167
+ Get power state: battery level, AC/battery, power plan, screen timeout settings.
168
+
169
+ **Acceptance criteria:**
170
+ - Battery percentage and charging status
171
+ - Current power plan name
172
+ - Screen/sleep timeout values
173
+ - Estimated time remaining (battery)
174
+
175
+ ---
176
+
177
+ ### Issue 13: Tool — `windows_power_action`
178
+ **Labels:** `type: feature`, `priority: normal`
179
+
180
+ Execute power actions: sleep, hibernate, lock, shutdown, restart, schedule.
181
+
182
+ **Acceptance criteria:**
183
+ - Actions: sleep, hibernate, lock, shutdown, restart, log-off
184
+ - Support `delay` param (seconds)
185
+ - Support `cancel` to abort scheduled action
186
+ - Support power plan switch (balanced, performance, power saver)
187
+
188
+ ---
189
+
190
+ ## Category: Window Management
191
+
192
+ ### Issue 14: Tool — `windows_window_list`
193
+ **Labels:** `type: feature`, `priority: normal`
194
+
195
+ List all open windows with title, position, size, state.
196
+
197
+ **Acceptance criteria:**
198
+ - List visible windows
199
+ - Include: title, PID, process name, position (x,y), size (w,h), state (minimized/maximized/normal)
200
+ - Support `filter` by title or process name
201
+ - Include z-order (front to back)
202
+
203
+ ---
204
+
205
+ ### Issue 15: Tool — `windows_window_control`
206
+ **Labels:** `type: feature`, `priority: normal`
207
+
208
+ Move, resize, minimize, maximize, close, or focus windows.
209
+
210
+ **Acceptance criteria:**
211
+ - Actions: minimize, maximize, restore, close, focus, move, resize
212
+ - Identify window by title (substring) or PID
213
+ - Move: set x, y position
214
+ - Resize: set width, height
215
+ - Support `topmost` flag (always on top)
216
+
217
+ ---
218
+
219
+ ## Category: Clipboard
220
+
221
+ ### Issue 16: Tool — `windows_clipboard_get`
222
+ **Labels:** `type: feature`, `priority: normal`
223
+
224
+ Read clipboard contents (text, file paths, image).
225
+
226
+ **Acceptance criteria:**
227
+ - Get text content
228
+ - Get file list (when files are copied)
229
+ - Get image as base64 (when image is copied)
230
+ - Report content type available
231
+
232
+ ---
233
+
234
+ ### Issue 17: Tool — `windows_clipboard_set`
235
+ **Labels:** `type: feature`, `priority: normal`
236
+
237
+ Set clipboard contents.
238
+
239
+ **Acceptance criteria:**
240
+ - Set text content
241
+ - Set file list (for paste-as-files)
242
+ - Set image from base64 or file path
243
+ - Clear clipboard
244
+
245
+ ---
246
+
247
+ ## Category: System Information
248
+
249
+ ### Issue 18: Tool — `windows_system_info`
250
+ **Labels:** `type: feature`, `priority: high`
251
+
252
+ Get comprehensive system information.
253
+
254
+ **Acceptance criteria:**
255
+ - OS version, build, edition
256
+ - CPU: model, cores, usage %
257
+ - RAM: total, available, used %
258
+ - Disk: per-drive total, free, usage %
259
+ - Network: adapters, IPs, connection status
260
+ - Uptime
261
+ - Hostname, username, domain
262
+
263
+ ---
264
+
265
+ ### Issue 19: Tool — `windows_installed_apps`
266
+ **Labels:** `type: feature`, `priority: low`
267
+
268
+ List installed applications.
269
+
270
+ **Acceptance criteria:**
271
+ - List apps from registry + Store apps
272
+ - Include: name, version, publisher, install date, size
273
+ - Support `filter` param
274
+ - Support `sort` param (name, date, size)
275
+
276
+ ---
277
+
278
+ ## Category: Notifications & UI
279
+
280
+ ### Issue 20: Tool — `windows_notification_send`
281
+ **Labels:** `type: feature`, `priority: normal`
282
+
283
+ Send Windows toast notifications.
284
+
285
+ **Acceptance criteria:**
286
+ - Title and body text
287
+ - Support icon (file path)
288
+ - Support action buttons
289
+ - Support expiration time
290
+ - Optional sound
291
+
292
+ ---
293
+
294
+ ### Issue 21: Tool — `windows_dialog`
295
+ **Labels:** `type: feature`, `priority: low`
296
+
297
+ Show system dialog boxes (message box, input, file picker).
298
+
299
+ **Acceptance criteria:**
300
+ - Message box with configurable buttons (OK, Yes/No, etc.)
301
+ - Input dialog (text prompt)
302
+ - File open/save dialog with filters
303
+ - Folder picker
304
+ - Return user selection
305
+
306
+ ---
307
+
308
+ ## Category: Network
309
+
310
+ ### Issue 22: Tool — `windows_network_info`
311
+ **Labels:** `type: feature`, `priority: normal`
312
+
313
+ Get network configuration and status.
314
+
315
+ **Acceptance criteria:**
316
+ - List adapters: name, type, status, IP, MAC, speed
317
+ - DNS servers
318
+ - Default gateway
319
+ - Wi-Fi: SSID, signal strength, security
320
+ - Current internet connectivity status
321
+
322
+ ---
323
+
324
+ ### Issue 23: Tool — `windows_network_connections`
325
+ **Labels:** `type: feature`, `priority: low`
326
+
327
+ List active network connections (like netstat).
328
+
329
+ **Acceptance criteria:**
330
+ - List TCP/UDP connections
331
+ - Include: local addr:port, remote addr:port, state, PID, process name
332
+ - Support filter by state, port, process
333
+ - Support `listen` flag (only listening ports)
334
+
335
+ ---
336
+
337
+ ## Category: File System (Enhanced)
338
+
339
+ ### Issue 24: Tool — `windows_drives`
340
+ **Labels:** `type: feature`, `priority: normal`
341
+
342
+ List drives/volumes with type, label, capacity, free space.
343
+
344
+ **Acceptance criteria:**
345
+ - All mounted drives (local, network, removable)
346
+ - Include: letter, label, type, filesystem, total, free, used %
347
+ - Detect USB/removable vs fixed vs network
348
+
349
+ ---
350
+
351
+ ### Issue 25: Tool — `windows_file_search`
352
+ **Labels:** `type: feature`, `priority: normal`
353
+
354
+ Search files using Windows Search index (instant results for indexed locations).
355
+
356
+ **Acceptance criteria:**
357
+ - Search by name pattern (glob or regex)
358
+ - Search by content (indexed content search)
359
+ - Filter by date range, size, type
360
+ - Use Windows Search index when available
361
+ - Fallback to filesystem walk for non-indexed paths
362
+ - Return: path, size, modified date, type
363
+
364
+ ---
365
+
366
+ ### Issue 26: Tool — `windows_recycle_bin`
367
+ **Labels:** `type: feature`, `priority: low`
368
+
369
+ Manage the Recycle Bin.
370
+
371
+ **Acceptance criteria:**
372
+ - List items (name, original path, size, deleted date)
373
+ - Restore item(s)
374
+ - Empty bin (all or selected)
375
+ - Get bin size/count
376
+
377
+ ---
378
+
379
+ ## Category: Scheduled Tasks
380
+
381
+ ### Issue 27: Tool — `windows_task_scheduler_list`
382
+ **Labels:** `type: feature`, `priority: normal`
383
+
384
+ List Windows Task Scheduler tasks.
385
+
386
+ **Acceptance criteria:**
387
+ - List all tasks or filter by folder/name
388
+ - Include: name, status, last run, next run, trigger type
389
+ - Support folder navigation
390
+
391
+ ---
392
+
393
+ ### Issue 28: Tool — `windows_task_scheduler_manage`
394
+ **Labels:** `type: feature`, `priority: normal`
395
+
396
+ Create, delete, enable, disable, or run scheduled tasks.
397
+
398
+ **Acceptance criteria:**
399
+ - Create task: name, command, trigger (time, interval, event), run level
400
+ - Delete task by name
401
+ - Enable/disable task
402
+ - Run task immediately
403
+ - Modify existing task triggers
404
+
405
+ ---
406
+
407
+ ## Category: Registry
408
+
409
+ ### Issue 29: Tool — `windows_registry_read`
410
+ **Labels:** `type: feature`, `priority: low`
411
+
412
+ Read Windows Registry keys and values.
413
+
414
+ **Acceptance criteria:**
415
+ - Read value by full path (HKLM, HKCU, etc.)
416
+ - List subkeys of a key
417
+ - List values of a key
418
+ - Return value type (REG_SZ, DWORD, etc.)
419
+ - Support common abbreviations (HKLM, HKCU, HKCR)
420
+
421
+ ---
422
+
423
+ ### Issue 30: Tool — `windows_registry_write`
424
+ **Labels:** `type: feature`, `priority: low`, `priority: caution`
425
+
426
+ Write Windows Registry keys and values.
427
+
428
+ **Acceptance criteria:**
429
+ - Set value (string, dword, binary, expandsz, multi_sz)
430
+ - Create key
431
+ - Delete value
432
+ - Delete key (with confirmation)
433
+ - Backup key before modification
434
+ - Restricted to HKCU by default (HKLM requires explicit flag)
435
+
436
+ ---
437
+
438
+ ## Category: Environment & Configuration
439
+
440
+ ### Issue 31: Tool — `windows_env_get`
441
+ **Labels:** `type: feature`, `priority: normal`
442
+
443
+ Get environment variables (user, system, process).
444
+
445
+ **Acceptance criteria:**
446
+ - Get specific variable by name
447
+ - List all variables (user, system, or both)
448
+ - Show PATH as parsed list
449
+ - Indicate scope (user vs system)
450
+
451
+ ---
452
+
453
+ ### Issue 32: Tool — `windows_env_set`
454
+ **Labels:** `type: feature`, `priority: normal`
455
+
456
+ Set environment variables persistently (user or system scope).
457
+
458
+ **Acceptance criteria:**
459
+ - Set user-scope variable
460
+ - Set system-scope variable (requires elevation)
461
+ - Append/prepend to PATH
462
+ - Remove variable
463
+ - Changes persist across sessions
464
+
465
+ ---
466
+
467
+ ## Category: Startup & Autorun
468
+
469
+ ### Issue 33: Tool — `windows_startup_list`
470
+ **Labels:** `type: feature`, `priority: normal`
471
+
472
+ List applications configured to run at startup.
473
+
474
+ **Acceptance criteria:**
475
+ - Registry Run/RunOnce (HKLM + HKCU)
476
+ - Startup folder items
477
+ - Scheduled tasks set to run at logon
478
+ - Task Manager startup tab equivalent
479
+ - Include: name, command, location, enabled status
480
+
481
+ ---
482
+
483
+ ### Issue 34: Tool — `windows_startup_manage`
484
+ **Labels:** `type: feature`, `priority: normal`
485
+
486
+ Enable, disable, or add startup items.
487
+
488
+ **Acceptance criteria:**
489
+ - Disable/enable existing startup item
490
+ - Add new startup item (registry or startup folder)
491
+ - Remove startup item
492
+ - Set startup delay
493
+
494
+ ---
495
+
496
+ ## Category: Desktop Commander Parity (Terminal)
497
+
498
+ ### Issue 35: Tool — `windows_terminal_session`
499
+ **Labels:** `type: feature`, `priority: high`
500
+
501
+ Persistent interactive terminal sessions (REPL, SSH, etc.) with output pagination.
502
+
503
+ **Acceptance criteria:**
504
+ - Start persistent session (pwsh, cmd, python, node, wsl)
505
+ - Send input to session
506
+ - Read output with offset/length pagination
507
+ - List active sessions
508
+ - Terminate session
509
+ - Detect prompt/completion state
510
+ - Context overflow protection (configurable line limit)
511
+
512
+ ---
513
+
514
+ ### Issue 36: Tool — `windows_file_read`
515
+ **Labels:** `type: feature`, `priority: high`
516
+
517
+ Read files with smart pagination, format detection, and URL support.
518
+
519
+ **Acceptance criteria:**
520
+ - Text files with line offset/length pagination
521
+ - PDF text extraction
522
+ - Excel: sheet selection, range support
523
+ - DOCX: outline mode
524
+ - Images: base64 encoding
525
+ - URL fetching (isUrl flag)
526
+ - Binary file detection
527
+ - Negative offset for tail behavior
528
+
529
+ ---
530
+
531
+ ### Issue 37: Tool — `windows_file_write`
532
+ **Labels:** `type: feature`, `priority: high`
533
+
534
+ Write files with format support and chunking.
535
+
536
+ **Acceptance criteria:**
537
+ - Text write/append
538
+ - Excel write (JSON 2D array → .xlsx)
539
+ - DOCX creation from markdown
540
+ - PDF creation from markdown
541
+ - Chunked writing for large files
542
+ - Create parent directories if needed
543
+
544
+ ---
545
+
546
+ ### Issue 38: Tool — `windows_file_edit`
547
+ **Labels:** `type: feature`, `priority: high`
548
+
549
+ Surgical file edits with find/replace.
550
+
551
+ **Acceptance criteria:**
552
+ - Find and replace text (single or all occurrences)
553
+ - Expected replacement count validation
554
+ - Character-level diff on near-matches
555
+ - Line-range replacement
556
+ - Regex support
557
+ - Dry-run mode
558
+
559
+ ---
560
+
561
+ ### Issue 39: Tool — `windows_search`
562
+ **Labels:** `type: feature`, `priority: high`
563
+
564
+ Search files by name or content with streaming results.
565
+
566
+ **Acceptance criteria:**
567
+ - Search by filename pattern (glob)
568
+ - Search by file content (regex or literal)
569
+ - Case sensitivity toggle
570
+ - File type filter
571
+ - Exclude patterns
572
+ - Context lines around matches
573
+ - Result pagination
574
+ - Background/streaming mode for large searches
575
+
576
+ ---
577
+
578
+ ## Category: Configuration
579
+
580
+ ### Issue 40: Tool — `windows_mcp_config`
581
+ **Labels:** `type: feature`, `priority: normal`
582
+
583
+ Get and set mcp_windows configuration.
584
+
585
+ **Acceptance criteria:**
586
+ - Get current config (allowed paths, blocked commands, limits)
587
+ - Set values dynamically without restart
588
+ - Configurable: blocked commands, allowed directories, output line limits
589
+ - Persist config to `~/.mcp_windows.json`
590
+
591
+ ---
592
+
593
+ ## Milestone Plan
594
+
595
+ | Milestone | Issues | Priority |
596
+ |-----------|--------|----------|
597
+ | **v1.0 — Core** | #1, #2, #6, #7, #18, #35-39 | High |
598
+ | **v1.1 — System Control** | #3-5, #8, #12-13, #22, #24 | Normal |
599
+ | **v1.2 — Desktop Automation** | #9-11, #14-17, #20 | Normal |
600
+ | **v1.3 — Admin Tools** | #27-34, #40 | Normal |
601
+ | **v1.4 — Advanced** | #19, #21, #23, #25-26 | Low |
package/Makefile ADDED
@@ -0,0 +1,70 @@
1
+ # MCP Server Makefile
2
+ # Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
3
+ # SPDX-License-Identifier: GPL-3.0-or-later
4
+
5
+ PROJECT_NAME := mcp_windows
6
+ PROJECT_VERSION := 1.0.0
7
+
8
+ NPM := npm
9
+
10
+ COLOR_RESET := \033[0m
11
+ COLOR_GREEN := \033[32m
12
+ COLOR_BLUE := \033[34m
13
+
14
+ .PHONY: help
15
+ help: ## Show this help message
16
+ @echo "$(COLOR_BLUE)$(PROJECT_NAME) v$(PROJECT_VERSION)$(COLOR_RESET)"
17
+ @echo ""
18
+ @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " $(COLOR_BLUE)%-20s$(COLOR_RESET) %s\n", $$1, $$2}'
19
+ @echo ""
20
+
21
+ .PHONY: install-deps
22
+ install-deps: ## Install dependencies
23
+ @$(NPM) install
24
+ @echo "$(COLOR_GREEN)✓ Dependencies installed$(COLOR_RESET)"
25
+
26
+ MOKO_PLATFORM ?= $(or $(wildcard ../moko-platform),$(wildcard $(HOME)/moko-platform),$(wildcard /opt/moko-platform))
27
+ MINIFY_SCRIPT := $(MOKO_PLATFORM)/build/minify.js
28
+
29
+ .PHONY: minify
30
+ minify: ## Minify CSS/JS assets
31
+ @echo "Minifying assets..."
32
+ @if [ -f "$(MINIFY_SCRIPT)" ]; then \
33
+ node "$(MINIFY_SCRIPT)" $(SRC_DIR); \
34
+ elif [ -f "scripts/minify.js" ]; then \
35
+ node scripts/minify.js; \
36
+ else \
37
+ echo "No minify script found"; \
38
+ fi
39
+
40
+ .PHONY: build
41
+ build: minify ## Build TypeScript
42
+ @$(NPM) run build
43
+ @echo "$(COLOR_GREEN)✓ Build complete$(COLOR_RESET)"
44
+
45
+ .PHONY: dev
46
+ dev: ## Watch and rebuild on changes
47
+ @$(NPM) run dev
48
+
49
+ .PHONY: clean
50
+ clean: ## Clean build artifacts
51
+ @rm -rf dist
52
+ @echo "$(COLOR_GREEN)✓ Cleaned$(COLOR_RESET)"
53
+
54
+ .PHONY: setup
55
+ setup: ## Run interactive setup wizard
56
+ @$(NPM) run setup
57
+
58
+ .PHONY: start
59
+ start: ## Start the MCP server
60
+ @$(NPM) run start
61
+
62
+ .PHONY: lint
63
+ lint: ## Run linter
64
+ @$(NPM) run lint
65
+
66
+ .PHONY: ci
67
+ ci: install-deps build ## Run CI pipeline
68
+ @echo "$(COLOR_GREEN)✓ CI pipeline complete$(COLOR_RESET)"
69
+
70
+ .DEFAULT_GOAL := help