Atlas / MCP servers / withruntime / runtime

runtimeBLOCK

mcp/withruntime/runtime

Sandboxes for AI agents: TypeScript, Python, Go, Java and Ruby SDKs, the runtime CLI, an MCP server, and agent integrations. Firecracker microVMs.

Verdict
BLOCK
Grade
F
Trust score
44 /100
Exposed tools
5 3r · 2w · 0d
Transport
stdio · streamable-http
License
Apache-2.0
Stars
1
01

Overview

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

The SDKs, CLI, MCP server and agent integrations for Runtime: sandboxes for AI agents. Each sandbox is a Firecracker microVM with its own Linux kernel, started from one call.

npm install withruntime   # TypeScript SDK, the `runtime` CLI and the MCP server
pip install withruntime   # Python SDK, sync and async
import { Sandbox } from "withruntime";

await using sbx = await Sandbox.create();
const result = await sbx.exec("python3 -c 'print(6 * 7)'");
console.log(result.exitCode, result.stdout);
from withruntime import Sandbox

with Sandbox.create() as sbx:
result = sbx.exec("python3 -c 'print(6 * 7)'")
print(result.exit_code, result.stdout)

The client reads RUNTIME_API_KEY, or the connection npx withruntime login saved on this machine. A new account starts on a free trial with no card. The quickstart takes it from there.

What is here

Read from source at commit 743a1817ec28OBSERVED · 2026-10-11
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 (npm)
claude mcp add withruntime -- npx -y [email protected] mcp
03

Exposed tools (5)

3 read · 2 write · 0 destructive.

ToolRiskDescription
runtime_connectreadConnect Runtime on this machine with a browser approval. The first call returns a link and a code: show them to the person you work for and ask them to approve. Call again after they have; it waits up to 45 seconds for the approval, then Runtime
runtime_execwriteRun a shell command (bash) in the sandbox and return its exit code, stdout and stderr.
runtime_list_filesreadList a directory in the sandbox: each entry
runtime_read_filereadRead a text file from the sandbox.
runtime_write_filewriteCreate or replace a text file in the sandbox, making parent directories.
04

Trust audit

BLOCKgrade F · trust 44/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 surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (11 observation(s))
Network
declared (7 observation(s))
Shell
declared (9 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (25)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
packages/cloud-sdk/src/cloudflare/index.ts:226
exec(command: string, options?: ExecOptions) {
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/cloud-sdk/src/modal/index.ts:425
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/cloud-sdk/src/modal/index.ts:429
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/cloud-sdk/src/sprites/index.ts:314
exec(command: string, options?: ExecOptions) {
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
packages/cloud-sdk/src/ssh.ts:24
it to ~/.ssh/config
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
packages/cloud-sdk/src/ssh.ts:44
const path = join(dir, "id_ed25519");
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
packages/cloud-sdk/src/ssh.ts:222
: `Added Include "${file}" to ~/.ssh/config. Connect with: ssh <sandbox id or name>.runtime`,
Why it matters. touches a credential store
MEDIUMInventory / provenance · inv.symlink · CWE-1104
integrations/codex/skills
integrations/codex/skills
Why it matters. link not followed
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
packages/cloud-sdk/scripts/ai-harness-e2e.ts:278
console.log(`note: a WebSocket with the token in its query: ${queryOutcome}`);
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
packages/cloud-sdk/src/cli.ts:1682
print(token.token, token);
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/cloud-sdk/tests/compat/codesandbox-persistence.test.ts:9
const first = new SandboxClient(world.native, { TOKEN: "private-session-secret" });
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/cloud-sdk/tests/process-write-progress.test.ts:33
apiKey: "fixture-process-write",
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/cloud-sdk/tests/product-aliases.test.ts:5
const runtime = new Runtime({ apiKey: "rk_product_alias_test" });
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/cloud-sdk/tests/product-aliases.test.ts:33
apiKey: "rk_product_alias_test",
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/cloud-sdk/tests/sandbox-create-request-options.test.ts:51
apiKey: "rk_create_request_fixture",
LOWCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
sdks/python/tests/test_blaxel.py:1537
pages = importlib.import_module(prefix + '.core.client.pagination')
LOWCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
sdks/python/tests/test_blaxel.py:1538
model = importlib.import_module(prefix + '.core.client.models.pagination_meta').PaginationMeta
LOWCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
sdks/python/tests/test_e2b_exports.py:101
module = importlib.import_module(f"withruntime.e2b.{path}")
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
packages/cloud-sdk/examples/verify-frameworks.ts:181
{ session_id: id, chars: "exec(open('invoice.py').read())\n", yield_time_ms: 1500 },
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
sdks/python/tests/test_proxy.py:40
accept = base64.b64encode(hashlib.sha1(
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/cloud-sdk/oracle/context.mjs:10
process.env.RUNTIME_ORACLE_RUNTIME_ROOT ?? fileURLToPath(new URL("../../../", import.meta.url)),
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/cloud-sdk/tests/blaxel/fake.ts:3
import { type Runtime } from "../../src/index";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/cloud-sdk/tests/blaxel/fake.ts:4
import { ConflictError, InvalidRequestError, RuntimeError } from "../../src/errors";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/cloud-sdk/tests/blaxel/filesystem.test.ts:5
import { toBlaxelPath, toRuntimePath } from "../../src/blaxel/context";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/cloud-sdk/tests/blaxel/filesystem.test.ts:6
import type { ResponseError } from "../../src/blaxel/index";

Gates applied: no_behavioural_pass.

Audited 2026-10-11 · audit v0.4.1 · source sha 743a1817ec28full audit observations/trust-audit/mcp-server/withruntime__runtime.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-11743a1817ec28BLOCKF44first audit
06

Questions

What is the runtime MCP server?

Sandboxes for AI agents: TypeScript, Python, Go, Java and Ruby SDKs, the runtime CLI, an MCP server, and agent integrations. Firecracker microVMs.

What tools does runtime expose?

5 in total: 3 read-only, 2 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is runtime safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (44/100) and found 7 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What credentials does runtime need?

It reads BL_API_KEY, DAYTONA_API_KEY, E2B_API_KEY, RUNTIME_API_KEY, RUNTIME_AUTH_URL, RUNTIME_ID_TOKEN_REQUEST_TOKEN, RUNTIME_ID_TOKEN_REQUEST_URL, RUNTIME_WEBHOOK_SECRET and 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 runtime run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as @runtime/typescript-config at 0.0.0.

How current is this page?

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

Advertisement