Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Real Linux and Windows desktop VMs for AI agents: exec, files, computer-use and snapshots via MCP.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
CAPSULATE_API_KEY, CAPSULATE_BASE_URL, CAPSULATE_TEAM_IDValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"capsulate": {
"command": "npx",
"args": [
"-y",
"@capsulate/mcp"
],
"env": {
"CAPSULATE_API_KEY": "your-value",
"CAPSULATE_BASE_URL": "your-value",
"CAPSULATE_TEAM_ID": "your-value"
}
}
}
}Run this in your terminal
claude mcp add capsulate --env CAPSULATE_API_KEY=your-value --env CAPSULATE_BASE_URL=your-value --env CAPSULATE_TEAM_ID=your-value -- npx -y @capsulate/mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"capsulate": {
"command": "npx",
"args": [
"-y",
"@capsulate/mcp"
],
"env": {
"CAPSULATE_API_KEY": "your-value",
"CAPSULATE_BASE_URL": "your-value",
"CAPSULATE_TEAM_ID": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"capsulate": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@capsulate/mcp"
],
"env": {
"CAPSULATE_API_KEY": "your-value",
"CAPSULATE_BASE_URL": "your-value",
"CAPSULATE_TEAM_ID": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
CAPSULATE_BASE_URL envCAPSULATE_TEAM_ID envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified with the GitHub account capsulatedev, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: CAPSULATE_API_KEY
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.7.0) reached the registry 24 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Dechonet MCP
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
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.
30 security tools for AI agents: phishing links, exposure maps, DNS, SSL, PQC, history, pivots.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
The Capsulate Model Context Protocol server. Give Claude Code, Claude Desktop, Cursor, Windsurf, Antigravity, any MCP client, the ability to launch and drive isolated cloud computers ("capsules"), including real Linux and Windows desktops that a person can watch live and take over.
claude mcp add capsulate -e CAPSULATE_API_KEY=cap_live_... -- npx -y @capsulate/mcp
{
"mcpServers": { "capsulate": { "command": "npx", "args": ["-y", "@capsulate/mcp"], "env": { "CAPSULATE_API_KEY": "cap_live_…" } } } }
To keep the key out of the config file, put it in a file and point at it with CAPSULATE_API_KEY_FILE instead. The file holds either the bare key or a CAPSULATE_API_KEY=cap_live_... line.
For a self-hosted or non-default deployment, also set "CAPSULATE_BASE_URL": "https://api.your-domain".
| Tool | What it does |
|---|---|
capsulate_launch | Launch a capsule and wait until ready |
capsulate_list / capsulate_get | Inspect capsules |
capsulate_destroy | Tear a capsule down |
capsulate_exec | Run a command (argv array) |
capsulate_run_code | Run a python/node/bash snippet |
capsulate_write_file / capsulate_read_file | File I/O |
capsulate_set_env | Set environment variables |
capsulate_snapshot | Snapshot a capsule |
capsulate_catalog | Discover launchable templates & bundles |
| Tool | What it does |
|---|---|
capsulate_screenshot | See the screen (returns an image; format: "jpeg", a scale or a region make it smaller) |
capsulate_screen_info | The screen's size, the pointer and the active window |
capsulate_click / capsulate_move / capsulate_drag / capsulate_scroll | Pointer |
capsulate_type / capsulate_key | Keyboard |
capsulate_ui_tree | Read the accessibility tree (AT-SPI on Linux, UI Automation on Windows) with clickable centers |
capsulate_find_element / capsulate_wait_element | Find or wait for an element by role, name or text |
capsulate_click_element | Find an element and click it: the reliable way to press a named button |
capsulate_clipboard | Read or set the clipboard (paste long text instead of typing it) |
capsulate_element | Act on an element without coordinates: set its value, clear, toggle, expand or collapse, invoke, select an option by name, focus, scroll it into view |
capsulate_windows | List windows or bring one to the front |
capsulate_window | Minimize, maximize, restore, close, move or resize a window |
capsulate_open | Open a URL, a file or an app by name, and wait for its window |
capsulate_wait_for | Wait for an element to appear, go away, be enabled or show a text, for a window, or for the screen to settle |
capsulate_ocr | Read the text on screen when the UI tree has no labels |
capsulate_run_actions | Several steps in one call, back to back, stopping at the first that fails, with a look at the end |
The input verbs accept screenshot: true (and screenshotDelayMs) to return the frame after the action. Every tool works the same on Linux and Windows desktops; a multi-line editor is a document on Windows and a text on Linux.
The capsule's own Chrome, driven through the page's structure at page speed, on the same screen the person watches: capsulate_browser_open, _navigate, _tabs, _snapshot (an outline with refs), _click, _fill (the value is never echoed), _select, _press, _scroll, _wait, _text, _eval and _screenshot.
A desktop capsule has one shared screen. The AI drives it through the tools above while a person watches the same screen in a browser, sees the AI's pointer, clicks and keys drawn over it, reads its narration, and can take the screen at any time.
| Tool | What it does |
|---|---|
capsulate_console_link | A signed, expiring URL that opens the live screen in any browser with no login (control or view) |
capsulate_say | Show one line of narration on the live console |
capsulate_control | Who is driving: free, agent (the AI) or human; take or release the screen; set the pace (natural or presentation) for a person watching |
capsulate_handoff | Hand the screen to the person with a note ("Please sign in"), wait until they hand it back, get their note |
capsulate_wait_for_handback | Keep waiting for the person to hand the screen back |
While a person holds the screen, the AI's input verbs answer human_in_control and nothing reaches the capsule; the tool result says to wait with capsulate_wait_for_handback. Reading the screen (screenshot, UI tree, OCR) keeps working. Each AI input holds the screen for 45 seconds; the console is view-only for everyone else during that time and turns interactive again when the AI goes quiet or releases.
| Tool | What it does |
|---|---|
capsulate_lesson | Learn a job on a capsule: a person teaches on the shared screen (clicks, keys and typing with the elements they hit, passwords masked, optionally video and voice) or the AI teaches itself toward a goal; get reads the digest |
capsulate_skills | The team's skills: save one from a lesson's digest, versions, approve, save an environment, rehearse, weekly rehearsals |
capsulate_skill_run | Run a skill's procedure in the background; it asks you where the skill leaves a decision open |
capsulate_inbox | Runs that wait, versions to approve, failed rehearsals and skills whose software changed |
The server's instructions carry the learning protocol: explore with a goal, note what you learn, finish, read the digest, save the skill; next time launch its environment and run its procedure.
"Spin up an
ubuntu-22.04-headlesscapsule, run my test suite, and show me the output."
The model calls capsulate_launch, then capsulate_exec, and reports back.
"Launch an
ubuntu-22.04-desktopcapsule, give me a live link, and find the latest Firefox release
notes. If anything needs a login, hand it to me."
The model launches the desktop, calls capsulate_console_link and gives you the URL, narrates with capsulate_say as it works, and calls capsulate_handoff when it needs you. You press Done, hand back in the live console when you finish, and it carries on.
npm run build # from the repo root: sdk, ai-tools, cli, mcp
node apps/mcp/scripts/smoke-live.mjs # live tools end to end against a fake API