Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Beschreibung vom Entwickler (englisches Original)
Run JavaScript and TypeScript in sandboxed V8 isolates with policy-controlled host capabilities.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"js": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"docker.io/wholelottahoopla/mcp-js:0.22.0"
]
}
}
}Führe das in deinem Terminal aus
claude mcp add js -- docker run -i --rm docker.io/wholelottahoopla/mcp-js:0.22.0In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"js": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"docker.io/wholelottahoopla/mcp-js:0.22.0"
]
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"js": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"docker.io/wholelottahoopla/mcp-js:0.22.0"
]
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto r33drichards bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.22.0) kam vor 29 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Docker auf deinem Computer.
In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, sync. labs
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Lipsync videos, dub them into other languages, make talking videos and open sync. Studio.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
mcp-v8 is a Model Context Protocol server, written in Rust, that lets an AI agent run JavaScript and TypeScript in a sandboxed V8 isolate. Instead of wiring up dozens of narrow tools, you give the agent one tool — run_js — and it writes code: looping, branching, transforming data, and calling other tools, often with far fewer tokens than equivalent tool-call chains.
In its default *stateful* mode the V8 heap is saved as a content-addressed snapshot, so an agent can build up state across many turns. Host capabilities (network, filesystem, subprocess, WebAssembly, module imports, and calls to other MCP servers) are all off by default and unlocked only by explicit OPA/Rego policies.
fetch, filesystem, subprocess, and external imports are denied until you grant them via policy.--sandbox-manifest confines the whole process with a nono capability manifest (Landlock on Linux, Seatbelt on macOS) as defense in depth beneath the policy layer.Maintainers: see Publishing to the MCP Registry for the Docker-backed registry manifest and automated release process.
Full documentation lives at [https://r33drichards.github.io/mcp-js/](https://r33drichards.github.io/mcp-js/) (built from site-docs/) — tutorials, how-to guides, concept explanations, and complete reference for the CLI flags, HTTP API, and MCP tools.
Join the mcp-js Discord community for questions, examples, and project discussion.
# Server
curl -fsSL https://raw.githubusercontent.com/r33drichards/mcp-js/main/install.sh | sudo bash
curl -fsSL https://raw.githubusercontent.com/r33drichards/mcp-js/main/install-cli.sh | sudo bash
Installs to /usr/local/bin. Supported platforms: Linux x86_64/arm64 and macOS Apple Silicon. You can also nix run github:r33drichards/mcp-js, use Docker (see the docker-compose.*.yml stacks), or build from source.
Prefer a hosted server? Deploy on Railway — the repo's railway.json configures the build, healthcheck, and restart policy, and RAILWAY.md walks through the volume, variables, and one-click template setup.
# Claude Code (stdio)
claude mcp add mcp-v8 -- mcp-v8 --directory-path /tmp/mcp-v8-heaps # stateful claude mcp add mcp-v8 -- mcp-v8 --stateless # stateless
For Claude Desktop / Cursor, add to the client's mcpServers config:
{ "mcpServers": { "js": { "command": "mcp-v8", "args": ["--stateless"] } } }
Then ask the agent: *"Run this JavaScript: console.log([1,2,3].map(x => x*2))"*.
mcp-v8 --stateless --http-port 8080
/api/exec accepts either a JSON body or a raw-body file upload — send the script as the request body with a non-JSON Content-Type (curl --data-binary @script.js -H 'Content-Type: application/javascript' .../api/exec). The run_js MCP tool can also read a script from a path on the server itself via an optional file parameter — off by default, enabled with --allow-run-js-file or a run_js_file policy.
See the Quick Start tutorials and the transports guide for more.
Every flag can also live in one TOML or JSON file passed via --config (or MCP_V8_CONFIG), including structured sections that replace the separate WASM / MCP-server / fetch-header / policy JSON files:
# server.toml — run with: mcp-v8 --config server.toml
http_port = 8080 heap_store = "dir" heap_dir = "/var/lib/mcp-v8/heaps"
[policies.fetch] policies = [{ url = "file:///etc/mcp-v8/fetch.rego" }]
Precedence is CLI flag > MCP_V8_* env var > config file > default. See the configuration file reference.
deno_core); TypeScript types are stripped with SWC (type removal, not type checking).setTimeout/clearTimeout.console.log/info/warn/error/debug/trace, streamed to storage and readable with line- or byte-based pagination.run_js returns an execution ID; poll status and stream output; cancel running work.WebAssembly API, plus pre-loaded modules (--wasm-module) exposed as globals and advertised to clients as runjs__wasm__ stub tools.npm:, jsr:, and URL imports fetched at runtime (policy-gated).fetch, filesystem (fs), and subprocess access, each checked against a Rego policy per operation; plus header/OAuth injection for fetch.mcp.callTool() / mcp.listTools().instructions and the run_js description (--instructions, --run-js-description).--config file can set every flag (precedence: CLI flag > env var > config file > default).--sse-port, served by a vendored rmcp 0.1.5), with a REST sidecar and OpenAPI spec.io.modelcontextprotocol/tasks, SEP-2663) over Streamable HTTP / stdio: clients that declare the extension run run_js as a task (tasks/get, tasks/cancel), ideal for long-running calls. (The legacy SSE transport does not offer tasks.)These globals are available inside run_js (capability globals require a policy):
| Global | Purpose | Gated by |
|---|---|---|
console, setTimeout | Output & timers | — |
fetch(url, opts?) | HTTP requests (Fetch API) | fetch policy |
fs.* | File I/O (readFile, writeFile, …) | filesystem policy |
child_process / Deno.Command | Run subprocesses | subprocess policy |
import (npm: / jsr: / URL) | External ES modules | --allow-external-modules + modules policy |
WebAssembly, __wasm_ | Run/instantiate WASM | — |
mcp.callTool/listTools/servers | Call upstream MCP servers | mcp_tools policy |
See Concepts → Security policies for the policy model.
| Tool | Mode | Description |
|---|---|---|
run_js | both | Stateful: queue execution → {execution_id}. Stateless: run and return {output, error?}. |
get_execution | stateful | Poll status/result of an execution. |
get_execution_output | stateful | Read paginated console output (line or byte). |
cancel_execution | stateful | Terminate a running execution. |
list_executions | stateful | List executions and their status. |
list_sessions, list_session_snapshots | stateful | Browse named sessions and history. |
get_heap_tags, set_heap_tags, delete_heap_tags, query_heaps_by_tags | stateful | Tag and search heap snapshots. |
Full parameters: MCP tools reference.
The server natively implements the MCP tasks extension (io.modelcontextprotocol/tasks, SEP-2663) via rmcp, over both the Streamable HTTP and stdio transports. The initialize result advertises the extension under capabilities.extensions, and a client that declares the same extension in its own capabilities gets task execution for run_js:
// client initialize params
{ "capabilities": { "extensions": { "io.modelcontextprotocol/tasks": {} } } }
// → tools/call { name: "run_js", ... } returns immediately with a task: // { "resultType": "task", "taskId": "…", "status": "working", … }
The client then polls tasks/get (a completed task carries the tool result inline, exactly what the call would have returned) and stops a run with tasks/cancel. Clients that do not declare the extension get a synchronous result, unaffected.
mcp-v8 is configured entirely through CLI flags — storage backend, transport, execution limits, policies, fetch-header injection, WASM modules, clustering, JWKS auth, and the prompt/tool-description overrides. The complete, always-current list is the generated CLI flags reference.
mcp-v8 --help # all flags
mcp-v8 --print-openapi # print the REST OpenAPI spec
Use --mcp-config to connect to a protected Streamable HTTP MCP server with the OAuth 2.1 authorization-code flow. This setting is JSON-only; it is not available through the compact --mcp-server syntax.
[
{ "name": "protected", "transport": "http", "url": "https://mcp.example.com/mcp", "auth": { "type": "oauth_browser", "scope": ["tools.read", "tools.call"], "client_id": "optional-registered-client-id", "client_secret": "optional-client-secret", "redirect_port": 48123, "token_cache": "/home/alice/.cache/mcp-js/oauth-protected.json" } } ]
All fields inside auth other than type are optional. Without client_id, the server uses OAuth dynamic client registration; otherwise it uses the provided registered client. scope is an array of requested scopes.
Protected-resource, authorization, token, and dynamic-registration endpoints require HTTPS unless they are loopback endpoints. This permits local OAuth test servers while refusing plaintext remote authorization infrastructure.
On first use, or when no usable cached creden
Nur der Anfang wird gezeigt; den Rest findest du im Repo