shugo
Provides guardrails for GitHub API calls via MCP, enabling policy enforcement such as read-only access, blocking force pushes, and requiring approvals for high-risk actions.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@shugoblock all write operations to the production database"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Documentation · Quickstart · Repo Structure · Policies · Roadmap
uvx shugo init # scaffold guardrails.yaml from your existing MCP config
uvx shugo serve # start guardingAvailable on PyPI as shugo · latest version 0.1.0 (2026-07-30)
A guardrail should not merely tell an agent what it should do. The system should enforce what the agent is allowed to do.
Layers ③ and ⑤ ship complete in v0.1. The others ship at the minimum depth needed to make those two credible, then deepen along the roadmap.
⚙️ How it works
SHUGO presents itself to your agent as a standard MCP server and sits between the agent and the tools it calls. Every tools/call is evaluated against a human-readable policy file before it reaches an upstream server. No protocol changes. No agent code changes.
┌──────────────┐ MCP ┌───────────┐ MCP ┌──────────────────┐
│ MCP client │ ───────▶ │ SHUGO │ ───────▶ │ Upstream MCP │
│ (any agent) │ ◀─────── │ guard │ ◀─────── │ servers (n) │
└──────────────┘ └─────┬─────┘ └──────────────────┘
│
┌───────────┼───────────┐
▼ ▼ ▼
guardrails audit log approval
.yaml (JSONL) channelWorks with Claude Desktop, Claude Code, Cursor, VS Code, and any framework with an MCP adapter — LangGraph, CrewAI, the OpenAI Agents SDK, n8n.
Related MCP server: flux7-mesh
⚡ Quickstart
uvx shugo init # scaffold a policy from your existing MCP config
uvx shugo serve # start guardingPoint your MCP client at SHUGO instead of your servers:
{
"mcpServers": {
"shugo": {
"command": "uvx",
"args": ["shugo", "serve", "--config", "guardrails.yaml"]
}
}
}Your agent now sees only the tools policy allows, blocks on anything needing approval, and writes an audit record for every call it makes.
📜 Policy as code
The most important file in the project. Design target: a risk lead can read it unaided, and a reviewer can diff it in a pull request.
version: "0.1"
defaults:
decision: deny # deny by default; allowlist upward
on_error: deny # fail closed
rules:
- id: read-only-github
match:
server: github
tool: ["get_*", "list_*", "search_*"]
decision: allow
- id: no-force-push
description: Force push can destroy history irrecoverably
match:
server: github
tool: push
args: { force: true }
decision: deny
reason: Force push is prohibited for autonomous agents.
controls: [OWASP-LLM06, NIST-AI-RMF-MANAGE-2.2]
- id: ticket-write-needs-approval
match:
server: tickets
tool: ["update_ticket", "close_ticket"]
decision: escalate
approval:
channel: cli
timeout_seconds: 300
on_timeout: deny
controls: [EU-AI-ACT-ART-14]Deny by default. First match wins, top to bottom. Globs, not regex — readability is the constraint.
🧾 Evidence, not just logs
Enforcement without evidence is unauditable. Evidence without enforcement is theatre. SHUGO does both.
shugo evidence --framework owasp-llm --since 30d --out evidence/Reads the audit log and produces a control-by-control bundle: which rules were in force, how often each fired, approval latency, exceptions, coverage gaps, and a hash-chain integrity check.
Framework mappings ship as data files sourced from public standards only — NIST AI RMF, EU AI Act, OWASP Top 10 for LLM Applications, and ISO/IEC 42001 control identifiers.
Scope note. SHUGO produces evidence about the guardrail layer. It does not certify an organisation as compliant with any standard.
🧰 CLI
Command | Purpose |
| Run the guard proxy |
| Scaffold a starter policy from installed MCP servers |
| Lint and schema-check the policy file |
| Dry-run a call — see which rule fires and why |
| Inspect the log, verify the hash chain |
| Generate an evidence bundle |
| Kill switch — deny all calls immediately |
📦 Release notes — v0.1.0 (2026-07-30)
First release. Everything in the sections above is now real code you can install with uvx shugo.
What ships:
Guard proxy over stdio — SHUGO speaks MCP to both your client and any number of upstream servers, namespaces tools as
<server>__<tool>, and applies policy on everytools/call.Policy engine — deny-by-default, first-match-wins,
fnmatchglobs on server/tool, nested-equality on args. Decisions:allow,deny,escalate.Human approvals — file-drop queue at
~/.shugo/pending/resolved by eithershugo approve --watch(Rich TUI) or an opt-in local HTTP UI (shugo serve --approvals http).Hash-chained audit log — append-only JSONL, rolling SHA-256, NFC-canonical JSON, per-line
fsync.shugo audit verifydetects any post-hoc edit.Evidence bundles —
shugo evidence -f <owasp-llm|nist-ai-rmf|eu-ai-act|iso-42001>produces a control-mapped report, policy snapshot, filtered audit-log window, and SHA-256 manifest.shugo init— reads Claude Desktop / Code / Cursor / VS Code MCP configs, enumerates upstream tools, writes a starter policy, prints the exact JSON snippet to paste.Kill switch —
shugo haltdenies everything untilshugo unhalt.
Quality: 102 fast tests + 1 e2e test (real @modelcontextprotocol/server-filesystem via npx). CI on Python 3.11–3.13 × macOS / Ubuntu / Windows. All dependencies MIT / BSD-3 / Apache-2.0; no copyleft, no BSL.
Full changelog: CHANGELOG.md · GitHub release: v0.1.0
🗺️ Roadmap
Version | Theme | Status |
v0.1 | Guard proxy, policy engine, approvals, audit log, evidence packs | ✅ released 2026-07-30 |
v0.2 | Layer ① depth — OAuth 2.1 / OIDC identity, per-principal policy, delegation scoping | planned |
v0.3 | Layer ② depth — retrieval boundaries, context filters, memory access rules | planned |
v0.4 | Layer ④ depth — injection detection, output validation, rollback | planned |
v0.5 | Layer ⑤ depth — policy regression suites, adversarial harness | planned |
v1.0 | Frozen policy schema, semantic versioning guarantee, plugin API | planned |
🤝 Contributing
SHUGO is built in public, and the contribution ladder is deliberately low to the ground:
policy pack → scenario test → framework mapping → core
A new policy pack is a self-contained YAML file. You do not need to read the codebase to ship one. Start with CONTRIBUTING.md and the good first issues.
📄 License
Released under the MIT License. Use it, fork it, adapt it to your own agent architecture — that is the point.
守護 — shugo, to guard and protect.
This server cannot be deployed
Maintenance
Related MCP Connectors
AgentGuard — 20-tool AI safety MCP: policy preflight, risk scoring, audit logging, rate limits.
Zero-secret MCP gateway for AI agents: risk-scored, audited calls with human-in-the-loop approval.
Runtime permission, approval, and audit layer for AI agent tool execution.
Security gateway for AI agents: policy, approval, and audited execution, no secrets shared.
Related MCP Servers
AlicenseNot gradedqualityAmaintenanceOpen-source MCP proxy that enforces security policies, content scanning, and audit logging between AI agents and tool servers25AGPL 3.0- AlicenseNot gradedqualityAmaintenanceGuardrail sidecar proxy between AI agents and their MCP/REST/CLI tools. Policy engine, human approval gates, time-limited grants, rate limiting, and OTEL tracing. One Go binary, one YAML config, fail-closed by default.1Apache 2.0
- AlicenseBqualityAmaintenanceA governance proxy for AI tools — every MCP/agent tool call is policy-gated, secret-redacted, and written to a hash-chained, offline-verifiable audit trail.13MIT
- FlicenseNot gradedqualityBmaintenanceProvides a secure MCP boundary for AI agents, intercepting and validating tool calls, redacting secrets, and requiring human approval for sensitive actions with a tamper-evident audit trail.-