Skip to content

Merge superuser MCP server into main (mcp<2 pin, CI) - #15

Merged
fitzyracing1 merged 7 commits into
mainfrom
try/mcp-up
Oct 22, 2026
Merged

fitzyracing1 merged 7 commits into
mainfrom
try/mcp-up

Conversation

@fitzyracing1

Copy link
Copy Markdown
Owner

Brings the superuser MCP server (PR #1 branch + mcp<2 pin) to main. README documents install from git and env vars and links the landing site (fitzyracing1/super-landing). index.html now redirects to the landing site; google verification file kept. Obsolete/invalid merge-sync-audit workflow removed; pytest CI added. Old site preserved at tag site-v1 / branch site-archive.

cursoragent and others added 7 commits July 21, 2026 00:54
…ails

Implements an MCP server that exposes sysadmin 'superuser' tools (shell,
system status, GitHub) behind a single guard that enforces:
- Cisco AI Defense inspection of every tool call and response (agentsec
  runtime protection + explicit MCPInspectionClient), with graceful
  degradation when the SDK/credentials are absent
- a human-approval gate for risky actions
- a dangerous-command denylist and allowlist-based risk classification
- least-privilege, fail-closed GitHub access
- an append-only, secret-redacting audit log

Includes tests (9 passing), ruff-clean source, README, and example config.

Co-authored-by: fitzyracing1 <fitzyracing1@users.noreply.github.com>
Extends the guard pipeline with two enterprise layers:

- Cisco Duo Agentic Identity authorization (authz.py): the agent authenticates
  as a registered non-human identity via the OAuth 2.1 client-credentials grant
  (with RFC 8707 resource indicator) and authorizes each tool call by scope or
  via an explicit Duo decision endpoint. Fails closed in enforce mode; degrades
  to 'governed: false' when unconfigured.
- Stripe usage-based billing (billing.py): each authorized, successful tool
  call emits a v2 meter event with per-tool weighting. Best-effort — never
  blocks or fails a tool call.

Guard order is now: AI Defense inspect -> Duo authorize -> approval gate ->
execute -> AI Defense response inspect -> Stripe meter -> audit. Adds config,
CLI --check output, security_status fields, example config, README docs, and
tests (16 passing, ruff clean).

Co-authored-by: fitzyracing1 <fitzyracing1@users.noreply.github.com>
Document the exact console-value to env-var mapping for all three external
services, including where to find each value in the Duo Admin Panel and the
scope->tool mapping. Link it from the README.

Co-authored-by: fitzyracing1 <fitzyracing1@users.noreply.github.com>
- server.json: registry metadata for io.github.fitzyracing1/superuser
  (pypi package 'superuser', stdio transport, documented env vars);
  validated against the official registry schema.
- README: add 'mcp-name' ownership-verification marker for the PyPI package.
- .github/workflows/publish-mcp.yml: on a v* tag, sync version, build,
  publish to PyPI via OIDC trusted publishing, then publish metadata to the
  MCP Registry via mcp-publisher (github-oidc).

Co-authored-by: fitzyracing1 <fitzyracing1@users.noreply.github.com>
@fitzyracing1
fitzyracing1 merged commit 9757534 into main Oct 22, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants