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
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.
Install
- Works in
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 reviewBroad 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.
Related
MCP serversMCP server and wincli CLI: agents drive Windows apps by control name through UI Automation instead of screen coordinates
An MCP server for driving Windows: the agent opens apps, clicks and types, reads window and UI state, and works with files and PowerShell
An MCP server that lets an agent see the screen and control macOS, Windows and Linux: screenshots, clicks, OCR and screen memory
An MCP server for remote Windows control: screenshots, PowerShell, files, mouse and keyboard, registry and OCR
The agent moves the mouse, types, drives windows and captures PNG screenshots of a Windows desktop through AutoIt.
MCP server for AppleScript: the agent runs scripts and controls Mac apps, from Notes and Calendar to files
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.