mcpbeat Sign in

Umbriel MCP Server

local only

Umbriel runs on your own machine — the client starts it, so there is no endpoint to ping. 78 installs a week from npm. Last commit 15 Aug 2026.

See and drive a whole Windows machine from Bun — apps, input, screen, OCR, registry, OS — via MCP.

Installs per day peak 45 · avg 15 · +9% w/w
a month agotoday
78
Installs / week
npm · umbriel
2
Stars
0 open issues
15 Aug 2026
Last commit
0 releases in 90 days
MIT
License
TypeScript

What the code does

We read the source, 20 h ago · rules 3dff92dd89df

A tool parameter reaches a dangerous call

A value the model can set ends up inside a file or shell call. That is not a flaw by itself — for a terminal server it is the job — but it is where things go wrong when it is not.

A tool parameter reaches a file or shell call wait_for_process.filter → mcp.ts:4115, drag.path → mcp.ts:4272, drag.path → mcp.ts:4273 и ещё 7
    const proc = Bun.spawn(extra.length > 0 ? [command, ...extra] : command.split(' '), { stdout: 'pipe', stderr: 'pipe' });
Capabilities

What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.

    Bun.spawn(argv, { stdout: 'ignore', stderr: 'ignore' });
    for (const [name, value] of Object.entries(process.env)) if (typeof value === 'string') result[name] = value;

Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.

A tool parameter here reaches a dangerous call

That is not a flaw by itself — but it is where things go wrong when it is not the job. We re-read this code on every release. Watch it and you hear from us the day another one appears.

Three servers free · no card

Connect this server

This server runs on your own machine — install it with the package manager and the client starts it for you. Package name taken from the official registry entry.

run in your terminal
claude mcp add umbriel -- npx -y umbriel
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "umbriel": {
      "args": [
        "-y",
        "umbriel"
      ],
      "command": "npx"
    }
  }
}
~/.codex/config.toml
[mcp_servers.umbriel]
command = "npx"
args = ["-y", "umbriel"]
.cursor/mcp.json
{
  "mcpServers": {
    "umbriel": {
      "args": [
        "-y",
        "umbriel"
      ],
      "command": "npx"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "umbriel": {
      "args": [
        "-y",
        "umbriel"
      ],
      "command": "npx"
    }
  }
}

This one needs environment variables set before it will start: UMBRIEL_PROFILE (Capability profile: 'readonly' (inspect/read only), 'safe' (read + input + window — default), or 'full' (also os + fs tools).), UMBRIEL_OS (Set to '1' to allow the 'os' tools (launch_app/run_program/open_path, kill_process, manage_process, control_service, set_env, registry_get/registry_list/registry_set) AND the 'fs' tools (read_file/write_file/list_dir/stat_path/make_dir/copy_file/move_file/delete_file) regardless of profile.), UMBRIEL_ALLOW (Comma-separated tool names or categories to additionally allow on top of the profile.), UMBRIEL_DENY (Comma-separated tool names or categories to deny, overriding the profile and UMBRIEL_ALLOW.), UMBRIEL_CURSOR (Set to 'never' to forbid the real-cursor fallback entirely (strictly cursor-free). By default clicks/drags are cursor-free but fall back to the real hardware cursor when no cursor-free path exists.), UMBRIEL_FS_ROOT (Sandbox root directory that the fs-category file tools (read_file/write_file/list_dir/stat_path/make_dir/copy_file/move_file/delete_file) are confined to when fs tools are enabled; open_path's path argument is honored too.), UMBRIEL_TRACE (File path to journal every mutating tool call as JSON Lines (tool, category, masked args, ok, observation); secret-bearing args and values are redacted. Unset = no trace.), UMBRIEL_FFI_TRACE (File path to a flush-before-call diagnostic journal of every COM vcall (slot, this-pointer, arg count). Each line is written and flushed to the OS BEFORE the native call, so after an uncatchable crash the last line names the faulting call. Has per-call overhead; unset = off. For debugging native faults only.), UMBRIEL_AUDIT (Controls the default-on stderr audit of mutating tool calls. 'off' is the explicit opt-out (reported at startup); 'verbose' also audits reads.), UMBRIEL_REDACT (Credential masking (default on). 'off' opts out; a regex value overrides the built-in secret shapes masked in clipboard/env/registry reads and the trace journal.). The author declared them in the registry entry; get the values from the project itself.

Alternatives to Umbriel

same job, measured the same way
Gorgon Scout
by gorgon-cyber

Run AI-driven web-app and API security scans (DAST) from Claude or any MCP agent. Windows.

local only
Custom AI View
by ccustomai

See any site as it looks on a real iPhone, iPad or MacBook — and drive that window over MCP.

local only
Bun Uia
by obscuritysrl

Playwright for the Windows desktop, from Bun — drive native GUIs via UI Automation + MCP.

73 installs/wk local only
WhatsApp MCP by TimelinesAI
by initechsoftware

Drive your real WhatsApp inbox from Claude — send, reply, label, assign, and triage via TimelinesAI.

answering
Vibe MCP — Real Chrome, Remotely
by vibetechnologies

Drive your real, logged-in Chrome from any MCP client — even from a remote machine, no inbound port.

133 installs/wk answering
Wpf Visual Tree
by faze79

Let AI agents inspect and drive running WPF apps: tree, bindings, screenshots, clicks, text input.

local only
3dstreet
by 3dstreet

Drive an open 3DStreet scene tab from Claude Desktop or Claude Code via MCP tool calls.

108 installs/wk local only
Testa
by valewnrt

Drive the iOS Simulator from an agent: read the screen, tap/type/swipe, replay flows in CI.

27 installs/wk local only

Umbriel — questions

Answers built from our own checks of this server.

Why is there no uptime for Umbriel?
Umbriel runs on your own machine over stdio — there is no network address to reach, so uptime cannot be measured for it by anyone. What can be measured is adoption: the npm package umbriel was installed 78 times last week.
How do I connect Umbriel?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It runs locally, so the command pulls umbriel straight from npm; nothing to host, nothing to sign up for.
How many people use Umbriel?
The npm package umbriel was installed 78 times in the last week. Week over week that is +9%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is Umbriel open source?
Yes — it is published under the MIT licence, written in TypeScript and 2 stars on GitHub. The source link is on this page, so you can read exactly what it does with your data before you connect it.