Atlas / MCP servers / vorn-run / Vorn

VornBLOCK

mcp/vorn-run/vorn

Vorn - The agent command center

Verdict
BLOCK
Grade
F
Trust score
39 /100
Exposed tools
102 73r · 23w · 6d
Transport
stdio · streamable-http
License
MIT
Stars
26
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

The agent command center

Run agents interactively or let them work autonomously — everything local, everything yours.

Install · Features · Agents · Development

Why Vorn?

Vorn is the agent command center. How you work is up to you.

Like vibecoding interactively? Open multiple terminals and pair with several agents at once — Claude on one task, Copilot on another, Codex on a third. Every agent runs in its own PTY with full native output. No wrappers, no API keys, no reimplementation.

Prefer to stay hands-off? Define your tasks and workflows, then let agents work headlessly in the background. Set up a workflow that automatically reviews code when a task moves to "in review", spins up another agent to generate documentation, runs your test suite after every implementation.

**Chain agents

Read from source at commit 14a1de654c43OBSERVED · 2026-10-12
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add vorn-website --env FIXTURE_SECRET=${FIXTURE_SECRET} --env GITHUB_TOKEN=${GITHUB_TOKEN} --env VORN_EXTENSION_TOKEN=${VORN_EXTENSION_TOKEN} -- npx -y vorn-website
claude-desktop
{
  "mcpServers": {
    "vorn-website": {
      "command": "npx",
      "args": [
        "-y",
        "vorn-website"
      ],
      "env": {
        "FIXTURE_SECRET": "${FIXTURE_SECRET}",
        "GITHUB_TOKEN": "${GITHUB_TOKEN}",
        "VORN_EXTENSION_TOKEN": "${VORN_EXTENSION_TOKEN}"
      }
    }
  }
}
03

Exposed tools (102)

73 read · 23 write · 6 destructive. Blast radius: 6 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
AcmereadTalks to Acme
BrokenreadBroken
ClosedreadClosed
CursorlessreadCursorless
EmptyreadEmpty
EscapingreadEscaping
LeakyreadLeaks
ManualreadManual
MislabelledreadMislabelled
MockedreadMocked
PlaywrightreadDrive a browser
ReachingreadReaching
ReviewreadRead the diff beside the terminal.
ShippedreadShipped
ShutreadShut
SlackreadMessages and channels
StuckreadStuck
UnpackedreadUnpacked
archive_taskreadArchive a finished task (status must be done or cancelled). Archived tasks are hidden from default views but preserved and restorable.
backfill_connectionreadPull items from a connection now and turn them into tasks, without waiting for its poll
browser_findreadFind elements in your session browser pane whose accessible name contains some text.
browser_historyreadStep back or forward through your session browser pane
browser_interactreadAct on your session browser pane: click, hover, type, press a key, or scroll. Address the
browser_navigatereadNavigate your session browser pane to a URL. Opens the pane first if none is open.
browser_screenshotreadCapture your session browser pane as a PNG. This is the expensive last resort — reach for
browser_tabswriteList, add, close, or switch tabs in your session browser pane.
buildreadBuild the thing
creadtoo deep
create_projectwriteCreate a new project
create_taskwriteCreate a new task in a project
create_workflowwriteCreate a workflow: a graph of steps started by one trigger. Call describe_workflow_nodes
create_workspacewriteCreate a new workspace for organizing projects
delete_projectdestructiveDelete a project and all its tasks
delete_taskdestructiveDelete a task by ID
delete_workflowdestructiveDelete a workflow
delete_workspacedestructiveDelete a workspace
demoreadA demo tool
describe_workflow_nodesreadThe reference for writing a workflow: for each node type its config schema, the outputs later steps read, and the rules create_workflow checks; the edge schema; limits; the template namespaces; and a complete example workflow to adapt. Call it before create_workflow or update_workflow.
device_claimreadClaim a simulator for your session, booting it if needed. Every other device tool acts on
device_findreadFind elements on your claimed simulator whose label or accessibility identifier contains
device_installwriteInstall a built .app bundle on your claimed simulator. Takes a path to an already-built
device_interactreadAct on your claimed simulator: tap, swipe, type, press a hardware button, long-press, or
device_launchreadLaunch an installed app on your claimed simulator by bundle id.
device_listreadList the iOS simulators on this machine, with their state and which session (if any) has
device_logsreadRead log output captured from your claimed simulator since it was claimed.
device_open_urlreadOpen a URL on your claimed simulator — a web URL in Safari, or a custom scheme to exercise
device_releasereadRelease your claimed simulator so another session can use it. A simulator Vorn booted is
device_screenshotreadCapture your claimed simulator as a downscaled PNG. The expensive last resort — reach for
device_terminatedestructiveTerminate a running app on your claimed simulator by bundle id.
echoreadSays back what it was given.
execute_workflowwriteRun a workflow now, as if triggered manually. Supply values for any parameters the workflow declares (see the trigger node
export_workflowread
failsread
get_configreadGet the full Vorn configuration (projects, tasks, workflows, settings)
get_my_contextreadGet your current task and project context. Auto-detects based on your working directory.
get_page_textreadRead the visible text of your session browser pane. Use when you want to read an article
get_taskreadGet a task by ID
get_workflow_schedulewriteGet scheduler info for a workflow: execution log or next scheduled run. Requires the Vorn app to be running.
gonereadGone
hugereadd
import_workflowwrite
inspect_connector_packagewriteStart a connector package and read what it offers — its triggers, actions and required
install_connectorwriteInstall a connector from a pack file, from the catalog, or by a launch command, creating
keepreadKeep
kill_sessiondestructiveKill a terminal or headless session. Requires the Vorn app to be running.
launch_sessionreadLaunch an AI agent session (interactive terminal or headless). Requires the Vorn app to be running.
list_artifactsreadList the artifacts published by your session or in your project, newest first.
list_connectionsreadList configured connector connections, including when each last synced and the error
list_connector_actionswriteList the actions a connection can execute, with their input schemas. Call this before
list_connectorsreadList every connector and extension: the ones built into Vorn, the ones installable from a
list_projectsreadList all projects, optionally filtered by workspace
list_session_eventswriteList session lifecycle events (created, exited, renamed). Use for post-mortem analysis and multi-agent coordination.
list_sessionsreadList terminal sessions. Filter by status:
list_tasksreadList tasks, optionally filtered by project, status, assigned agent, or workspace. Archived tasks are excluded by default; pass include_archived=true to include them.
list_workflow_runsreadList workflow execution history. Filter by workflow_id or task_id; with neither, lists the runs parked on an approval gate, each waiting node saying what it asks.
list_workflowsreadList all workflows, optionally filtered by workspace
list_workspacesreadList all workspaces
oldreadOld
open_browser_panereadOpen the browser pane for your session, optionally at a URL. You do not need a person to
open_device_panereadOpen the device pane for your session so the person can watch. You do not need this to
publish_artifactwritePublish a page, doc or design for the person to review. It opens in your session browser
read_artifactreadRead the source of an artifact version: Markdown for a doc, HTML for a page or design.
read_artifact_commentsreadRead the comments the person left on an artifact: the quoted words or point each one is
read_console_messagesreadRead console output captured from your session browser pane since it opened.
read_network_requestsreadRead network requests captured from your session browser pane since it opened.
read_pagereadRead your session browser pane as an accessibility tree. Interactive elements carry a
read_screenreadRead your claimed simulator as an accessibility tree. Elements carry a
read_session_outputreadRead terminal output from a running session. Output is stored in a rolling 1000-line buffer with ANSI codes stripped.
rename_sessionwriteRename a terminal session. Changes the display name shown in the UI.
reorder_sessionsreadReorder terminal sessions in the grid. Provide session IDs in the desired display order.
resolve_gateread
run_connector_actionwriteExecute one action on a connection — create an issue, run a query, close a work item.
searchreadSearch everything
send_keywriteSend a single keystroke or key combo to a terminal session without appending Enter. Use for TUI interactions like selecting menu options (1, 2, y, n), pressing Escape, Ctrl+C, arrow keys, etc.
stop_workflow_runwriteStop a workflow run that is still going, including one parked on an approval gate. Kills the agents it started, marks its unfinished nodes, and closes the run as cancelled. Requires the Vorn app to be running.
structuredreadAnswers with structured content.
unarchive_taskreadRestore an archived task so it shows in default views again.
update_projectwriteUpdate a project
update_taskwriteUpdate a task
update_workflowwriteChange a workflow. Only the fields you pass change; nodes and edges each replace the
update_workspacewriteUpdate a workspace
write_to_terminalwriteSend input to a running terminal session. Requires the Vorn app to be running.
04

Trust audit

BLOCKgrade F · trust 39/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (16 observation(s))
Network
declared (14 observation(s))
Shell
declared (6 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (25)

CRITICALHard-coded secrets · secret.private_key · CWE-798, CWE-321
packages/core/crates/vornd/src/native/credential.rs:264
key_type("-----BEGIN OPENSSH PRIVATE KEY----- ED25519"),
CRITICALHard-coded secrets · secret.private_key · CWE-798, CWE-321
packages/core/crates/vornd/src/native/credential.rs:267
assert_eq!(key_type("-----BEGIN RSA PRIVATE KEY-----"), Some("rsa"));
CRITICALHard-coded secrets · secret.private_key · CWE-798, CWE-321
packages/core/crates/vornd/src/native/sessions.rs:2404
const KEY: &str = "-----BEGIN OPENSSH PRIVATE KEY----- never-shown";
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
packages/core/crates/remote/src/lib.rs:195
pub fn exec(
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
packages/core/crates/vorn-git/src/repo.rs:147
fn exec(
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/renderer/components/settings/SSHSettings.tsx:457
placeholder="~/.ssh/id_ed25519"
Why it matters. touches a credential store
MEDIUMInventory / provenance · inv.binary · CWE-1104
packages/core/crates/recovery/transcripts/claude.rec
claude.rec
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInventory / provenance · inv.binary · CWE-1104
packages/core/crates/recovery/transcripts/htop.rec
htop.rec
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInventory / provenance · inv.binary · CWE-1104
packages/core/crates/recovery/transcripts/vim.rec
vim.rec
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInventory / provenance · inv.binary · CWE-1104
resources/icon.icns
icon.icns
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
bench/suites/renderer.ts:131
const url = `http://127.0.0.1:${(server.address() as AddressInfo).port}/`
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/core/crates/connectors/src/install.rs:955
Source::parse(&json!({ "kind": "url", "url": "http://127.0.0.1:9/a.tgz" })).is_ok()
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/core/crates/extensions/src/bridge.rs:405
Some("http://127.0.0.1:1"),
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/core/crates/extensions/src/page.rs:238
"http://127.0.0.1:1",
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
packages/core/crates/term-proto/src/row.rs:411
Cell::wide("👩👩👧"),
MEDIUMHard-coded secrets · secret.aws · CWE-798, CWE-321
tests/fixtures/js-reference/connector-functions.json:9864
"input": "AKIAqnxn5cKLQDIIJ9Xs",
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/native-server-connectors.test.ts:198
secret: 'sealed-by-the-desktop'
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/vornd-size.test.ts:20
const TOKEN = 'desktop-launch-token'
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
tests/native-server-credentials.test.ts:28
const KEY = '-----BEGIN OPENSSH PRIVATE KEY----- ED25519 never-in-a-row'
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
delete_project, delete_task, delete_workflow, delete_workspace, device_terminate, kill_session
Why it matters. 6 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWInventory / provenance · inv.hidden_file · CWE-1104
.prettierignore
.prettierignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.yarnrc.yml
.yarnrc.yml
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
packages/core/crates/agents/shims/zsh/.zprofile
.zprofile
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
packages/core/crates/agents/shims/zsh/.zshenv
.zshenv
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
packages/core/crates/agents/shims/zsh/.zshrc
.zshrc
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose

Gates applied: critical_finding, no_behavioural_pass.

Audited 2026-10-12 · audit v0.4.1 · source sha 14a1de654c43full audit observations/trust-audit/mcp-server/vorn-run__vorn.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-1214a1de654c43BLOCKF39first audit
06

Questions

What is the @vornrun/connector-sdk MCP server?

Vorn - The agent command center

What tools does @vornrun/connector-sdk expose?

102 in total: 73 read-only, 23 that write, and 6 that can delete or overwrite (delete_project, delete_task, delete_workflow, delete_workspace, device_terminate). Every one is listed on this page with its risk.

Is @vornrun/connector-sdk safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (39/100) and found 6 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 6 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does @vornrun/connector-sdk need?

It reads FIXTURE_SECRET, GITHUB_TOKEN and VORN_EXTENSION_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does @vornrun/connector-sdk run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as vorn-website.

How current is this page?

The grade is for one exact copy of the source (14a1de654c43), read on 2026-10-12. The repository is watched and re-audited when it changes.

Advertisement