Node/TypeScript MCP server for automating a single UGOS PRO NAS target through the local agent-browser CLI.
- Login to one configured NAS target
- Persist encrypted browser session state
- Expose the same MCP tools over
stdioand optional Streamable HTTP - Explore the desktop and Docker UI in read-only mode
- List Docker containers, inspect details, read logs, update/restart/force-close/delete containers, and manage MCP-backed terminals
- Read Docker application system logs with search and pagination
- Review image-driven container settings, create new Docker containers, and edit existing containers through limited, recreate, or duplicate flows
- Search Docker images, start downloads, list local images, delete local images, and import one local image from a NAS
.tarpath
export NAS_UGOS_TARGET=192.168.50.80:9999
export NAS_UGOS_USERNAME=admin
export NAS_UGOS_PASSWORD=secret
export NAS_SESSION_KEY=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdefOptional:
export NAS_SESSION_DIR=.sessions
export NAS_SESSION_NAME=nas-192-168-50-80-9999
export NAS_HTTP_HOST=127.0.0.1
export NAS_HTTP_PORT=4010npm install
npm run build
node dist/src/server.js --http-port 4010Without --http-port, the server runs on stdio only.
nas.loginnas.session_statusnas.explore.desktopnas.explore.dockernas.docker.containers.listnas.docker.containers.getnas.docker.containers.logs.getnas.docker.system_logs.listnas.docker.containers.createnas.docker.containers.editnas.docker.containers.activatenas.docker.containers.deactivatenas.docker.containers.update_imagenas.docker.containers.restartnas.docker.containers.force_closenas.docker.containers.deletenas.docker.images.searchnas.docker.images.downloadnas.docker.images.local.listnas.docker.images.local.deletenas.docker.images.local.importnas.docker.terminals.listnas.docker.terminals.createnas.docker.terminals.readnas.docker.terminals.writenas.docker.terminals.close
npm test
npm run buildContainer creation should be treated as effectively immutable. UGOS supports only limited in-place edits after creation, so broader changes should be handled by duplicating the original settings or using the recreate-current workflow with caution.