Skip to content

Releases: prinzalx/winadmin-mcp

v0.5.5

Choose a tag to compare

@prinzalx prinzalx released this 15 Oct 11:39

Fixed

  • parse_evtx with an event_id no longer fails with "the query is invalid" on some systems. The id is now filtered in PowerShell on the numeric Id instead of through -FilterXPath, which is locale-independent and keeps the per-id/provider counts about the whole file, as documented. The result reports matched_events next to total_events.
  • Docs and the windows-triage skill now state that each MCP client formats the tool-name prefix differently (Hermes uses mcp__winadmin__<tool>, others mcp_winadmin_<tool>).

v0.5.4

Choose a tag to compare

@prinzalx prinzalx released this 15 Oct 10:09

get_minifilters now counts the filters on a localized Windows: data rows are matched on their numeric columns instead of the localized header, altitudes keep their fractional form, and the fltmc text is decoded in the OEM codepage.

v0.5.3

Choose a tag to compare

@prinzalx prinzalx released this 15 Oct 09:43

Locale-independent output: english event severities with level_display, fixed check_ports without a port argument, driver creator read from the binary, get_windows_update answered from the update client log, logged_in_users as a list.

v0.5.2

Choose a tag to compare

@prinzalx prinzalx released this 15 Oct 08:35

Fixed four parsers that produced empty or broken output on a German Windows system: scheduled task history, minifilter list, service restart counts and the hotfix install dates.

v0.5.1

Choose a tag to compare

@prinzalx prinzalx released this 15 Oct 07:20

Fixes the tab view showing an empty tool list and a stray 0 instead of the tools of the active module.

v0.5.0

Choose a tag to compare

@prinzalx prinzalx released this 15 Oct 07:09

New tool modules (all off by default, switch them on in the web dashboard)

  • Scheduler — list_tasks, get_task, run_task, enable_task, disable_task, task_history
  • Registry — read_registry_key, write_registry_value, delete_registry_value, export_registry_key; every write exports a .reg backup first
  • Security — check_elevation, get_security_events, list_drivers, get_minifilters, analyze_pe (static PE import analysis, no external tools needed)
  • Monitor — events_watch (delta since last call), services_watch, error_trends, service_restarts, system_changes
  • Learnings — list_learnings, add_learning, forget_learning, search_events, parse_evtx, export_learnings

46 switchable tools + 2 governance tools = 48 in tools/list.

Web dashboard

  • Browser-style tabs, one per module
  • Hover mini-doc on every tool row, module description under the tab bar

Docs

  • README is now an index; details moved to docs/ (getting started, tools, governance, web dashboard, Hermes, configuration, development)
  • windows-triage skill extended with the deepening tools and the rule that the agent never confirms its own parked actions

winadmin-mcp v0.4.2

Choose a tag to compare

@prinzalx prinzalx released this 14 Oct 18:30

Test-only fix: the Streamable HTTP check waited a fixed 1.5 s for the
server and the GitHub runner was slower than that, so CI failed on a
connection refused. It now polls until the HTTP interface answers.

winadmin-mcp v0.4.1

Choose a tag to compare

@prinzalx prinzalx released this 14 Oct 18:28

Fixes the approval popup for clients that reach the server over Streamable HTTP (e.g. an agent in WSL).

  • HTTP sessions. Each request used to build its own MCP server, so the tools/call ran on an
    instance that had never seen initialize. The client capabilities looked absent, the popup was
    never attempted and every gated call parked. Sessions are now kept per mcp-session-id, and the
    popup is routed back on the stream of the waiting call (relatedRequestId).
  • Capability spelling. A client that declares a bare elicitation capability is treated as
    supporting form mode, which the SDK has to be told explicitly.
  • Diagnostics. The handshake line now reports it: client connected: <name> — popup supported
    or not supported by this client.
  • Sessions unregister their config subscription when they close.

Covered by the new scripts/mcp-http-popup-check.mjs (8 checks over a real SSE stream).

If the terminal prints not supported by this client, the client never requested popups and the
web interface decides — that is the fallback, not a bug.

winadmin-mcp v0.4.0

Choose a tag to compare

@prinzalx prinzalx released this 14 Oct 18:05

The approval popup (MCP elicitation)

A parked action had a flaw: the human ran it in the web interface, but the result stayed there and
never reached the agent — so the agent called the tool again and parked again.

A gated tool call now asks for approval inside the MCP client through the standard MCP
elicitation request, the same mechanism a TUI uses to offer options. Approve there and the tool
executes immediately with the result returned in the same tool call; decline or dismiss and
nothing runs and nothing parks.

Clients that do not declare the elicitation capability are never asked and park the action for the
web interface as before, so this stays agent-agnostic.

New switch

ask in agent in the Awaiting approval header (askInAgent in config.json, on by default,
served over PATCH /api/settings).

Tests

npm test now also runs scripts/mcp-popup-check.mjs: a client that declares elicitation approves,
declines and switches the popup off, 9 additional checks.

winadmin-mcp v0.3.0

Choose a tag to compare

@prinzalx prinzalx released this 14 Oct 17:30

Version everywhere

  • The running version is printed in the console after startup and shown in the UI footer.
  • When GitHub has a newer release, the footer links update available 0.x.y to the releases page.
  • WAMD_NO_UPDATE_CHECK=1 skips the one-time lookup.

Who may confirm a parked action

An agent could call confirm_action on its own parked action, which made the approval gate
useless in practice. By default an MCP source may no longer confirm: the parked action stays
pending and only the human in the web interface can run it. The new agent may confirm switch
in the Awaiting approval heading turns the old behaviour back on (allowAgentConfirm in the
config file, PATCH /api/settings).

Recent activity gets a Clear button

POST /api/audit/clear drops the recorded calls and rewrites the audit file, so the list cannot
grow without bound across restarts.