mcpField
D
Dredd MCP

Dredd MCP

远程服务
analytics.dugganusa.com安全05 天前更新

关于 Dredd MCP

Dredd MCP 为 Agent 及其运营者提供调用前的 MCP 服务安全检查。它检查依赖风险、工具和 URL 变更以及权限升级,并返回带证据的签名判定;可见性有限时会给出提示。

主要功能

  1. 01检查直接和传递依赖风险
  2. 02将工具与已批准快照比较
  3. 03检测远程 URL 变更
  4. 04标记权限升级
  5. 05返回 HMAC 签名判定
  6. 06端点不可用时默认放行

适用场景

  1. 01调用工具前检查 MCP 服务
  2. 02服务更新后审查新增工具
  3. 03会话开始前评估软件包供应链风险
  4. 04依赖数据不可用时提示不确定性

MCP 相关

Dredd 通过远程 MCP 服务提供 `check_mcp_server` 工具。MCP 客户端可提交服务名称、可选版本和工具名称,并获得 `ALLOW`、`ADVISORY` 或 `BLOCK` 判定。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://analytics.dugganusa.com/api/v1/dredd/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

1
参数类型必填说明
toolstring否正在调用的特定工具名称(可选)
serverstring是必填。要评估的服务:其准确的 MCP Registry 名称(io.github.owner/server-name,可选带 @version)。裸名称(server-name)按输入内容评估,不会映射到 Registry 服务;匹配的完整名称会通过 input.did_you_mean 返回。仅当身份可被证明时,也会解析 Registry URL(https://registry.modelcontextprotocol.io/v0/servers/<name>)和由该所有者发布且恰好对应一个 Registry 服务的 GitHub 仓库("owner/repo" 或 https://github.com/owner/repo)。软件包名称(npm/PyPI)、镜像和 Smithery id 会被记录,但按原样评估(通常为 REVIEW):其名称无法证明实际运行的是哪段代码。拒绝:命令、shell 元字符、非 ASCII 字符、本地路径、端点 URL。不会进行子字符串或模糊匹配:任何无法解析为唯一一个服务的输入都会返回 REVIEW,不会猜测。
versionstring否MCP 服务的版本(semver,可选)。若此项为空,则使用 `server` 中的版本([email protected])。

详细介绍

Dredd MCP — 为 MCP 生态系统提供上线前安全检查

文档: https://docs.dugganusa.com/agents/dredd/

你做你自己的事,我做我自己的事。我们共享上下文。

如今,一切都是上下文:数据、传输,甚至你客厅里的电视。共享上下文,绝不共享核心。在你的 Agent 运行之前,Dredd 会审查即将进入其中的内容:服务、它的完整依赖树,以及针对它发布的 CVE。每个判定都经过签名;如果我们无法查看,就会如实给出 unknown。

“Jeevesus 负责拯救,Dredd 负责审判。”

Dredd MCP 是面向 Model Context Protocol 生态系统的调用前安全检查。在你的 Agent 调用其他任何 MCP 服务上的工具之前,Dredd 都会给出判定:BLOCK、ADVISORY 或 ALLOW。每个判定都经过 HMAC 签名,并注明触发决策的 IOC 或行为信号。

2026 年 4 月下旬,8 天内有 3 个 PyPI 机器学习软件包遭到入侵。实际环境中,20 多个名称带有 MCP 的 GitHub 仓库被发现正在传播 SmartLoader 恶意软件。我们进行测量时,官方 MCP Registry 中没有这些问题,但仿冒包攻击面仍然敞开。

Dredd 是一道防线,能在下一个恶意工具被调用之前,拦截下一次入侵。


最新动态 — 依赖图检查(Shai-Hulud 类攻击)

Dredd 不再只检查指定的服务,而是会遍历传递依赖图。

Shai-Hulud 蠕虫给整个生态系统上了沉重的一课:恶意代码很少藏在你安装的软件包里,而是在下游三层的传递依赖中,攻击者窃取了该依赖的发布令牌。只检查你指定的服务,恰好会漏掉一直在攻击 npm 和 PyPI 的这类威胁。

因此,每次调用前检查现在都会解析目标服务的完整 npm/pypi 依赖图,并将所有传递依赖包与我们持续更新的 IOC 语料库进行比对,其中包括 npm 和 PyPI 的 OSV 恶意软件包源。如果依赖树中任何位置藏有已知恶意软件包,Dredd 都会在工具运行前阻止调用。

判定经过签名(HMAC-SHA256),并新增了 dep_graph 字段,用于说明是否确实检查了该目标的传递依赖供应链风险:

{
  "verdict": "BLOCK",
  "severity": "critical",
  "dep_graph": { "evaluated": true, "packages_checked": 247, "malicious_transitive": 1 },
  "signature": "sha256=..."
}

如果服务未提供可解析的清单,dep_graph.evaluated 将为 false,Dredd 会降级为提示级别——它会告知你自己无法查看依赖树,而不是假装依赖树是干净的。


Dredd 检查的内容

每次调用前检查都会评估以下信号:

  1. 受入侵的依赖,包括传递依赖(Shai-Hulud 类攻击)。 解析目标服务的软件包清单,解析其完整的 npm/pypi 依赖图,并将所有软件包(直接依赖和传递依赖)与我们持续更新的 IOC 语料库进行比对(Socket、Aikido、GitGuardian、ReversingLabs、Phylum、StepSecurity、Wiz,以及 npm 和 PyPI 的 OSV 恶意软件包源)。如果服务或其引入的任何传递依赖固定使用 lightning==2.6.2 或其他任何已知遭入侵的版本,就会阻止调用。判定中的 dep_graph 字段会报告是否检查了传递依赖树。
  2. 工具表面变化。 比较服务今天公开的工具列表与用户最初批准时的快照。自上次审查后出现的新工具会触发提示。威胁模型是会话中途发生的 rugpull。
  3. 远程 URL 变化。 将服务的运行时端点与它在注册表中发布的 URL 进行比较。服务悄悄改为连接到与你注册时不同的主机,是一种劫持信号。
  4. 权限升级。 服务请求了上周尚未拥有的写入或执行权限。

判定会在 200 毫秒内返回,并经过签名(由 Cloudflare 边缘缓存,TTL 为 5 分钟)。默认情况下,钩子会开放失败——如果我们的端点发生故障,Dredd 不会让你的工具无法使用。


安装 — Claude Desktop

添加到你的 claude_desktop_config.json:

{
  "mcpServers": {
    "dredd": {
      "url": "https://analytics.dugganusa.com/api/v1/dredd/mcp"
    }
  }
}

重启 Claude Desktop。你会看到 Dredd 可用,其中包含一个工具:check_mcp_server。

安装 — Cursor

添加到 ~/.cursor/mcp.json:

{
  "mcpServers": {
    "dredd": {
      "url": "https://analytics.dugganusa.com/api/v1/dredd/mcp"
    }
  }
}

在终端中测试

curl -X POST https://analytics.dugganusa.com/api/v1/dredd/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

你应该会看到一个工具:check_mcp_server。


工具

check_mcp_server
参数类型必填描述
serverstring是MCP 服务名称(例如 io.github.foo/bar)或子字符串
versionstring否可选的服务 semver 版本
toolstring否可选的正在调用的特定工具名称

返回 JSON 判定结果:

{
  "success": true,
  "server": "io.github.foo/bar",
  "version": "1.2.3",
  "tool": "list_files",
  "verdict": "ALLOW",
  "severity": "clean",
  "findings_count": 0,
  "findings": [],
  "dep_graph": { "evaluated": true, "packages_checked": 247, "malicious_transitive": 0 },
  "checked_at": "2026-05-04T20:00:00Z",
  "ttl_seconds": 300,
  "signature": "sha256=..."
}

判定值:

判定结果严重性级别操作建议
BLOCKcritical 或 high拒绝调用。不要调用目标工具。
ADVISORYmedium 或 advisory向用户提示;由用户决定。
ALLOWclean继续。

signature 字段是使用服务端密钥对规范化判定结果正文生成的 HMAC-SHA256。Hook 应验证此字段,以防止中间人伪造“全部正常”的响应(验证密钥可按需通过带外方式分发)。


公共瞭望台

实时汇总仪表板,显示注册表中所有活跃发现项——免费、无需身份验证、无需提供邮箱:

https://analytics.dugganusa.com/api/v1/dredd/watchtower.json

返回按严重性划分的计数、近期发现项和当前判定结果(CLEAN / WATCH / HIGH / CRITICAL)。

随着每日抓取器与关联分析流水线对已注册的 MCP 语料库运行,数据会持续更新。


Dredd 的工作方式

       ┌─────────────────────────────────────────────────┐
       │  Your Agent (Claude Desktop / Cursor / custom)   │
       │     calls check_mcp_server(server, version, tool)│
       └─────────────────┬───────────────────────────────┘
                         │ JSON-RPC over HTTPS
                         ▼
        ┌────────────────────────────────────────────────┐
        │  Dredd MCP — analytics.dugganusa.com/api/v1/dredd/mcp │
        │  - look up findings for (server, version, tool)│
        │  - aggregate severity, render verdict          │
        │  - HMAC-sign canonical verdict                 │
        └────────────────┬───────────────────────────────┘
                         │
                         ▼
        ┌────────────────────────────────────────────────┐
        │  mcp_findings index — populated by             │
        │  daily fetcher + correlator joining the        │
        │  resolved transitive dep graph × IOC corpus    │
        │  (Socket, Aikido, GitGuardian, ReversingLabs,  │
        │   + OSV malicious-package feeds: npm & PyPI)    │
        └────────────────────────────────────────────────┘

目前的关联分析频率为每 12 小时一次(08:30 UTC 和 20:30 UTC)。当已注册的 MCP 语料库中出现真实入侵事件时,会提高分析频率。


信任状况

  • 响应经过 HMAC 签名。 Hook 实现应验证每条判定结果中的 signature 字段。
  • 默认故障时放行。 如果我们的端点宕机,Dredd 不会让你的工具无法使用——它会返回“advisory: backend unavailable”,由用户决定。对于关键工作流,可记录覆盖方式(DREDD_BYPASS=<reason>)。
  • 只读。 Dredd 绝不会修改你的环境。它只提供判定结果。
  • 与现有工具并行工作。 Dredd 会在工具调用前增加一次判定;客户端自身的权限提示和你自己的审核仍然有效。
  • 不会泄露工具参数。 Hook 应仅发送 (server, version, tool),绝不发送工具参数的内容。参数内容会保留在你的机器上。
  • 语料库经过验证,而不只是规模庞大。 每条判定结果背后的 IOC 语料库都可通过四个实时、无需身份验证的端点独立核验:新颖性(/api/v1/feed-uniqueness,与 ThreatFox 的重叠情况)、时效性(/api/v1/kev-lead,实时记录每个遭利用的 CVE 何时进入我们的语料库,并与 CISA KEV 日期并列展示)、准确性(/api/v1/spamhaus-validation)和活跃度(/api/v1/feed-efficacy,由用户选择加入的消费者报告,记录我们的指标何时在真实流量中触发——这证明信息源在实际运行中处于活跃状态,而不只是规模庞大)。
  • 认知置信度上限为 95%。 根据 DugganUSA 的认知谦逊规则,我们将声明的置信度上限设为 95%。覆盖缺口:目前注册表中约 60-70% 的 MCP 服务没有公开源代码仓库,因此 Dredd 无法检查其依赖树。针对这些服务设有 advisory 级别。

家族

Dredd 是 DugganUSA 防护工具家族的第 13 位成员,也是首个原生支持 MCP 的成员:

配套 MCP 服务:Jeevesus,可通过自然语言搜索 DugganUSA 语料库(实时计数)。


许可证

MIT — 参见 LICENSE。

支持


构建于明尼阿波利斯。防护级别。只读。凭据自会说明一切。


DugganUSA 防护工具家族

同一 DugganUSA Feed,在你使用的各种平台上呈现。开源,采用 MIT 许可证,每个仓库都有凭据。

插件平台
dugganusa-scanner-core核心 IOC 扫描引擎
dugganusa-vscodeVS Code 扩展
dugganusa-splunkSplunk Technology Add-on
dugganusa-slackSlack 机器人
dugganusa-raycastRaycast 扩展
dugganusa-sentinelMicrosoft Sentinel TAXII 连接器
dugganusa-obsidianObsidian 插件
dugganusa-nvimNeovim 插件
dugganusa-elasticElastic / OpenSearch 集成
dugganusa-edge-shieldCloudflare Worker
dugganusa-cliCLI 扫描器
dugganusa-chromeChrome 扩展
dugganusa-actionGitHub Action
dredd-mcp (本仓库)Dredd:飞行前 MCP 安全检查

由 DugganUSA Feed 提供支持。数据实时更新:/api/v1/search/stats。定价:analytics.dugganusa.com/stix/pricing。联系:[email protected]。

可供你核验的威胁情报。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。