omarchy-mcp
omarchy-mcp

Dale a cualquier LLM compatible con MCP el control total de un escritorio Linux Omarchy.
omarchy-mcp convierte a los agentes de codificación de IA en operadores de escritorio genuinos. A través de un servidor MCP, un agente puede gestionar temas y apariencia, lanzar aplicaciones, tomar capturas de pantalla y grabaciones, controlar audio y red, leer el estado del sistema, manejar ventanas de Hyprland y diseños de mosaico, y orquestar espacios de trabajo multiagente completos: 108 herramientas en 15 módulos.
El proyecto se basa en una regla: una mutación del escritorio no tiene éxito solo porque se ejecutó un comando. Cada acción se confirma contra el estado medido del escritorio (geometría, foco, estado del servicio), para que los agentes puedan actuar de forma autónoma sin fallar silenciosamente.
Estado
Estado actual | |
Herramientas MCP | 108 herramientas registradas en 15 módulos |
Transporte | Servidor MCP stdio local |
Tiempo de ejecución | Node.js 20+ y TypeScript |
Escritorio | Omarchy con el puente de configuración Lua de Hyprland |
Mosaico | Diseño de cuadrícula/maestro nativo |
Seguridad | Herramientas destructivas deshabilitadas por defecto; autoprotección de la ventana anfitriona |
Verificación | Pruebas unitarias, prueba de humo MCP y registro de evidencia de escritorio en vivo |
Consulta COMMANDS.md para el estado de verificación herramienta por herramienta y ROADMAP.md para los hitos planificados.
Related MCP server: linux-computer-use
Por qué existe esto
Las herramientas de control de escritorio a menudo informan que una acción se envió sin comprobar si funcionó. Esto es particularmente poco fiable en los gestores de ventanas en mosaico, donde el foco, las reglas flotantes, el estado de pantalla completa, las reglas de espacio de trabajo y el ratón pueden cambiar el objetivo.
Este servidor añade el bucle de retroalimentación que faltaba:
Las mutaciones de ventanas informan del estado medido antes/después y un veredicto claro.
Los selectores explícitos de dirección y coincidencia reducen los errores relacionados con el foco.
Una protección de ascendencia de PID evita que el agente cierre su propia ventana anfitriona.
Las operaciones destructivas del sistema requieren una aceptación explícita en la configuración.
health_checkdiagnostica comandos faltantes, instalación de diseño y conectividad de escritorio.agent_gridconvierte una solicitud completa de espacio de trabajo multiagente en una operación MCP verificada.
Inicio rápido
Requisitos
Un escritorio Omarchy instalado
Hyprland con el puente de configuración Lua de Omarchy
Node.js 20 o más reciente
npm
Las funciones individuales también pueden usar wtype, nmcli, bluetoothctl, wpctl, grim y wl-copy. health_check informa qué comandos opcionales están disponibles.
Compilación
git clone https://github.com/hlsitechio/Omarchy-MCP.git
cd Omarchy-MCP
npm ci
npm run build
npm testEl punto de entrada de MCP es:
node /absolute/path/to/Omarchy-MCP/build/index.jsInstalar el diseño de cuadrícula nativo
Las herramientas de escritorio habituales pueden funcionar sin el diseño personalizado, pero el mosaico de cuadrícula/maestro determinista y agent_grid lo requieren.
install -Dm644 hypr/layouts.lua ~/.config/hypr/layouts.luaAsegúrate de que la configuración de Hyprland del usuario lo carga:
require("hypr.layouts")Luego recarga y comprueba la configuración:
hyprctl reload
hyprctl configerrorsLos archivos de paquete de Omarchy en /usr/share/omarchy deben permanecer intactos; el diseño pertenece a la configuración del usuario en ~/.config/hypr.
Conectar un cliente MCP
Cualquier cliente que admita servidores MCP stdio locales puede lanzar build/index.js.
OpenCode
Añade esto a ~/.config/opencode/opencode.json, reemplazando la ruta con la ruta absoluta del repositorio:
{
"mcp": {
"omarchy": {
"type": "local",
"command": [
"node",
"/absolute/path/to/Omarchy-MCP/build/index.js"
],
"enabled": true
}
}
}Claude Desktop
{
"mcpServers": {
"omarchy": {
"command": "node",
"args": ["/absolute/path/to/Omarchy-MCP/build/index.js"]
}
}
}Reinicia o vuelve a conectar un cliente MCP existente después de reconstruir para que recargue el esquema de herramientas.
Primeros comandos para probar
"Comprueba si mi Omarchy MCP está sano."
"Muestra cada ventana con su espacio de trabajo y geometría."
"Abre una cuadrícula 2x2 de OpenCode en el siguiente espacio de trabajo vacío."
"Coloca a Claude arriba a la derecha y a Codex abajo a la derecha."
"Mueve Firefox al espacio de trabajo 4 y confirma dónde terminó."
"Ajusta esta ventana a la esquina superior izquierda y dime su tamaño final."
"Enumera las redes Wi-Fi cercanas, pero no te conectes a nada."
Espacios de trabajo de agentes de codificación con un solo comando
agent_grid lanza ventanas TUI independientes de Omarchy, aplica el diseño de cuadrícula nativo, asigna celdas exactas o dispersas y verifica la clase de aplicación, el espacio de trabajo, el estado flotante y la geometría observada de cada ventana.
Para cuatro aplicaciones, pide una cuadrícula 2x2. Una cuadrícula literal 4x4 contiene 16 celdas y lanza 16 aplicaciones cuando está completamente poblada.
Cuadrícula homogénea
Comando:
Abre una cuadrícula 2x2 de OpenCode en este repositorio.
Argumentos equivalentes:
{
"agent": "opencode",
"cols": 2,
"rows": 2,
"workspace": "next_empty",
"cwd": "/path/to/project"
}Cuadrícula dispersa mixta
Comando:
Abre Claude en la parte superior derecha y Codex en la parte inferior derecha.
Argumentos equivalentes:
{
"cols": 2,
"rows": 2,
"placements": [
{ "agent": "claude", "position": "top_right" },
{ "agent": "codex", "position": "bottom_right" }
]
}Los agentes compatibles son OpenCode, Claude, Codex, Gemini, Copilot, Crush, Grok, Oh My Pi (omp) y Pi. Usa dry_run: true para validar un plan completo sin abrir ventanas.
Las asignaciones de esquinas con nombre y las asignaciones explícitas de fila/columna persisten cuando el usuario cambia de espacio de trabajo. Las ventanas en mosaico existentes se cuentan antes del lanzamiento y la solicitud se rechaza si excedería la capacidad de la cuadrícula.
Grupos de herramientas
Dominio | Herramientas | Ejemplos |
Control de ventanas y diseño | 24 | foco, tipo, teclas, ajuste, redimensionar, cerrar, espacios de trabajo, cuadrícula/maestro |
Elementos esenciales del escritorio | 11 | lanzamiento, capturas de pantalla, recordatorios, audio, brillo, estado del sistema |
Shell y UI local | 13 | notificaciones, DND, OSD, estado/configuración de la barra, inspección de plugins |
Ciclo de vida de plugins locales | 4 | detalle limitado, habilitar, deshabilitar y flujos de trabajo de clon local empaquetado |
Controles de dispositivo y audio | 7 | inventario/valores predeterminados de audio, fuente de medios, teclado y dispositivos de entrada |
Lanzadores locales | 3 | Archivos/Acerca de, archivos de configuración validados y herramientas de terminal en lista blanca |
Red y energía | 11 | Wi-Fi, Bluetooth, batería, perfiles de energía |
Tema y apariencia | 11 | temas, fondos locales, caché de miniaturas, fuentes |
Captura y medios locales | 7 | grabación, selectores OCR/QR, transcodificación, conversión ASCII |
Estado del sistema local | 6 | versiones, recursos, estado del monitor, conmutadores, preparación del hardware |
Operaciones de sistema restringidas | 5 | apagado, paquetes, actualización, actualización de configuración |
Valores predeterminados y pantalla | 3 | valores predeterminados de aplicaciones y tamaño de texto coordinado |
Salud y descubrimiento | 2 | diagnósticos de preparación, búsqueda de comandos instalados |
Orquestación de agentes de codificación | 1 | cuadrículas de agentes homogéneas y mixtas |
La lista completa y su estado de prueba en vivo se mantienen en COMMANDS.md.
Modelo de seguridad
Sin interpolación de shell
Los comandos se ejecutan con matrices de argumentos a través de execFile o spawn de Node; la entrada del usuario no se concatena en comandos de shell.
Las operaciones destructivas son opcionales
El apagado, el reinicio, la instalación de paquetes, las actualizaciones del sistema y las actualizaciones de configuración están deshabilitados por defecto. Habilítalos con:
mkdir -p ~/.config/omarchy-mcp
printf '%s\n' '{"enableDangerous": true}' > ~/.config/omarchy-mcp/config.jsonO establece la anulación a nivel de proceso:
OMARCHY_MCP_ENABLE_DANGEROUS=1 node build/index.jsUsa esta configuración solo para un cliente y una sesión en los que confíes.
Protección de la ventana anfitriona
Las operaciones de cierre de ventanas y otras de alto riesgo resuelven la ascendencia de PID del proceso anfitrión de MCP y se niegan a apuntar a su propia ventana de terminal. Se prefieren las direcciones de ventana explícitas para las mutaciones porque el foco de Hyprland puede seguir al ratón.
Resultados verificados
Las herramientas de mutación de ventanas devuelven estados como confirmed, split_confirmed, opened_but_not_split o not_detected, junto con el estado medido y una pista de recuperación cuando corresponde.
Arquitectura
MCP client
│ JSON-RPC over stdio
▼
MCP tool + Zod input validation
│
├── Omarchy CLI ───────────── themes, capture, power, applications
├── Hyprland Lua dispatcher ─ windows, workspaces, native layout
└── System CLIs ───────────── nmcli, bluetoothctl, wpctl, upower
│
▼
State reread + geometry/verdict engine
│
▼
Structured MCP result with STATUS, evidence, and HINTEstructura del código fuente:
src/index.ts server and tool registration
src/exec.ts shell-free process execution
src/hypr.ts desktop introspection and verification helpers
src/result.ts consistent MCP success/error results
src/config.ts safety configuration
src/tools/ tool domains
hypr/layouts.lua native deterministic grid/master layout
test/ automated and manual live testsLos envíos de ventanas de Hyprland usan la API Lua de Omarchy, por ejemplo:
hl.dsp.window.resize({ window = "address:0x...", x = 900, y = 700, relative = false })El diseño nativo admite modos grid y master además de mensajes en tiempo de ejecución para dimensiones forzadas, ordenación, intercambios, celdas dispersas y estado por espacio de trabajo.
Desarrollo y verificación
npm run build # TypeScript compilation
npm test # compilation + deterministic planner tests
npm run smoke # live local MCP/Omarchy smoke testLa prueba de humo es intencionalmente consciente del escritorio. Comprueba el registro de herramientas, el informe de salud, el acceso de solo lectura a Omarchy/Hyprland, la compuerta de operaciones destructivas y una ejecución en seco de agent_grid. Las mutaciones visuales se verifican manualmente en una sesión real de Omarchy y se registran en COMMANDS.md.
Para un ejercicio en vivo de cuadrícula de agentes:
node test/live-agent-grid.mjsEste comando abre ventanas reales y cambia el espacio de trabajo activo; no forma parte de npm test.
Solución de problemas
La nueva herramienta no aparece
Ejecuta npm run build y luego reinicia o vuelve a conectar el cliente MCP. Los clientes MCP normalmente almacenan en caché la lista de herramientas durante la vida del proceso del servidor.
health_check dice que el diseño de cuadrícula no está completamente instalado
Confirma que ~/.config/hypr/layouts.lua existe, que la configuración de Hyprland del usuario contiene require("hypr.layouts") y que hyprctl configerrors está vacío.
Un comando de ventana seleccionó el objetivo incorrecto
Llama a window_list y luego reintenta con la dirección devuelta en lugar de confiar en la ventana enfocada. Esto evita los cambios de foco de input:follow_mouse.
Una herramienta peligrosa dice que está deshabilitada
Ese es el valor predeterminado seguro. Habilítalo explícitamente solo después de revisar el modelo de seguridad.
Un comando de diseño informa una advertencia de Hyprland
Algunas operaciones nulas del compositor son esperables, por ejemplo, intercambiar una ventana en pantalla completa o intercambiar hacia una celda vacía. El resultado de MCP distingue estas advertencias de las mutaciones confirmadas.
Contribuciones
Las contribuciones son bienvenidas en implementación, verificación en vivo, documentación, pruebas, accesibilidad e ingeniería de lanzamiento. El repositorio proporciona formularios de incidencias estructurados para errores, propuestas de herramientas e informes de verificación, además de una lista de verificación de solicitudes de extracción alineada con el modelo de seguridad del proyecto.
Comienza con CONTRIBUTING.md y luego elige una vía de contribución de ROADMAP.md. Los cambios amplios o de alto riesgo deben comenzar con una incidencia para que el alcance, la evidencia y el comportamiento de recuperación puedan acordarse antes de codificar.
Documentos del proyecto
COMMANDS.md — registro de implementación y verificación en vivo
ROADMAP.md — hitos, prioridades y puertas de lanzamiento
CONTRIBUTING.md — flujo de trabajo de contribución y pruebas
GOVERNANCE.md — roles, decisiones, revisiones y lanzamientos
SECURITY.md — informes privados y límites de seguridad
CODE_OF_CONDUCT.md — estándares de participación comunitaria
AGENTS.md — contexto técnico para agentes de codificación que trabajan en el repositorio
Licencia
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides AI assistants with the ability to control Linux desktop environments through tools for file management, application launching, and system operations like clipboard access. It includes a multi-level security model to manage permissions for safe, elevated, and restricted actions.6MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to control Linux/X11 desktops by providing tools for taking screenshots, clicking, typing, and managing windows via AT-SPI and xdotool.3MIT
- AlicenseNot gradedqualityCmaintenanceEnables full Linux desktop control including windows, mouse, keyboard, clipboard, audio, screenshots, OCR, accessibility, and system management through MCP-compatible AI agents.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables computer control via mouse, keyboard, OCR, and screen/window management, similar to Anthropic's computer-use.MIT
Related MCP Connectors
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.
Runtime permission, approval, and audit layer for AI agent tool execution.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hlsitechio/Omarchy-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server