Superuser

io.github.fitzyracing1Published by GitHub account fitzyracing1v0.1.0Updated Oct 30, 2026

Permission-gated superuser (sysadmin) MCP agent with enterprise guardrails and audit.

Overview

AI-generated overview

Permission-gated sysadmin MCP server that lets an assistant run shell commands, inspect system state and act on GitHub, with approvals and audit logging.

What you can do
  • Inspect the host: system status, per-partition disk usage and top processes by memory or CPU
  • Run shell commands on the machine, subject to a denylist, risk-based approval and audit logging
  • Read GitHub repository metadata and list issues for allowlisted repos
  • Comment on GitHub issues or pull requests, gated by approval and a write-enable flag
  • Report the active guardrail configuration and Cisco AI Defense status
When to use it
For local, supervised system administration where you want an assistant to check machine health, run commands and touch GitHub repos while every action passes through approvals, inspection and an audit trail. It suits teams that need demonstrable guardrails rather than unrestricted root access.
Requirements
Local Python 3.10+ process installed from git (not yet on PyPI), run over stdio. Optional integrations need credentials: AI_DEFENSE_INSPECTION_API_KEY for Cisco AI Defense, DUO_CLIENT_ID, DUO_CLIENT_SECRET and DUO_TOKEN_URL for Duo authorization, STRIPE_API_KEY for metered billing, plus GITHUB_TOKEN and repo allowlist settings. SUPERUSER_HUMAN_OWNER and SUPERUSER_APPROVAL_AT set accountability and the approval threshold.
Before you install
It grants real shell execution on the host; the denylist is described as a backstop, not the primary control. Commands and responses are sent to Cisco AI Defense for inspection, and successful calls are metered through Stripe, so third-party services see activity. GitHub writes require GITHUB_ALLOW_WRITES and confirmation. Several secrets are requested (AI_DEFENSE_INSPECTION_API_KEY, DUO_CLIENT_SECRET, STRIPE_API_KEY, GITHUB_TOKEN); keep config files out of version control and use a…

Installation

In SourceWeft

  1. Open Superuser in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Super

A permission-gated superuser agent exposed over the Model Context Protocol (MCP). It gives an AI agent real system-administration powers on this machine — running shell commands, checking system state, and acting on GitHub — while wrapping every action in guardrails: a dangerous-command denylist, a human-approval gate for risky operations, least-privilege GitHub access, an append-only audit log, and Cisco AI Defense runtime inspection of every tool call and response.

The design goal is the version of a "superuser agent" you can actually ship: powerful, but safe, auditable, and compatible with enterprise guardrails.

Landing site: https://fitzyracing1.github.io/super-landing/ (source: fitzyracing1/super-landing). The previous Pages site in this repo is preserved at tag site-v1 / branch site-archive.

Why it's built this way

An agent that can do anything as root is a liability, not a product. Buyers (and marketplace security reviews) expect scoping, approvals, and an audit trail. So capabilities here always pass through a single choke point — the Guard — which enforces, in order:

  1. Cisco AI Defense inspects the tool call (can block).
  2. Cisco Duo Agentic Identity authorizes the tool call per-policy (can block).
  3. Approval gate — anything at or above approval_required_at (default MEDIUM) needs an explicit confirm=true from a human.
  4. The operation runs.
  5. Cisco AI Defense inspects the response before it is returned (catches data leakage).
  6. Stripe meters the successful call (best-effort; never blocks).
  7. The outcome is written to the audit log as human owner -> agent -> tool -> action -> outcome.

This mirrors the enterprise model: your app owns scoping + approvals + local audit; Cisco AI Defense provides runtime threat inspection at the MCP layer; Cisco Duo Agentic Identity provides per-tool-call authorization tied to an accountable human owner; and Stripe turns metered tool calls into revenue.

Cisco Duo Agentic Identity (authorization)

Duo follows a "Duo decides, the gateway enforces" model. This agent registers as a non-human identity, authenticates via the OAuth 2.1 client-credentials grant (with an RFC 8707 resource indicator), and authorizes every tool call either by matching the tool's required scope against what Duo granted, or by calling an explicit Duo decision endpoint. Set DUO_ENABLED=true plus DUO_TOKEN_URL / DUO_CLIENT_ID / DUO_CLIENT_SECRET (see .env.example). When Duo is not configured, calls are allowed but flagged governed: false; in enforce mode authorization errors fail closed.

Stripe usage-based billing (monetization)

Each authorized, successful tool call emits a Stripe meter event (v2 billing meter events API), so the agent can be sold per-action. Configure a meter in Stripe, then set STRIPE_ENABLED=true, STRIPE_API_KEY, STRIPE_CUSTOMER_ID, and STRIPE_METER_EVENT_NAME. Per-tool weights let higher-risk actions cost more. Billing is best-effort: metering failures are logged and never block or fail the tool call (results are annotated billed: true|false).

Tools

ToolRiskNotes
system_statusLOWHost, CPU, memory, uptime
disk_usageLOWPer-partition disk usage
list_processesLOWTop processes by memory/cpu
run_commandHIGH*Shell command; denylist + approval + audit
github_get_repoLOWRepo metadata (allowlisted repos only)
github_list_issuesLOWIssues for an allowlisted repo
github_create_issue_commentHIGHWrite; needs approval + GITHUB_ALLOW_WRITES
security_status—Reports the active guardrail configuration

* run_command is LOW risk only when its base command is in command_allowlist; otherwise HIGH (requires confirm=true).

Install

Not yet on PyPI. Install straight from git:

bash
pip install "superuser @ git+https://github.com/fitzyracing1/Super.git"pip install "superuser[all] @ git+https://github.com/fitzyracing1/Super.git"   # + Cisco AI Defense + Stripe SDKs

From a clone:

Requires Python 3.10+.

bash
pip install -e .              # core agent (Duo authz uses requests; no extra dep)pip install -e '.[security]'  # + Cisco AI Defense SDK (cisco-aidefense-sdk)pip install -e '.[billing]'   # + Stripe SDK (usage-based billing)pip install -e '.[all]'       # security + billingpip install -e '.[dev]'       # + pytest / ruff

Configure

Copy .env.example to .env (or use a YAML file — see superuser.example.yaml) and set values. Key settings:

  • SUPERUSER_HUMAN_OWNER — the human accountable for the agent's actions.
  • SUPERUSER_APPROVAL_AT — risk threshold for the approval gate (LOW…CRITICAL).
  • AI_DEFENSE_* — Cisco AI Defense credentials/mode (see below).
  • DUO_* — Cisco Duo Agentic Identity authorization (see below).
  • STRIPE_* — Stripe usage-based billing (see below).
  • GITHUB_TOKEN, GITHUB_ALLOWED_REPOS, GITHUB_ALLOW_WRITES — least-privilege GitHub.

For a full console-value → env-var mapping for all three services, see docs/INTEGRATIONS.md.

Cisco AI Defense

Install the SDK (pip install 'superuser[security]') and provide credentials:

  • Explicit inspection of this server's own tool calls/responses: set AI_DEFENSE_INSPECTION_API_KEY.
  • Runtime protection (agentsec.protect() auto-patches LLM + MCP clients): set AI_DEFENSE_API_MODE_LLM_ENDPOINT + AI_DEFENSE_API_MODE_LLM_API_KEY, or point AI_DEFENSE_AGENTSEC_CONFIG at an agentsec.yaml (see agentsec.example.yaml).
  • AI_DEFENSE_MODE: enforce (block), monitor (log only), or off.

If the SDK is not installed or no credentials are set, the agent still runs but every result is annotated protected: false / UNPROTECTED — the gap is never silent. In enforce mode, inspection errors fail closed (the call is blocked); in monitor mode they fail open (logged, allowed).

Environment variables

AreaVariables
CoreSUPERUSER_CONFIG, SUPERUSER_HUMAN_OWNER, SUPERUSER_APPROVAL_AT, SUPERUSER_COMMAND_TIMEOUT, SUPERUSER_AUDIT_LOG
Cisco AI DefenseAI_DEFENSE_ENABLED (default true; set false for local dev), AI_DEFENSE_MODE, AI_DEFENSE_INSPECTION_API_KEY, AI_DEFENSE_API_MODE_LLM_ENDPOINT, AI_DEFENSE_API_MODE_LLM_API_KEY, AI_DEFENSE_AGENTSEC_CONFIG
Cisco DuoDUO_ENABLED, DUO_MODE, DUO_AGENT_ID, DUO_TOKEN_URL, DUO_CLIENT_ID, DUO_CLIENT_SECRET, DUO_AUTHORIZATION_URL, DUO_RESOURCE, DUO_SCOPES
StripeSTRIPE_ENABLED, STRIPE_API_KEY, STRIPE_CUSTOMER_ID, STRIPE_METER_EVENT_NAME, STRIPE_DEFAULT_VALUE
GitHubGITHUB_TOKEN, GITHUB_ALLOWED_REPOS, GITHUB_ALLOW_WRITES, GITHUB_API_URL

With no keys set the server still runs: Duo and Stripe are off by default, and Cisco AI Defense runs unprotected (clearly flagged) if the SDK/keys are missing.

Run

bash
# Validate configuration and print guardrail/Cisco status, then exit:superuser --check
# Start the MCP server (stdio transport, for MCP clients like Cursor/Claude):superuser# or: python -m superuser

Register with an MCP client

Example client config (stdio):

json
{  "mcpServers": {    "superuser": {      "command": "superuser",      "env": {        "SUPERUSER_HUMAN_OWNER": "[email protected]",        "AI_DEFENSE_MODE": "enforce",        "AI_DEFENSE_INSPECTION_API_KEY": "..."      }    }  }}

Test

bash
pytest

Security notes

  • The dangerous-command denylist is a backstop, not the primary control. The primary controls are Cisco AI Defense inspection and the approval gate.
  • GitHub access fails closed: no token or an empty repo allowlist means no access. Use a fine-grained, least-privilege token.
  • Secrets are redacted in the audit log. Keep .env / *.yaml config files out of version control (already in .gitignore).

License

Apache-2.0.

Plans

This project is free, and its license stays as is. Support it through GitHub Sponsors:

  • Free: use the code, community support.
  • Pro ($49/month): priority issues and support.
  • Team ($199/month): priority support for your team plus early access.

Source: README.md at commit b223270

Tools

8

system_status

Report host, CPU, memory, and uptime for this machine.

Takes no parameters.

disk_usage

Report disk usage per mounted partition.

Takes no parameters.

list_processes

List top processes. sort_by is 'memory' or 'cpu'.

Parameterslimitsort_by

run_command

Run a shell command on this machine. Non-allowlisted commands are HIGH risk and require confirm=true. Commands matching the dangerous-command denylist are always rejected, and every call is inspected by Cisco AI Defense and written to the audit log.

Parameterscommandrequiredconfirmtimeout

github_get_repo

Get metadata for an allowlisted repo (e.g. 'owner/name').

Parametersreporequired

github_list_issues

List issues for an allowlisted repo.

Parametersreporequiredlimitstate

github_create_issue_comment

Comment on an issue/PR. Write action: requires confirm=true and GITHUB_ALLOW_WRITES.

Parametersbodyrequiredreporequiredconfirmissue_numberrequired

security_status

Report the agent's guardrail configuration and Cisco AI Defense status.

Takes no parameters.

Version history

1
  1. v0.1.0LatestOct 22, 2026

Score

80% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.