Mmcp.market

YunoHost MCP server

by imattau·io.github.imattau/yunohost-mcp·v0.8.46

Nostr-authenticated MCP server for secure YunoHost administration.

A92/100grade A
What users say
No reviews yet
Be the first
Safety scan
A92/100

full report

Adoption
New

0 stars

Reviews

Write one

Nobody has reviewed YunoHost MCP yet.

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

YunoHost MCP tools (100, 20 write)

write = sends, deletes, buys or posts

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

  • app_change_url

    Move an installed YunoHost app to a new domain and/or path, in place.

  • app_config_get

    Read an installed app's config-panel settings.

  • app_config_set

    Set one config-panel setting on an installed app. Requires confirmation.

  • app_info

    Return details (manifest, settings, permissions, upgradability) for one installed app.

  • app_install

    Install a YunoHost app.

  • app_removewrite action

    Remove an installed YunoHost app. Requires confirmation and a recent backup archive.

  • app_resources

    Return the declared YunoHost resources for one installed app.

  • app_setting_get

    Read one key from an installed app's settings.yml.

  • app_setting_setwrite action

    Write or delete one key in an installed app's settings.yml. Requires confirmation.

  • app_upgrade

    Upgrade one installed YunoHost app, or all upgradable apps if none is specified.

  • approve_operation

    Owner co-signature (PLAN.md Phase 13; owner-approval-plan.md's `solo` profile for v1) for a pending high-risk operation (system. upgrade, backups.restore - see policy/rules.py's require_owner_signature). Marks the confirmation approved so its original requester can then execute it by calling the same tool again with this confirmation_id - approving does not execute anything itself.

  • apps_list

    List installed YunoHost apps.

  • audit_get

    Return one audit trail entry by id. Requires Scope.AUDIT_READ (app-admin and above) plus owner co-signature per call: unlike other confirmed reads, this isn't gated for the caller's own protection - it's gated because the trail exposes every *other* identity's calls too, so the owner approves each read rather than it being a standing grant.

  • audit_list

    List audit trail entries, newest first. Requires Scope.AUDIT_READ (app-admin and above) plus owner co-signature per call - see audit_get.

  • backup_createwrite action

    Create a new local backup archive.

  • backup_deletewrite action

    Permanently delete one local backup archive. Requires owner approval.

  • backup_info

    Details for one backup archive - creation time, description, size, and its on-disk `path` - and, with `with_details=True`, the apps and system parts it actually contains. Read-only. There is no MCP tool to fetch the archive's bytes: `path` is where an admin retrieves it from (e.g. over SSH/SCP/SFTP) - YunoHost's own backup_download is an HTTP-file-serving action tied to its REST API, not something

  • backup_restore

    Restore from a local backup archive. Requires confirmation.

  • backups_list

    List available backup archives.

  • diagnosis_get

    Return the current (cached) aggregated diagnosis report.

  • diagnosis_runwrite action

    Trigger a fresh YunoHost diagnosis run. Can take real time (network/port checks).

  • domain_add

    Register a new domain or subdomain on this YunoHost server - a prerequisite for app_install's `domain` question, which only accepts already-registered domains. Always adds a plain custom domain, never subscribes to a new top-level DynDNS domain (nohost.me/noho.st/ynh.fr) even if the name would otherwise qualify - a same-host subdomain of an already-registered DynDNS domain (e.g. new-app.example.no

  • domain_cert_info

    Read-only certificate status for an already-registered domain (must already appear in domains_list()): CA type/name, remaining validity in days, a style/summary badge, whether it's ACME-eligible right now, and whether a wildcard covers it - the checks worth doing before calling domain_cert_install.

  • domain_cert_install

    Issue or renew a certificate for an existing domain (must already be registered - see domain_add/domains_list) via YunoHost's own certificate-install path, not a remove-and-recreate of the domain.

  • domain_dns_push

    Push domain_dns_suggest's recommended records to the domain's configured DNS registrar. Requires a registrar to already be set up via the domain's own `dns.registrar` config panel (`app_config_get`/ `app_config_set` don't cover per-domain config panels - this fails with a clear error if none is configured, it does not silently no-op). Call domain_dns_push_preview first, always - it shows the exact

  • domain_dns_push_preview

    Compute what domain_dns_push would actually change on the domain's configured DNS registrar - a create/update/delete/unchanged diff against the records currently live there - without touching anything. Read-only; requires the domain to already have a registrar configured (fails clearly if not - see domain_dns_push's docstring). Without `force`, the diff only considers records YunoHost itself previ

  • domain_dns_suggest

    Suggest DNS records for an already-registered domain - basic A/AAAA, mail (MX/SPF/DKIM/DMARC), and any extra records YunoHost's installed apps contribute - as a formatted zone-file-style block of text, the same output `yunohost domain dns suggest` prints. Read-only, computed locally from this server's own state; does not contact or compare against the domain's actual registrar (see domain_dns_push

  • domain_removewrite action

    Remove a registered domain. Refuses to run - and lists the offending apps - if any app is still installed on this domain, unless `remove_apps=True`, which removes those apps too as part of the same call (each one via its own app_remove-equivalent path, with the same data loss that implies - check apps_list for this domain first). Cannot remove the main domain while any other domain still exists. `

  • domains_list

    List domains configured on this YunoHost server.

  • execute_planwrite action

    Execute a plan previously returned by plan_app_upgrade(). Re-checks apps.upgrade's hard policy at execute time, not just at plan time - state (free space, backup age) may have drifted in between.

  • firewall_close

    Close a port. `protocol` is "tcp" or "udp"; `port` may be a dash-separated range. Requires confirmation and owner co-signature - see the warning in the confirmation plan before approving this on port 22/80/443.

  • firewall_is_open

    Return whether a port is open. `protocol` is "tcp" or "udp". Read-only.

  • firewall_list

    List firewall rules. `protocol` is "tcp" or "udp" (ignored if `raw`); `forwarded` lists UPnP-forwarded ports instead of open ports. Read-only.

  • firewall_open

    Open a port. `protocol` is "tcp" or "udp"; `port` may be a dash-separated range. Requires confirmation and owner co-signature - a wrong port/protocol here is externally visible and reachable, same risk tier as system_upgrade/backup_restore.

  • firewall_reload

    Re-apply the full current firewall rule set. Requires confirmation and owner co-signature, same tier as firewall_open/firewall_close - this is the point at which any pending rule change actually takes effect.

  • health_check

    Return a summary YunoHost diagnosis report.

  • http_probe

    Probe an HTTP(S) endpoint and return status, timing, and content type.

  • incident_snapshot

    Collect the main read-only evidence for one incident time window.

  • journal_query

    Query allowlisted system journals, including kernel, OOM, SSH, fail2ban, firewall, systemd, and application units.

  • memory_context

    Assemble bounded working context from Polypack.

  • memory_feedback

    Record whether a Polypack memory helped this authenticated agent.

  • memory_get

    Return one Polypack memory by exact ID.

  • memory_list_contexts

    List Polypack context namespaces visible to the local store.

  • memory_recall

    Recall bounded Polypack memories for an authenticated agent.

  • memory_store

    Store durable Polypack memory with server-authored provenance.

  • memory_thread

    Walk a bounded Polypack response/supersession thread.

  • migrations_list

    List known migrations. `pending`/`done` filter; the default (neither set) returns all of them. Read-only - same scope as updates_check.

  • migrations_runwrite action

    Run (or skip, or force-rerun) migrations. Defaults to all pending migrations if `targets` is empty. `skip` and `force_rerun` require explicit `targets` (never applied to "all pending"). Requires confirmation and owner co-signature - same tier as system_upgrade.

  • migrations_state

    Return the recorded state (done/pending/skipped) of every migration that has ever run on this server. Read-only.

  • network_snapshot

    Return local addresses, routes, and listening sockets.

  • operation_logs

    Return the log content for one YunoHost operation - most recent `tail_lines` lines only (default: a bounded tail, not the whole log; pass a larger tail_lines for more). Secret-shaped content (a password/token/api_key/... assignment) in the log text is redacted.

  • operation_status

    Return success/failure status and metadata for one YunoHost operation.

  • operations_list

    List recent YunoHost operation log entries.

  • package_backup_testwrite action

    Create a backup of an installed test app, to verify its backup script works.

  • package_change_url_test

    Move a test app to a new domain/path, to verify its change_url script works.

  • package_inspect

    Return the manifest and declared resources for a candidate package.

  • package_install_test

    Install a candidate package from a local path/git URL, for testing.

  • package_lintwrite action

    Run the upstream package_linter against a local package path.

  • package_logs

    Return the log for one operation - an alias over operation_logs() for the package-development workflow (PLAN.md Phase 8). See that tool's docstring for the default tail size and log-text redaction.

  • package_remove_testwrite action

    Remove a test app, to verify its remove script works. Purges data by default.

  • package_restore_test

    Restore a test app from a backup archive, to verify its restore script works.

  • package_run_testswrite action

    Run the standard install -> backup -> remove -> restore -> remove cycle against a candidate package in one call. Stops at the first failing step; see yunohost/adapter.py's package_run_tests for exactly what each step does and why this isn't package_check's full CI matrix.

  • package_test_prepare

    Prepare a short-lived package-test session without changing the host.

  • package_upgrade_test

    Upgrade an already-installed `app` from a candidate local path/tarball, for testing.

  • plan_app_upgrade

    Report what an upgrade of `app` would involve, without doing it: current/target version, and whether apps.upgrade's policy (recent backup, free space) would currently block it and why. Pass the returned plan_id to execute_plan() to actually upgrade - read-only, no lock, no audit entry (nothing in YunoHost changes here).

  • regenconf_apply

    Regenerate (apply) pending system-service config files. `names` restricts this to specific categories (default: all pending); `force` additionally overwrites manually-edited files. Requires confirmation and owner co-signature, same tier as firewall_open/firewall_close - a bad regeneration can lock the admin out the same way a bad firewall rule can.

  • regenconf_pending

    List system-service config files (nginx, ssowat, mysql, ...) that are out of date versus YunoHost's current internal state, without changing anything. `names` restricts the check to specific categories (default: all); `with_diff` includes the actual diff text. Read-only - call this before regenconf_apply to see what would change.

  • server_info

    Return YunoHost server/component version information.

  • service_history

    Return service state, exit details, restart counts, and timestamps.

  • service_logs

    Structured systemd journal entries for one YunoHost-managed service (must be a name services_list() reports) - normalized timestamp/service/priority/message per entry.

  • service_restart

    Restart one or more YunoHost services.

  • service_start

    Start one or more stopped YunoHost services.

  • service_status

    Return status for one or more named services.

  • service_stop

    Stop one or more YunoHost services. Call service_start to bring them back up.

  • services_list

    List all YunoHost-managed services and their status.

  • settings_get

    Read one global setting by key (see settings_list for known keys). `full` additionally returns its type/description/default. Read-only.

  • settings_list

    List YunoHost's global settings (SSO behavior, security toggles, misc display options) and their current values. `full` additionally returns each setting's type/description/default. Read-only.

  • settings_set

    Set one global setting (see settings_list for known keys). `value` is always passed as a string - YunoHost coerces it to the setting's actual type internally. Requires confirmation and owner co-signature, same tier as firewall_open/firewall_close.

  • ssh_diagnose

    Collect SSH listener, fail2ban, firewall, service, and auth evidence.

  • system_reboot

    Reboot the host (`systemctl reboot`) immediately once confirmed - no further in-process delay or grace period. Requires confirmation and owner co-signature, same tier as system_upgrade. Comes back up on its own; contrast with system_shutdown, which does not.

  • system_shutdown

    Power off the host (`systemctl poweroff`) immediately once confirmed. Requires confirmation and owner co-signature, same tier as system_upgrade. Does NOT come back up on its own - without remote power management, someone needs physical access to the machine to restore it. Prefer system_reboot unless a real power-off is actually what's wanted.

  • system_snapshot

    Return host uptime, boot, resource, process, disk, and OOM evidence.

  • system_upgrade

    Upgrade system (OS-level) packages. Requires confirmation.

  • updates_check

    List apps and system components with pending updates, from cache (no network refresh).

  • updates_refresh

    Refresh cached update metadata over the network: apt-get update and/or a re-fetch of every registered app catalog source (including a local nostr_catalog feed, if installed), then report what's now upgradable. target is "apps", "system", or "all". Can take real time. Use this after catalog_publish to confirm a package actually shows up in the live catalog - updates_check alone only reads the exist

  • user_createwrite action

    Create a YunoHost user account/mailbox on `domain` (must already be registered - see domain_add/domains_list). `admin` adds the new user to the `admins` group, granting webadmin/SSH access - grant with care.

  • user_deletewrite action

    Delete a YunoHost user account. Requires owner co-signature (approve_operation) in addition to confirmation - see PLAN.md Phase 13.

  • user_group_createwrite action

    Create a new YunoHost user group - a prerequisite for granting a custom set of users access to an app permission (see user_permission_add) rather than an individual username.

  • user_group_deletewrite action

    Delete a YunoHost user group. Requires owner co-signature (approve_operation) in addition to confirmation - see PLAN.md Phase 13.

  • user_group_list

    List YunoHost user groups (e.g. `all_users`, `admins`, and any per-app permission groups) and their members.

  • user_group_updatewrite action

    Add or remove usernames from a YunoHost group (e.g. adding a user to `admins` grants webadmin/SSH access - grant with care).

  • user_permission_add

    Grant a user or group access to an app permission (e.g. "myapp.main" - see user_permission_list for existing permission names). Requires owner co-signature (approve_operation) in addition to confirmation - see PLAN.md Phase 13's "permission changes" candidate.

  • user_permission_info

    Read one permission's full info (allowed users/groups, label, show_tile, protected, URL(s)) - see user_permission_list for known permission names. Read-only.

  • user_permission_list

    List app/system permissions and which users/groups are allowed each one (e.g. which apps a given group can access).

  • user_permission_removewrite action

    Revoke a user or group's access to an app permission. Requires owner co-signature (approve_operation) in addition to confirmation - see PLAN.md Phase 13's "permission changes" candidate.

  • user_permission_updatewrite action

    Update a permission's label or dashboard tile visibility (`show_tile`) - not who has access, use user_permission_add/ user_permission_remove for that. Leave an argument None to leave it unchanged. `protected` is accepted for backward compatibility but, on the currently-installed YunoHost version, raises rather than silently doing nothing - the real user_permission_update() has no such parameter; p

  • user_updatewrite action

    Update an existing YunoHost user's mail/password/quota/fullname. Only the fields passed are changed; omitted fields are left as-is.

  • users_list

    List YunoHost user accounts.

  • web_logs

    Read bounded, structured Nginx access and error logs.

  • wrapper

Public scan report

scanner v0.1.9 · 2026-09-20 · same rubric, same numbers if you re-run it

no findings
  • Code scan76 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 qualitylocal package, no credentials required12/15
  • Maintenancelast push 4 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 92/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

Install directly

claude mcp add yunohost-mcp -- uvx yunohost-mcp-connect
Add to Cursor

YunoHost MCP: common questions

Is YunoHost MCP server safe?
Yes, by our scan: it is graded A (92/100). Read the YunoHost MCP safety report
How do I install YunoHost MCP?
It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
Does YunoHost MCP need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is YunoHost MCP maintained?
The last commit was 5 days ago (2026-09-15). The latest release is v0.8.46.

More from imattau