Skip to main content
Glama
Scofield81

Ubuntu Control MCP

by Scofield81

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
UBUNTU_CONTROL_MODENoThe permission mode the server runs in: SAFE, NORMAL, or ADMIN. Defaults to normal.normal
UBUNTU_CONTROL_PORTNoPort to listen on when using HTTP transport.8000
UBUNTU_CONTROL_CONFIGNoPath to the configuration file. Defaults to ~/.config/ubuntu-control-mcp/config.json.
UBUNTU_CONTROL_AUDIT_LOGNoPath to an audit log file. If set, all operations are logged.
UBUNTU_CONTROL_TRANSPORTNoTransport protocol: 'stdio' (default) or 'http'.stdio
UBUNTU_CONTROL_AUTO_APPROVENoSet to 1 to automatically approve high/medium risk operations without user confirmation. Only for trusted environments.0
UBUNTU_CONTROL_SUDO_PASSWORDNoSudo password for administrative operations.
UBUNTU_CONTROL_DESKTOP_ENABLEDNoWhether desktop control features are enabled. Use '1' or 'true' to enable.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
system_infoB

Statikus gepinformacio: OS, kernel, hostnev, CPU modell, magok, ossz RAM, uptime.

Args: params (HostOnlyInput): host (opcionalis), response_format.

Returns: str: Markdown vagy JSON a kovetkezo mezokkel: hostname, os, kernel, architecture, cpu_model, cpu_cores, total_memory, uptime, boot_time.

system_statusA

Gyors egeszseg-pillanatkep: CPU%, RAM, swap, disk (/), load average, top 5 folyamat.

Args: params (HostOnlyInput): host (opcionalis), response_format.

Returns: str: Osszefoglalo a legfontosabb terhelesi mutatokkal.

cpu_usageB

Reszletes CPU hasznalat: osszesitett es magonkenti szazalek, load average.

Args: params (HostOnlyInput): host, response_format. Returns: str: CPU mutatok.

memory_usageA

RAM es swap reszletes hasznalata (total / used / free / available / cache).

Args: params (HostOnlyInput): host, response_format. Returns: str: Memoria mutatok.

disk_usageA

Csatolt fajlrendszerek kihasznaltsaga (df -h ekvivalens).

Args: params (HostOnlyInput): host, response_format. Returns: str: Fajlrendszerek listaja meret / hasznalt / szabad / szazalek bontasban.

network_statusB

Halozati interfeszek, IP-cimek, alapertelmezett atjaro, DNS es egy internet-teszt.

Args: params (HostOnlyInput): host, response_format. Returns: str: Halozati osszefoglalo.

process_listA

Futo folyamatok listaja szuressel, rendezessel es limittel.

Args: params (ProcessListInput): filter, sort_by ('cpu'|'memory'|'pid'), limit, host, response_format.

Returns: str: Folyamatok: pid, felhasznalo, CPU%, MEM%, parancs.

logsA

Rendszernaplok olvasasa: journalctl (unit szerint) vagy konkret logfajl.

Args: params (LogsInput): unit VAGY path, lines, since, grep, host, response_format.

Returns: str: A kert naplosorok.

service_statusA

Egy systemd szolgaltatas allapota (aktiv-e, engedelyezett-e, utolso naplosorok).

Args: params (ServiceStatusInput): name, host, response_format. Returns: str: systemctl status kimenet.

set_modeA

A szerver engedely-modjanak valtoztatasa (SAFE / NORMAL / ADMIN).

A modot LEFELE barmikor lehet allitani. FELFELE allitashoz mar ADMIN modban kell lenni - kulonben a UBUNTU_CONTROL_MODE kornyezeti valtozoval kell inditani a szervert. Ez szandekos: a modell ne tudja sajat magat feljebb emelni.

Args: params (SetModeInput): mode, persist. Returns: str: Megerosites az uj modrol.

apt_updateA

Csomaglistak frissitese ('apt-get update'). Nem telepit es nem frissit semmit.

Args: params (AptSimpleInput): host, response_format. Returns: str: Az apt update kimenete.

apt_list_upgradableA

Lista arrol, mely csomagok frissithetok most (nem futtat frissitest).

Args: params (AptSimpleInput): host, response_format. Returns: str: Frissitheto csomagok (nev, jelenlegi -> uj verzio).

apt_upgradeA

A telepitett csomagok frissitese. RENDSZERSZINTU valtoztatas - megerositest ker.

Ajanlott elotte az 'apt_update' es 'apt_list_upgradable' lefuttatasa, hogy lasd, mi fog valtozni.

Args: params (AptUpgradeInput): full (bool), host, response_format. Returns: str: A frissites kimenete + a vegso allapot ellenorzese.

apt_installB

Egy vagy tobb csomag telepitese APT-vel.

Args: params (AptPackagesInput): packages (lista), host, response_format. Returns: str: A telepites kimenete.

apt_removeA

Egy vagy tobb csomag eltavolitasa. RENDSZERSZINTU valtoztatas - megerositest ker.

Args: params (AptPackagesInput): packages (lista), host, response_format. Returns: str: Az eltavolitas kimenete.

apt_searchB

Csomag kereses nev / leiras alapjan ('apt-cache search').

Args: params (AptSearchInput): query, host, response_format. Returns: str: Talalati lista.

apt_showA

Reszletes informacio egy vagy tobb csomagrol ('apt-cache show').

Args: params (AptPackagesInput): packages, host, response_format. Returns: str: Csomag metaadatok.

snap_listA

Telepitett snap csomagok listaja.

Args: params (AptSimpleInput): host, response_format. Returns: str: Snap lista.

snap_installC

Snap csomag telepitese.

Args: params (AptPackagesInput): packages, host, response_format. Returns: str: A telepites kimenete.

snap_removeA

Snap csomag eltavolitasa. Megerositest ker.

Args: params (AptPackagesInput): packages, host, response_format. Returns: str: Az eltavolitas kimenete.

terminal_openA

Uj, hosszu eletu interaktiv shell munkamenet nyitasa.

Lokalis (host=None): valos PTY, a curses/kepernyokezelo programok is mukodnek. Tavoli (host=nev): SSH interaktiv shell a konfiguralt gepen.

Args: params (TerminalOpenInput): host, shell, cwd, response_format.

Returns: str: A letrejott terminal azonositoja + a kezdeti prompt kimenete.

terminal_writeA

Szoveg / parancs kuldese egy nyitott terminalba.

Args: params (TerminalWriteInput): terminal_id, data, enter, read_after.

Returns: str: Megerosites, es ha read_after igaz, az uj kimenet.

terminal_readB

Az adott terminal ota felgyult uj kimenetenek leolvasasa.

Args: params (TerminalReadInput): terminal_id, drain_seconds. Returns: str: Az uj kimenet (ures, ha nem tortent semmi).

terminal_waitA

Varakozas: amig egy regex minta megjelenik, VAGY amig a kimenet elcsendesedik.

Hasznos hosszu parancsoknal (build, telepites) vagy szerver-inditasnal ("Listening on port 3000").

Args: params (TerminalWaitInput): terminal_id, pattern, timeout, idle. Returns: str: Az osszegyujtott kimenet + hogy a mintat sikerult-e megtalalni.

terminal_ctrl_cA

Vezerlobillentyu / eszkapszekvencia kuldese (ctrl-c, ctrl-d, up, tab, ...).

A nev 'ctrl_c', de barmelyik tamogatott billentyu megadhato a 'key' mezoben.

Args: params (TerminalKeyInput): terminal_id, key. Returns: str: Megerosites + rovid kimenet.

terminal_resizeB

A terminal (PTY) meretenek allitasa - fontos a curses programoknak (htop, vim).

Args: params (TerminalResizeInput): terminal_id, cols, rows. Returns: str: Megerosites.

terminal_closeA

Egy terminal munkamenet bezarasa es a folyamatainak leallitasa.

Args: params (TerminalCloseInput): terminal_id. Returns: str: Megerosites.

terminal_listA

A jelenleg nyitott terminal munkamenetek listaja allapottal.

Returns: str: id, tipus, cel, el-e, tetlensegi ido, kor.

screenshotA

Kepernyokep keszitese a lokalis asztalrol.

Sorrendben probalja: gnome-screenshot, scrot, imagemagick 'import', grim (Wayland).

Args: params (ScreenshotInput): save_path, window, return_image.

Returns: Image | str: A PNG kep (return_image eseten), kulonben szoveges megerosites a mentesi utrol.

desktop_ocrB

Szoveg kinyerese a kepernyorol (vagy egy kepfajlbol) tesseract OCR-rel.

Args: params (OcrInput): image_path, lang. Returns: str: A felismert szoveg.

mouse_moveA

Az egermutato mozgatasa abszolut kepernyo-koordinatara.

Args: params (MouseMoveInput): x, y. Returns: str: Megerosites.

mouse_clickA

Kattintas a megadott (vagy a jelenlegi) pozicion.

Args: params (MouseClickInput): button ('left'|'middle'|'right'), x, y. Returns: str: Megerosites.

mouse_double_clickA

Dupla kattintas a megadott (vagy jelenlegi) pozicion.

Args: params (MouseClickInput): button, x, y. Returns: str: Megerosites.

mouse_scrollB

Fuggoleges gorgetes az egermutato jelenlegi pozicion.

Args: params (MouseScrollInput): direction ('up'|'down'), amount. Returns: str: Megerosites.

keyboard_typeB

Szoveg begepelese az aktualisan fokuszalt ablakba (xdotool type).

Args: params (KeyboardTypeInput): text, delay_ms. Returns: str: Megerosites.

keyboard_pressB

Billentyu vagy kombinacio lenyomasa (xdotool key), pl. 'ctrl+alt+t', 'Return', 'alt+F4'.

Args: params (KeyboardPressInput): keys, repeat. Returns: str: Megerosites.

window_listA

A nyitott ablakok listaja (wmctrl -l): azonosito, asztal, gep, cim.

Returns: str: Ablaklista.

window_focusA

Egy ablak elore hozasa es fokuszalasa cim-reszlet vagy azonosito alapjan.

Args: params (WindowFocusInput): query. Returns: str: Megerosites.

window_closeA

Egy ablak bezarasa. 'force' eseten megerositest ker (nem mentett munka veszhet).

Args: params (WindowCloseInput): query, force. Returns: str: Megerosites.

launch_applicationA

Grafikus (vagy barmilyen) alkalmazas inditasa a hatterben, levalasztva.

Eloszor 'gtk-launch ' (.desktop), kudarc eseten kozvetlen parancsindtas.

Args: params (LaunchAppInput): application, arguments. Returns: str: Megerosites + PID (ha elerheto).

list_filesC

Egy konyvtar tartalmanak listazasa.

Args: params (ListFilesInput): path, all, long, host, response_format. Returns: str: A konyvtar bejegyzesei.

read_fileA

Szoveges fajl beolvasasa, opcionalisan csak egy sor-tartomany.

Args: params (ReadFileInput): path, start_line, end_line, host, response_format. Returns: str: A fajl tartalma (nagy fajlnal levagva).

file_infoB

Fajl / konyvtar metaadatai: meret, tipus, jogosultsagok, tulajdonos, idobelyegek.

Args: params (FileInfoInput): path, host, response_format. Returns: str: A metaadatok.

write_fileA

Fajl letrehozasa vagy felulirasa (vagy hozzafuzes).

Letezo fajl felulirasa eseten megerositest ker.

Args: params (WriteFileInput): path, content, append, create_parents, host. Returns: str: Megerosites (kiirt byte-ok szama).

edit_fileA

Pontos szoveg-csere egy meglevo fajlban (nem regex).

Args: params (EditFileInput): path, old_string, new_string, count, host. Returns: str: Hany csere tortent.

make_dirA

Konyvtar (es szuloi) letrehozasa.

Args: params (MakeDirInput): path, host. Returns: str: Megerosites.

move_pathA

Fajl / konyvtar atnevezese vagy athelyezese.

Ha a cel mar letezik, megerositest ker.

Args: params (MovePathInput): source, destination, host. Returns: str: Megerosites.

delete_pathA

Fajl vagy konyvtar torlese. MINDIG megerositest ker.

Args: params (DeletePathInput): path, recursive, host. Returns: str: Megerosites.

host_listA

A konfiguralt tavoli gepek listaja (titkok nelkul).

Returns: str: Minden gephez: nev, hostname, felhasznalo, port, van-e kulcs / jelszo-env.

host_testA

SSH kapcsolat tesztelese egy geppel: bejelentkezes + 'id' es 'uname -a'.

Args: params (HostNameInput): name. Returns: str: A kapcsolat eredmenye es az alap parancsok kimenete.

host_addA

Uj tavoli gep hozzaadasa a konfiguraciohoz es mentese a config fajlba.

A jelszot NEM ide adod meg: a 'password_env' / 'sudo_password_env' mezobe egy kornyezeti valtozo NEVET irsz, amit a szerver kornyezeteben beallitasz.

Args: params (HostAddInput): name, hostname, username, port, key_path, password_env, sudo_password_env, description.

Returns: str: Megerosites + a mentett (titok nelkuli) rekord.

host_removeA

Egy tavoli gep torlese a konfiguraciobol.

Args: params (HostNameInput): name. Returns: str: Megerosites.

host_generate_keyA

Uj ed25519 SSH kulcspar generalasa a szerver kulcs-konyvtaraba.

A privat kulcs helyben marad; a publikus kulcsot kell felmasolni a tavoli gep ~/.ssh/authorized_keys fajljaba (pl. 'ssh-copy-id' vagy kezzel). Ezutan a 'host_add' hivasnal add meg a privat kulcs utjat a 'key_path'-ban.

Args: params (HostGenKeyInput): name, comment. Returns: str: A privat kulcs utja + a publikus kulcs sora (ezt kell telepiteni).

host_runA

Egyszeri shell parancs futtatasa egy KONFIGURALT tavoli gepen.

A parancs atmegy a kockazat-kapun: a magas kockazatu muveletek (rm -rf, reboot, tuzfal, stb.) megerositest kernek.

Args: params (HostRunInput): host (kotelezo), command, sudo, timeout, cwd, response_format. Returns: str: A parancs kimenete.

shell_runA

Egyszeri shell parancs futtatasa a LOKALIS gepen (ahol az MCP szerver fut).

Ugyanaz a kockazat-kapu vonatkozik ra, mint a 'host_run'-ra. Altalaban celszerubb a specifikus toolokat hasznalni (system_*, apt_*, stb.), de ez a menekulesi ut barmilyen egyedi parancshoz.

Args: params (HostRunInput): command, sudo, timeout, cwd, response_format. (A 'host' mezot hagyd uresen - ha kitoltod, tavoli gepre megy.) Returns: str: A parancs kimenete.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.1/5.0

Scored across 55 tools

Disambiguation3/5

Most tools are grouped into recognizable clusters (system, apt, terminal, desktop, files, hosts), but a few boundaries blur: shell_run can also target remote hosts and thus overlaps with host_run, while system_status summarizes metrics that are also covered by cpu_usage, memory_usage, disk_usage, and process_list. The detailed descriptions help, but with 55 tools an agent can still hesitate between several overlapping entry points.

Naming Consistency4/5

Names are consistently lower_snake_case and mostly follow resource-action patterns such as terminal_open, apt_update, mouse_click, and host_add. The main deviations are noun-only names like logs, screenshot, system_info, and file_info, plus file tools using verb-noun ordering (list_files, read_file) while many control tools use noun-verb ordering. Overall the style is predictable enough.

Tool Count2/5

55 tools is far above the typical coherent scope and bundles system monitoring, package management, terminal emulation, GUI automation, file operations, and remote host management into a single server. Each cluster is internally useful, but the aggregate surface is heavy and creates a large selection burden for agents. A more cohesive design would split this into focused servers by domain.

Completeness3/5

The set covers monitoring, package installation, file management, terminal sessions, GUI interaction, and remote host operations well, but there are obvious control gaps: process_list has no corresponding process_kill or signal tool, and service_status has no service_start/stop/restart tool. These can be worked around via shell_run or host_run, but they are notable missing lifecycle operations for a server described as an Ubuntu control interface.

Maintenance

ActivityMaintained
ResponsivenessNo issues