Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
Full macOS control — drive a Mac like a human: shell, AppleScript, files, and human-like GUI.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
MACCTL_SAFE_MODE, MACCTL_MODE, MACCTL_CONFIRM, MACCTL_PATH_ALLOWLIST, MACCTL_PROTECTED_PATHSNecesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"mac-control": {
"command": "npx",
"args": [
"-y",
"@dockndevai/mcp-mac-control"
],
"env": {
"MACCTL_SAFE_MODE": "your-value",
"MACCTL_MODE": "your-value",
"MACCTL_CONFIRM": "your-value",
"MACCTL_PATH_ALLOWLIST": "your-value",
"MACCTL_PROTECTED_PATHS": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add mac-control --env MACCTL_SAFE_MODE=your-value --env MACCTL_MODE=your-value --env MACCTL_CONFIRM=your-value --env MACCTL_PATH_ALLOWLIST=your-value --env MACCTL_PROTECTED_PATHS=your-value -- npx -y @dockndevai/mcp-mac-controlCompleta los valores vacíos antes de ejecutarlo.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"mac-control": {
"command": "npx",
"args": [
"-y",
"@dockndevai/mcp-mac-control"
],
"env": {
"MACCTL_SAFE_MODE": "your-value",
"MACCTL_MODE": "your-value",
"MACCTL_CONFIRM": "your-value",
"MACCTL_PATH_ALLOWLIST": "your-value",
"MACCTL_PROTECTED_PATHS": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"mac-control": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@dockndevai/mcp-mac-control"
],
"env": {
"MACCTL_SAFE_MODE": "your-value",
"MACCTL_MODE": "your-value",
"MACCTL_CONFIRM": "your-value",
"MACCTL_PATH_ALLOWLIST": "your-value",
"MACCTL_PROTECTED_PATHS": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
MACCTL_SAFE_MODE envMACCTL_MODE envMACCTL_CONFIRM envMACCTL_PATH_ALLOWLIST envMACCTL_PROTECTED_PATHS envEsta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub dockndevai, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (0.3.1) llegó al registro hace 41 días.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, Python MCP
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
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.
Local-only Python MCP server for the Files.com API.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
A Model Context Protocol server that gives an AI agent full control of a Mac — like a person sitting at it. Shell, AppleScript, files, processes, and human-like GUI control: move, click, double/right-click, drag, scroll, type, and press key combos — with a screenshot + window/screen-size perception loop.
⚠️ This server is full-control by default. It starts in
adminmode with command execution, deletes, and GUI input all enabled. That is powerful and dangerous: anything the agent reads (a web page, an email, a file) could contain a prompt injection that then runs arbitrary code on your Mac. Only connect it to an agent and content you trust. Set `MACCTL_SAFE_MODE=true` to flip the whole thing to safe-by-default. If you want safe-by-default as the baseline, use the sibling@dockndevai/mcp-macosinstead.
Part of the dockndevai MCP server suite.
Perceive — screenshot, get_screen_size, list_windows, get_frontmost_app, list_apps, system_info, list_directory, read_file, list_processes, get_clipboard
Operate the desktop like a human — move_mouse, click (left/right/double), drag, scroll, type_text, key_press (with ⌘/⌥/⌃/⇧), activate_app, quit_app, open, set_clipboard, notify, write_file
Full power — run_command (any program, no shell unless you ask for one), run_applescript (AppleScript/JXA — drive any scriptable app), delete_path (→ Trash), kill_process
The classic loop: screenshot → decide → click/type/drag/scroll → screenshot again.
npx -y @dockndevai/mcp-mac-control
macOS only. You'll need to grant the host app (Terminal, your IDE, Claude Desktop, …) macOS permissions the first time each capability is used:
screenshotclick, type_text, drag, scroll, key_press) and list_windowsbrew install cliclickclaude mcp add mac-control -- npx -y @dockndevai/mcp-mac-control
That's it — it's full-control by default. To scope it down, add env flags (see below). See docs/CLIENTS.md for Claude Desktop / Cursor / Codex / VS Code / Windsurf, and .env.example for every variable.
Full control needs no configuration. Everything below is about restricting it:
| Variable | Default | Effect |
|---|---|---|
MACCTL_SAFE_MODE | false | true → read-only, every power gated, confirmations on (safe-by-default) |
MACCTL_MODE | admin | read-only / read-write / admin — caps which tools are registered |
MACCTL_ALLOW_EXEC | true | shell / AppleScript / kill |
MACCTL_ALLOW_DELETE | true | delete to Trash |
MACCTL_ALLOW_INPUT | true | GUI input (mouse/keyboard) |
MACCTL_CONFIRM | false | true → destructive ops pause for human approval via MCP elicitation |
MACCTL_PATH_ALLOWLIST | (empty = anywhere) | confine file ops to these roots |
MACCTL_PROTECTED_PATHS | (empty) | roots readable but never modified/deleted |
MACCTL_COMMAND_ALLOWLIST | (empty = any) | restrict run_command to these programs |
MACCTL_DRY_RUN | false | validate + log writes without executing |
MACCTL_AUDIT_LOG | true | JSON audit line per guarded op, to stderr |
The policy engine (src/security.ts) is the same graduated model as the rest of the suite — this server just ships it wide open by default. See SECURITY.md.
For an extra layer on top of the static rules, this server can consult a local laya-guard daemon before running a high-risk tool (run_command, run_applescript, delete_path). The guard classifies the actual command — deterministic patterns plus a local decision model — as allow / confirm / block. It runs *after* the deterministic policy and can only tighten (add a confirm or block), never grant.
| Variable | Default | Effect |
|---|---|---|
MACCTL_GUARD_MODE | off | monitor (log what it would do) / enforce (block or require confirm) |
MACCTL_GUARD_URL | http://127.0.0.1:8799 | the local laya-guard daemon |
MACCTL_GUARD_TIMEOUT_MS | 2000 | per-check timeout |
MACCTL_GUARD_FAIL_CLOSED | confirm | when the daemon is unreachable in enforce mode: confirm or allow |
Run the daemon with pipx install laya-guard && laya-guard. Start in monitor to see what it catches, then switch to enforce.
npm install
npm run build echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | node dist/index.js # list tools npm test
MIT