Majorsilence.Forms.Mcp 26.11.7

dotnet tool install --global Majorsilence.Forms.Mcp --version 26.11.7
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local Majorsilence.Forms.Mcp --version 26.11.7
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Majorsilence.Forms.Mcp&version=26.11.7
                    
nuke :add-package Majorsilence.Forms.Mcp --version 26.11.7
                    

Majorsilence.Forms.Mcp

An MCP server that lets an AI assistant drive a running Majorsilence.Forms application: read its control tree, click, type, wait, and take screenshots.

It is a dotnet global tool that speaks MCP over stdin/stdout and talks to the app under test over the app's own W3C WebDriver endpoint — so it works against any Majorsilence.Forms app, on any backend, on Windows, macOS, and Linux, without referencing the framework itself.

assistant  ──MCP/stdio──▶  majorsilence-mcp  ──HTTP/loopback──▶  your app (WebDriverServer)

Install

dotnet tool install -g Majorsilence.Forms.Mcp

Expose the app under test

The server drives an app through Majorsilence.Forms.WebDriver, which the app starts itself. Two lines, usually behind a debug flag or a command-line switch:

using var server = new WebDriverServer (form, 4444);
server.Start ();

Two prerequisites carry over from ordinary UI automation:

  • Name the controls you want to target. Control.Name becomes the id every tool uses. An unnamed control can only be reached by XPath or position, which is exactly the brittleness worth avoiding.
  • A layout pass has to have run, or every control's bounds are zero. Showing the form does this; in a headless process, HeadlessRenderer.CapturePng (form, width, height) does it explicitly.

Point a client at it

Claude Code:

claude mcp add majorsilence-ui -- majorsilence-mcp --port 4444

Any client that launches MCP servers itself (Claude Desktop, editors, agent frameworks) takes the same command in its own configuration format:

{
  "mcpServers": {
    "majorsilence-ui": {
      "command": "majorsilence-mcp",
      "args": ["--port", "4444"]
    }
  }
}

Options: --port <port> (loopback, default 4444), --url <url> for a full base URL, or the MAJORSILENCE_MCP_URL environment variable. --help prints the same summary.

Tools

Tool Arguments Returns
ui_snapshot — the whole control tree as XML
ui_find target, strategy id, name, role, type, value, text, enabled/visible, bounds
ui_read target, strategy what the control currently displays
ui_click target, strategy confirmation, or why it was refused
ui_type target, text, strategy, clear what the control reads afterwards
ui_wait_for target, strategy, timeoutMs, requireEnabled readiness, or why the wait timed out
ui_screenshot — a PNG of the window

strategy defaults to id — the control's Name, and the only locator that stays stable as the UI changes. The others are name, xpath, role, type, text, css selector, and tag name.

Every tool takes a locator rather than an element handle, so each call re-resolves what it acts on: there is no handle to go stale between a find and an action.

ui_click and ui_type are marked destructive; the rest are marked read-only. Hosts use those hints when deciding what a user has to approve.

What it is for

  • Writing tests. Let the assistant explore the real UI, then have it write xUnit/NUnit tests against the same automation tree. See docs/automation.md.
  • Reproducing a bug report. Walk the steps, screenshot the result.
  • Checking a change. Ask what the window looks like now, rather than describing it.

Scope and safety

The automation surface is unauthenticated and can drive the application arbitrarily, so WebDriverServer binds loopback only and --port follows it. Expose it in development and test builds, not in anything shipped to users.

The server drives one window at a time — the one the app handed to WebDriverServer. Modal dialogs the app opens on its UI thread block automation exactly as they block the UI.

MIT licensed, like the rest of Majorsilence.Forms.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
26.11.7 0 10/18/2026
26.11.6 40 10/17/2026
26.11.5 59 10/14/2026
26.11.4 71 10/12/2026
26.11.3 86 10/11/2026
26.11.2 100 10/11/2026
26.11.1 99 10/10/2026
26.10.1 96 10/10/2026
26.10.0 90 10/10/2026
26.9.0 91 10/8/2026
26.8.2 90 10/6/2026
26.8.1 90 10/5/2026
26.8.0 110 10/3/2026
26.7.0 98 10/3/2026
26.6.0 103 10/2/2026
26.5.0 92 10/1/2026
26.4.0 96 9/29/2026
26.3.0 112 9/25/2026
26.2.0 105 9/23/2026
26.1.0 101 9/21/2026
Loading failed