WelsonJS MCP

WelsonJS MCP server: an agent runs JScript on Windows and drives windows, Office and COM objects.

  • 514 ★ on the repository
  • Last commit
  • GPL-3.0
MCP server

Broad access

Why this level

  • Runs agent code on the Windows desktop: files, processes, registry, network, COM objects and Office apps.
  • Virtual mouse and keyboard can press anything in open windows.
All reasons and checks

gnh1201/welsonjs

Install

Manual install

{
  "mcpServers": {
    "welsonjs-mcp": {
      "command": "cscript.exe",
      "args": [
        "/nologo",
        "C:/Users/John/Documents/GitHub/welsonjs/app.js",
        "mcploader",
        "/quiet"
      ]
    }
  }
}

The example from `data/mcp/claude_desktop/` in the repository: replace the `app.js` path with yours. The README has no server install command and points to the project wiki for MCP.

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • Runs agent code on the Windows desktop: files, processes, registry, network, COM objects and Office apps.
  • Virtual mouse and keyboard can press anything in open windows.

This is third-party code. Review the repository files before installing.

What it does

WelsonJS is a framework for automating Windows on a built-in JScript engine. The repository holds an MCP server, `mcploader.js`, started with `cscript.exe /nologo app.js mcploader /quiet` and speaking over stdio. The main tool `evaluate_js` runs the script an agent passes in. The `lib/` modules cover the shell, Office, COM objects, and virtual mouse and keyboard. A `SKILL.md` named `welsonjs-mcp` sits alongside: it teaches the agent to write such scripts and handle side effects carefully. Example configurations for Claude Desktop, Codex and Copilot live in `data/mcp/`.

Who it is for. Windows administrators and developers who automate the desktop and Office with scripts written by an agent.

Good fit when

  • An agent writes a script for Excel or Word on a machine with Office installed.
  • An old Windows version without Node.js needs automation, and systems from Windows XP SP3 are supported.
  • A script clicks buttons and types text through virtual mouse and keyboard.
  • Code is reviewed first and only then run on the desktop.

Not a fit when

  • Work happens on macOS or Linux: the engine is Windows-only.
  • Arbitrary code on the desktop cannot run without a human watching.
  • Modern JavaScript syntax without transpiling is needed: the WSH engine sticks to ES3 and ES5.

Example request

Write an `evaluate_js` script that opens an Excel workbook and puts a sum in cell B2. Show the code and wait for my approval.

MCP

Transport
stdio
Authentication
not required

Limitations

Running `evaluate_js` is closed by default: `app.js` sets `ALLOW_UNSAFE_EVAL=false`, and a call must pass `allowUnsafeEval: true`. The server does not apply the `timeout` argument, so a long script will not stop on its own. Every call is independent: local variables and COM objects do not persist, and values pass through `_setState` and `_getState`. It works on Windows only, and Office and other features need the matching software installed. The licence is GPL-3.0.

How to disable. Remove the `welsonjs-mcp` block from the client configuration. Changes to files and the registry made by scripts that already ran are rolled back by hand.

FAQ

How do I start the MCP server?

With `cscript.exe /nologo app.js mcploader /quiet` from the repository clone. A client launches it following `data/mcp/claude_desktop/claude_desktop_config.example.json`.

Why does `evaluate_js` refuse to run a script?

Unsafe evaluation is off. Pass `allowUnsafeEval: true` in the call or enable the global `ALLOW_UNSAFE_EVAL` setting, and only for trusted scripts.

How do I keep a value between calls?

Call `_setState(key, value)` in one script and `_getState(key)` in another. If the runtime lacks state support, the helpers are `null`.

Which tools does the server have?

`evaluate_js` and the test tool `add_both_numbers`. `evaluate_js_es3` is kept as a deprecated alias.

Which clients have sample configurations?

`data/mcp/` holds samples for Claude Desktop, Codex and Copilot.

Discussion

No questions or reviews yet.

MCP server and wincli CLI: agents drive Windows apps by control name through UI Automation instead of screen coordinates

MCP serverBroad access131Repository stars

An MCP server for driving Windows: the agent opens apps, clicks and types, reads window and UI state, and works with files and PowerShell

MCP serverBroad access11.6KRepository stars
Official

An MCP server that lets an agent see the screen and control macOS, Windows and Linux: screenshots, clicks, OCR and screen memory

MCP serverBroad access92Repository stars

An MCP server for remote Windows control: screenshots, PowerShell, files, mouse and keyboard, registry and OCR

MCP serverBroad access221Repository stars

The agent moves the mouse, types, drives windows and captures PNG screenshots of a Windows desktop through AutoIt.

MCP serverBroad access119Repository stars

MCP server for AppleScript: the agent runs scripts and controls Mac apps, from Notes and Calendar to files

MCP serverBroad access468Repository stars

README in short

The README presents WelsonJS as an environment where JavaScript and its transpiled variants run on the built-in Windows engine. It lists HTTP clients, model integrations, WelsonJS.ManagedObject for windows and input, and the new MCP server. There is a three-file quick start and ways to release an app.

README badge

Report a problem