Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Local guardrail proxy that blocks destructive MCP tool calls, rug pulls, and tool poisoning
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"shield": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/aperionai/shield:shield-v1.0.1"
]
}
}
}在终端中运行这条命令
claude mcp add shield -- docker run -i --rm ghcr.io/aperionai/shield:shield-v1.0.1粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"shield": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/aperionai/shield:shield-v1.0.1"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"shield": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/aperionai/shield:shield-v1.0.1"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日
注册名称已通过 GitHub 账户 AperionAI 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(1.0.1)于5个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Docker。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Reelsaw
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Drive a self-hosted Reelsaw: turn long videos into vertical clips, edit, re-render and export them.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Works with:
### ⭐ Star this repo if you think AI agents shouldn't touch prod unsupervised
aperion-shieldis the free reference implementation of consequence-level control for AI coding agents — the layer that stops a destructivetools/call*before* it lands, not a log you read after the damage is done. It's transparent insurance: you don't notice it until the day it saves you.
If that's a problem you take seriously, a ⭐ is the fastest way to help other engineers in regulated and high-stakes shops find it before they need it → [Star aperion-shield on GitHub](https://github.com/AperionAI/shield)
aperion-shield is a tiny, local MCP guardrail that sits between your AI coding agent (Cursor, Claude Code, …) and the real MCP servers your agent talks to (postgres, github, shell, filesystem, …) — local stdio servers *and*, since v0.9, remote Streamable HTTP ones. On every tools/call it evaluates 65+ adaptive safety rules (plus an optional 40-rule community pack) across destructive surfaces — SQL, git, filesystem, secrets exfiltration, supply-chain RCE, reverse shells, sudo / privilege escalation, cloud (AWS/GCP/Azure), Kubernetes, Docker, IAM / cloud privilege escalation, anti-forensics (audit & log tampering), NoSQL / cache / search (Mongo, Redis, Elasticsearch, Cassandra), disabling host security controls, and Windows / PowerShell — and either blocks the call, prompts you for approval, or lets it through with a warning banner. And since v0.9 it watches the other direction too: tool catalogs are TOFU-pinned against rug pulls, descriptions are scanned for tool poisoning, and tool results are scanned for prompt injection. v1.0 completes the story before install and below the protocol: --scan audits an MCP server before you ever wire it in, and --sandbox confines the server *process* at the OS level. And since v1.4, reversible secret cloaking lets your agent reference a real credential as a {{cloak:NAME}} placeholder — the secret is substituted in only on the frame Shield forwards upstream and scrubbed back out of any result, so it never enters the model's context, transcript, or prompt cache. v1.5 adds the seam the August 2026 market actually demos: native Cursor / Claude Code PreToolUse hooks (fail-closed), --scan-ide for TrustFall project MCP + Skills, and curl -fsSL https://shield-get.aperion.ai | sh.
Plus, when you need to prove who approved a destructive call — not just that *someone* did — Shield can gate selected rules behind biometric identity verification (ID.me, or a pluggable OIDC provider). And when you outgrow the single-machine model, the same binary enrolls into a Smartflow control plane with one command to pull org-wide policy, ship audit upstream, and use your existing IdP as the relying party — no rewrite, no re-install.
v1.8 and v1.9 ship together as shield-v1.20.0. Same ask on every host we install hooks for: Claude Code and Gemini get permissionDecision: ask on PreToolUse. Cursor, Codex, and Copilot get permission: ask on beforeShellExecution and beforeMCPExecution, which is the event those hosts actually prompt on. A rule written as Critical (rm -rf /, a reverse shell, an agent editing Shield) is still a hard deny.
curl -fsSL https://shield-get.aperion.ai | sh
aperion-shield --install-agent-hooks aperion-shield --install-guard
A watcher that sits next to the hooks, not in front of them.
AGENTS.md, CLAUDE.md, .cursorrules, .cursor/rules). When one changes it runs the IDE scan again. If an agent deleted Shield's hook entry, the entry is put back. A desktop notification is the alert. No root.--guard-once is a single pass.aperion-shield --install-agent-hooks
aperion-shield --install-guard
A credential read followed by curl is an ask, the same allow/deny card Cursor already shows for a git push. rm -rf /, a reverse shell, and an agent editing Shield's own hooks stay a hard deny.
Shield already stopped a bad tool call before it ran. It did not watch what the agent had just read, so "read .env, then curl it somewhere" got through whenever the two steps were separate. v1.8 closes that on the machine you already installed, with no cloud and no model in the loop.
--install-agent-hooks now also registers Claude/Gemini PostToolUse and Cursor afterShellExecution, afterMCPExecution, and postToolUse (Codex and Copilot get postToolUse). The new --check-hook-post scans that output with the existing tool_result injection rules, tags any credential shape into the taint ledger, and writes a short-lived session flag. Claude can deny and hand the reason back to the model. Cursor's post events cannot deny, so the flag is what the next pre-call acts on. Cursor beforeReadFile is wired too: that event already has the file body and can deny before the model sees it.egress.after_secret_read asks (the IDE allow/deny card) before a network send (curl -d/-F/-T, wget --post-file, nc, socat, remote scp/rsync, git push of a URL, an inline HTTP POST, DNS via $(...)) when this session already read a credential or the taint ledger matches. egress.after_injection asks when the session saw injected tool output. egress.unlisted_host warns on any other send. policy.egress.allow_hosts (or APERION_SHIELD_EGRESS_ALLOW) quiets the warn for known hosts. It does not quiet the two escalations.op read / gh auth token, and dev configs (.npmrc, .pypirc, .netrc, docker, kube, gcloud, wallet paths).shield.self_tamper blocks an agent write or shell call that touches hook configs, ~/.aperion-shield/, SHIELD_HOOKS_DISABLE, SHIELD_SHIMS_DISABLE, or an uninstall flag. It is where: agent_hook, so it does not fire from your own terminal or the shell shims. aperion-shield --summarize still runs.aperion-shield --install-agent-hooks
One cost feature, on the security seam Shield already owns. Most of a coding agent's frontier-model bill is loading files, not thinking about them. v1.7 refuses the load and hands the file to a cheap model instead.
policy.io_offload.min_lines: 350 in your shieldset (or APERION_SHIELD_OFFLOAD_MIN_LINES=350 on one machine) and the PreToolUse hook denies a full Read, cat, less, or head -n 900 of any file over that many lines (rule io.offload_large_read). Targeted reads (offset/limit), pipes, redirects, head/tail with a small -n, binaries, and missing files pass. Off by default: nothing changes for existing installs until you set it./api/offload/summarize, and prints bullets with path:line citations from the efficient model. The expensive model sees a dozen lines instead of a few thousand. Gateway comes from --offload-url / --offload-key, APERION_SHIELD_OFFLOAD_URL / _KEY, or the org-mode enrollment. The saving shows up in FinOps under io_offload.export APERION_SHIELD_OFFLOAD_MIN_LINES=350
aperion-shield --summarize src/proxy_handler.rs --question "where is vkey auth enforced?"
The gate is the hook you already installed and the summarizer is your own governed gateway. Nothing leaves your Smartflow.
v1.5 covered the IDE hook seam and curl | sh. v1.6 fills the leftover holes from that pass:
--sandbox secrets / --sandbox strict now confine the stdio upstream on Linux the way Seatbelt already does on macOS. strict without --sandbox-allow-network refuses to start if the kernel cannot deny TCP. Helper flag --internal-sandbox-exec is not user-facing.--install-shims writes aws.cmd (and friends) so PATHEXT resolves them. Same fail-open / SHIELD_SHIMS_DISABLE=1 contract as the POSIX shims.--install-agent-hooks merges user-level config for those hosts too (Cursor dialect for Codex and Copilot, Claude dialect for Gemini).--scan-ide flags scan.ide.project_hooks.The August 2026 market moved the real attack surface off MCP wrappers. Agents run Bash, Write, and Read as native tools. Project mcp.json can auto-start on folder trust (TrustFall). Snyk Agent Scan walks the whole machine. v1.5 covers those three without a cloud account.
aperion-shield --install-agent-hooks writes fail-closed wrappers and merges user-level Claude Code PreToolUse (~/.claude/settings.json) and Cursor preToolUse (~/.cursor/hooks.json). --check-hook reads the host JSON on stdin and emits the matching deny dialect (they are not interchangeable). SHIELD_HOOKS_DISABLE=1 is the documented bypass. Project-level hook files are left alone on purpose — TrustFall is project-injected.$HOME and the project root, plus SKILL.md trees. Flags unwrapped command-type servers, unpinned npx/uvx, and project-local configs. Skills run through the ATR skill_compromise rules. Nothing is executed. Exit 0/1/2 for CI.curl -fsSL https://shield-get.aperion.ai | sh (same pattern as Halo). Then --install-agent-hooks. Halo's installer now prints that two-liner after a successful Halo install — Shield is not silently bundled.curl -fsSL https://shield-ge只显示了开头部分;其余内容请在仓库中阅读