Software Dock

io.github.molidestroyer由 GitHub 帳號 molidestroyer 發布v0.4.0更新於 Nov 4, 2026

List, update, install and uninstall the software on a Windows PC; running apps, startup apps.

已驗證STDIO僅桌面開發者工具安全與監控

概覽

AI 產生的概覽

讓 AI 助理檢視並管理 Windows 電腦上的軟體:列出、安裝、更新與移除應用程式,並查看執行中與開機啟動的程式。

可以做什麼
  • 列出已安裝軟體及其版本、可用更新與 key,並查看位置、大小、移除方式等詳細資料
  • 在 WinGet 與 Microsoft Store 目錄中搜尋 packageId
  • 依 packageId 或 key 安裝、升級、移除軟體
  • 查看執行中應用程式的 CPU 與記憶體用量,並列出開機啟動項目
  • 匯出 Software Dock 或 winget import 格式的備份,並列出長期未使用的應用程式
  • 回報有更新且正被利用的漏洞應用程式(CISA KEV),並啟用或停用啟動項目
適用情境
適合讓助理回答某台 Windows 電腦裝了什麼、什麼占用記憶體、哪些需要更新,並直接在對話中完成安裝、升級與移除,不必在「設定」中逐項操作。
執行需求
僅限 Windows 電腦;以本機 stdio 程序執行,可使用 MCP 安裝包或 SoftwareDock.Mcp.exe 執行檔。安裝與更新依賴 WinGet(App Installer)。未宣告帳號、API 金鑰或環境變數。加上 --read-only 參數可只提供唯讀工具。
安裝前請注意
多個工具會變更電腦:安裝、升級、移除軟體以及啟用或停用啟動項目,其中移除被標示為破壞性操作。伺服器本身的說明要求助理先與使用者確認變更,請保留這個確認步驟。安裝與更新會執行安裝程式,可能觸發提權提示。安裝包尚未程式碼簽章,首次執行可能被 SmartScreen 攔截。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Software Dock,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[圖片]

Software Dock

The software on your Windows PC, one click from the taskbar — and one tool call from your AI agent.

[CI] [.NET 10] [Avalonia 12] [MCP]


Windows makes managing installed software tedious: Settings › Installed apps cannot update anything or remove more than one app at a time, WinGet is a console, and the Store only knows its own apps. Software Dock lives in the notification area and opens a panel on the right edge of the screen with everything that is installed, what can be updated, what is running and how much it uses, and a search box over the WinGet and Microsoft Store catalogs.

The same capabilities are exposed as an MCP server, so Claude Code, Copilot or any MCP client can answer "what do I have installed?", "what is eating my memory?", "update everything" or "install VLC".

DiscoverRestore from backup
[Discover][Restore]

Rendered by the headless UI tests from the real window, in demo mode.

Features

  • Tray icon as a status light — green: up to date · amber: updates waiting · blue: working · red: the inventory could not be read. Click it, or press Win+Shift+I, to toggle the panel. Updates are checked in the background every 6 hours, so the tray turns amber on its own.
  • 📌 Anchored / 🪟 floating — anchored, the panel hugs the right edge at full height and hides when it loses focus; floating, it is a normal draggable window.
  • One inventory — the Uninstall registry keys (what Installed apps shows) reconciled with WinGet (ids, available updates) and MSIX/Store apps, with real icons.
  • Bulk uninstall — Select, tick several apps (or All), Uninstall: they are removed one after another. Something Windows itself does not offer.
  • Update one or all, install from the catalog, uninstall anything — through WinGet when it knows the app, otherwise through the app's own uninstaller (silently for MSI and QuietUninstallString, never with guessed switches).
  • CPU and memory gauges — for the machine and for every running app, measured only while the panel is open. Sort by memory in use to find the heavy ones.
  • Backups that survive a reinstall — an automatic backup in Documents\Software Dock (OneDrive usually syncs it), updated whenever your software changes, in two formats: Software Dock's, and WinGet's, which restores a new PC with nothing but winget import -i software-winget.json. Restore from backup lists what is missing, ticks it all, installs it in one go, and names the apps you will need to fetch by hand.
  • Security alerts — apps with an update pending that attackers are exploiting right now (CISA's Known Exploited Vulnerabilities catalog) get an Exploited badge and go first in Updates.
  • Startup apps — everything Windows starts at sign-in, with Task Manager's own switch: disable without deleting, re-enable any time.
  • Leftovers — after an uninstall, the folders it left behind (install folder, AppData, ProgramData) are offered for cleanup, to the Recycle Bin.
  • Unused apps — Not opened for 8 months badges from Windows' own launch history, and a Least used sort to find what to remove.
  • Pin or skip — right-click an app: Skip version 2.47.1 or Pin — never update.
  • Administrator rights once per batch (opt-in) — Update all, bulk uninstall and restore ask Windows once and run every installer elevated, instead of one UAC prompt per app. The elevation ends with the batch; scheduled updates and the MCP server never use it.
  • Updates on a schedule — every night or every Sunday night; a run missed while the PC was off happens when it wakes.
  • Windows notifications — new updates (once per version), security alerts first, scheduled-run results, a new dock version.
  • Start with Windows, single instance, per-monitor DPI, settings per user.
  • Updates itself from GitHub releases (Velopack): it downloads in the background and offers Restart to update.
  • MCP server with discovery instructions, tool annotations and a --read-only mode.

Install

Download SoftwareDock-win-Setup.exe from the latest release and run it. It installs per user (no admin) to %LOCALAPPDATA%\SoftwareDock, adds a Start-menu entry and starts in the tray. A portable zip is attached to every release too.

The installer is not code-signed yet, so SmartScreen may ask you to confirm the first time.

Or with WinGet, once the package has been accepted into the community repository:

bash
winget install MiguelMolina.SoftwareDock

Build from source

Requirements: .NET 10 SDK and WinGet (App Installer, preinstalled on current Windows).

bash
dotnet run --project src/SoftwareDock.App

Without touching your machine (in-memory demo PC):

bash
dotnet run --project src/SoftwareDock.App -- --demo

Test:

bash
dotnet test SoftwareDock.slnx

appsettings.json next to the executable configures the hotkey and panel width; everything you change in ⚙️ is stored in %LOCALAPPDATA%\SoftwareDock\settings.json.

Releasing

Bump <Version> in Directory.Build.props and push to main. When no release exists for that version, CI tests, publishes self-contained, packs with Velopack, tags vX.Y.Z and creates the release that installed docks update from. Pushing a v* tag by hand does the same. Then it attaches the MCP bundle, publishes to the MCP Registry and opens the WinGet PR — see Distribution.

Connect an AI agent (MCP)

Claude Desktop: download SoftwareDock-mcp-win-x64.mcpb from the latest release and open it: it installs the server, no dock needed. The server is also listed in the MCP Registry as io.github.molidestroyer/software-dock.

Any other client: from the tray menu choose Copy MCP config, or print it:

bash
SoftwareDock.Mcp.exe --print-config

and paste it into your client's .mcp.json:

json
{  "mcpServers": {    "software-dock": {      "type": "stdio",      "command": "C:\\Tools\\SoftwareDock\\SoftwareDock.Mcp.exe",      "args": []    }  }}

On connect, the server sends instructions that tell the agent what it is for, which identifier each tool takes and where it comes from, and to confirm changes with the user first.

ToolKindWhat it does
list_installed_softwareread-onlyInstalled apps with version, available update and key; filter, only-updates, refresh
get_software_detailsread-onlyLocation, date, size and how it would be uninstalled
search_software_catalogread-onlyWinGet + Microsoft Store search, returns packageId
install_softwarechanges the PCSilent install of a packageId
upgrade_softwarechanges the PCUpgrade an installed app by key
uninstall_softwaredestructiveRemove an installed app by key
list_running_softwareread-onlyRunning apps with CPU % and memory, heaviest first
export_software_backupread-onlyBackup JSON in Software Dock or winget import format
get_security_advisoriesread-onlyApps with pending updates that are actively exploited (CISA KEV)
list_unused_softwareread-onlyApps not opened for N days, largest first
list_startup_appsread-onlyWhat starts with Windows, enabled or not, and which app it belongs to
set_startup_app_enabledchanges the PCEnable/disable a startup app the way Task Manager does

Add "args": ["--read-only"] to expose only the read-only tools.

Architecture

src/  SoftwareDock.Domain          pure model and rules — no I/O  SoftwareDock.Application     use cases over ports (inventory, operations)  SoftwareDock.Infrastructure  Windows adapters: registry, WinGet CLI, uninstallers  SoftwareDock.Mcp             MCP server (stdio)  SoftwareDock.App             Avalonia tray docktests/                         one test project per layer, incl. headless UI and MCP end to enddocs/adr/                      architecture decisions

Decisions worth reading before changing things:

  1. Ports and adapters around a pure domain
  2. WinGet through its CLI first, behind a port
  3. A tray app in Avalonia, not a PowerToys module
  4. MCP: discovery through instructions, safety through the domain
  5. Releases and self-update with Velopack
  6. PC hygiene: startup, security, leftovers, unused apps, schedules, notifications

How it compares

Software DockUniGetUIWinGet's built-in MCP serverPowerToys Command Palette
Lives in the tray✅ panel docked to the screen edge✅ window + tray menu—launcher (Win+Alt+Space)
Installed apps WinGet does not know✅ registry reconciledpartial——
Update / uninstall✅✅ (+ Scoop, Chocolatey, npm…)— (find, install)install
Bulk uninstall✅✅——
CPU / memory per app✅———
Backup / restore✅ (+ winget import format)✅——
Exploited-vulnerability alerts✅———
Startup apps / leftovers / unused apps✅———
MCP server for agents✅ inventory + install/upgrade/uninstall—✅ find + install—

UniGetUI is the most complete GUI if you want many package managers. Software Dock is deliberately smaller: Windows software only, one glance from the taskbar, and an agent-friendly API.

License

AGPL-3.0 © Miguel Molina

來源:README.md,提交 e9e00e6

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:該軟體包類型無法在沙箱中執行。

版本歷史

1
  1. v0.4.0最新Nov 4, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分