MCP.Market

Ugnas MCP server

by Omodaka9375·io.github.Omodaka9375/ugnas-mcp·v0.1.2·1 stars

Generic MCP server for UGREEN NAS (UGOS) over SSH — 39 tools with dry-run safety.

B83/100grade B
What users say
No reviews yet
Be the first
Safety scan
B83/100

full report

Adoption
Growing

1 stars79 downloads/wk

Reviews

Write one

Nobody has reviewed Ugnas yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Ugnas tools (39, 9 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • backup.createwrite action

    Archive a directory into a .tar.gz on the NAS. Mutating: returns a dry-run plan unless a confirmation token is supplied.

  • backup.list

    List backup archives (*.tar.gz, *.tgz, *.tar, *.zip) in a directory. Read-only.

  • backup.restore

    Extract a .tar.gz archive into a destination directory. Destructive: returns a dry-run plan unless a confirmation token is supplied.

  • backup.schedule

    Install a cron job that runs recurring backups. Mutating: returns a dry-run plan unless a confirmation token is supplied.

  • backup.verify

    Check a backup archive exists, compute its checksum, and list its entry count. Read-only.

  • docker.composewrite action

    Run `docker compose up -d` / `down` / `restart` for a stack directory on the NAS. Mutating: returns a dry-run plan unless a confirmation token is supplied.

  • docker.containers.inspect

    Return full `docker inspect` JSON for one container. Read-only.

  • docker.containers.list

    List Docker containers on the NAS with id, name, image, state and status. Read-only.

  • docker.containers.logs

    Fetch the most recent log lines from a container. Read-only.

  • docker.containers.removewrite action

    Delete a container. Destructive: returns a dry-run plan unless a confirmation token is supplied.

  • docker.containers.restart

    Restart a container. Mutating: returns a dry-run plan unless a confirmation token is supplied.

  • docker.containers.start

    Start a stopped container. Mutating: returns a dry-run plan unless a confirmation token is supplied.

  • docker.containers.stop

    Stop a running container. Mutating: returns a dry-run plan unless a confirmation token is supplied.

  • docker.images.list

    List locally stored Docker images. Read-only.

  • docker.images.pull

    Pull an image from its registry. Mutating: returns a dry-run plan unless a confirmation token is supplied.

  • docker.images.removewrite action

    Remove a local image. Mutating: returns a dry-run plan unless a confirmation token is supplied.

  • docker.networks.connect

    Attach a container to a network. Mutating: returns a dry-run plan unless a confirmation token is supplied.

  • docker.networks.createwrite action

    Create a Docker network. Mutating: returns a dry-run plan unless a confirmation token is supplied.

  • docker.networks.disconnect

    Detach a container from a network. Mutating: returns a dry-run plan unless a confirmation token is supplied.

  • docker.networks.inspect

    Return `docker network inspect` JSON (subnets, attached containers). Read-only.

  • docker.networks.list

    List Docker networks. Read-only.

  • docker.networks.removewrite action

    Remove a Docker network. Mutating: returns a dry-run plan unless a confirmation token is supplied.

  • files.copy

    Copy a file or directory within the NAS (or NAS-to-NAS). Mutating: returns a dry-run plan unless a confirmation token is supplied.

  • files.download

    Download a file from the NAS to the local machine via SFTP. Mutating: returns a dry-run plan unless a confirmation token is supplied.

  • files.find

    Search for files by name glob and/or extension across a directory tree. Read-only. Returns path, size, modified time, and extension for each match.

  • files.list

    List a directory on the NAS (name, type, size, owner, modified). Read-only.

  • files.mkdirwrite action

    Create a directory. Mutating: returns a dry-run plan unless a confirmation token is supplied.

  • files.move

    Move or rename a path on the NAS. Mutating: returns a dry-run plan unless a confirmation token is supplied.

  • files.removewrite action

    Delete a file or directory. Destructive: returns a dry-run plan unless a confirmation token is supplied.

  • files.sync

    Sync a path to another on the NAS (or NAS-to-NAS) with rsync. A trailing slash on the source means 'contents', otherwise 'the directory'. If rsync is missing on the NAS, pass fallback:'cp' to use a built-in copy fallback (no delete/mirror). Mutating: returns a dry-run plan unless a confirmation token is supplied.

  • files.thumbnail

    Generate a preview thumbnail of an image or video on the NAS with ffmpeg and download it locally. For videos a frame is captured (default 1s in). Mutating (it writes a file on the local machine): returns a dry-run plan unless a confirmation token is supplied.

  • files.uploadwrite action

    Upload a local file to the NAS via SFTP. Mutating: returns a dry-run plan unless a confirmation token is supplied.

  • files.usage

    Report disk usage (`du`) for a path, optionally per subdirectory. Read-only.

  • network.interfaces

    List host network interfaces with IPv4/IPv6 addresses and scopes. Read-only.

  • network.ports

    Show listening TCP/UDP sockets and the processes bound to them. Read-only.

  • network.routes

    Show the host IPv4 and IPv6 routing tables. Read-only.

  • system.info

    Report system details: OS release, CPU cores, load average, memory, temperatures, mounted disks, and Docker version. Read-only.

  • system.pools

    Report storage pool and RAID health: mdadm arrays and degradation state, LVM volume/logical/physical volumes, btrfs devices, block devices and filesystems. Read-only.

  • system.status

    Test connectivity to the configured UGREEN NAS over SSH and report hostname, kernel, uptime, and whether Docker is available. Read-only.

Public scan report

scanner v0.1.10 · 2026-10-28 · same rubric, same numbers if you re-run it

no findings
  • Code scan29 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 9 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 83/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Ugnas compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
83/100
higher than 65% of 48,255 servers
Tools
39
the typical server has 7
Tools that change things
23%
typical: 0%. Fewer write tools means less an agent can break
GitHub stars
1
more than 65% of 28,688 servers
Downloads a week
79
more than 57% of 12,191 servers with a package

What its tools let an agent do: 28 read · 2 create · 8 change · 1 delete

Install Ugnas in Claude Code, Cursor or VS Code

Runs npx -y ugnas-mcp on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add ugnas-mcp -- npx -y ugnas-mcp
Add to Cursor

What the publisher says

From the Ugnas repository's README, as published. We do not edit it. Read it on GitHub

ugnas-mcp

npx -y ugnas-mcp

A generic MCP (Model Context Protocol) server for UGREEN NAS devices running UGOS, talking to the NAS over SSH (with SFTP for file transfers).

Unlike most existing UGREEN NAS integrations, nothing here is hard-coded — no fixed IPs, subnets, usernames, or share names. Every target-specific value comes from your config, so the same server works for anyone's NAS.

What it does

Organized the way a NAS owner actually thinks about daily operations:

39 tools total. system.pools reports mdadm array + degradation state, LVM volume/logical/physical volumes, btrfs devices, block devices, and filesystems.

files.find searches a directory tree by name glob and/or extension (returns path, size, modified time). files.thumbnail renders a preview of an image or a video frame with ffmpeg on the NAS and downloads it locally — read-only with respect to your NAS data (only a /tmp scratch file is written and removed), but writing the thumbnail to the local machine is gated: the first call returns a dry-run plan, and you confirm with the token to write the local file. Requires ffmpeg on the NAS (present on UGOS by default).

files.list and files.find prefer GNU coreutils flags (ls --time-style=long-iso, find -printf); when those are unavailable (BusyBox), they fall back to ls -1p and find -exec stat so they keep working — with size/mtime zeroed out for plain ls where BusyBox can't report them.

files.sync and the rsync fallback

files.sync uses rsync for fast, resumable NAS↔NAS copies, with --delete mirroring and an rsync --dry-run pre-flight. rsync is not installed on UGOS by default, so:

command but adds a note telling you how to install rsync (Entware: opkg install rsync) or how to turn on the fallback. Nothing runs until you confirm.

  • Default (fallback: "refuse") — if rsync is missing, the dry-run plan still shows the rsync

note explains this, and warnings call out what the fallback can't do: no --delete mirroring, no rsync --dry-run, and extraArgs are ignored.

  • Opt in (fallback: "cp") — the tool instead falls back to a built-in cp -a copy. The plan's

So you opt in per call by passing fallback: "cp". Nothing changes unless you ask for it.

Safety model — dry-run first, then confirm

Every mutating tool has two phases:

a human summary, any warnings, and a short-lived confirmationToken.

  1. Call without a token → returns a dry-run plan: the exact shell commands it would run,

in 10 minutes) and the exact commands captured at plan time are executed.

  1. Call again with confirmToken → the token is validated (action-bound, single-use, expires

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Ugnas: common questions

Is Ugnas MCP server safe?
Mostly: it is graded B (83/100). Read the Ugnas safety report
How do I install Ugnas?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Ugnas need an API key?
Yes. The registry entry asks for UGNAS_KEY_PATH, UGNAS_PASSWORD.
Is Ugnas maintained?
The last commit was 16 days ago (2026-10-19). The latest release is v0.1.2.
How does Ugnas compare with other MCP servers?
safety score 83/100 (higher than 65% of 48,255 servers); tools 39 (the typical server has 7); tools that change things 23% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.

More from Omodaka9375 →