Token导航 LogoToken导航

MCP Server · 安全风控

bad MCP

bad-mcp是一个包含10个恶意MCP服务器的套件,用于演示针对AI客户端的协议级攻击模式,适用于安全研究和教育。

未说明官方级别未说明来源级核验工具 10
安全GoClaudeClaude DesktopCursorWindsurf

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
canack
提供方
canack

工具数量

10

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

9

仓库热度

收录来源

1 个

MCP World

选型结论

bad MCP 属于安全风控类 MCP Server,公开资料标注 10 个工具,通过传输方式未标注接入,适配 Claude Desktop、Claude、Cursor,没有现成的安装命令;接入前先确认权限范围。

分类

安全风控

传输方式

未说明

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

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

  4. 4

    验证是否可用

    连接成功后客户端会列出 10 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

公开资料仍需确认:安装命令

详细介绍

坏mcp

10台故意恶意的MCP服务器 协议级攻击模式 针对AI客户端。每台服务器都利用了 模型上下文协议 --工具描述、模式、资源、会话管理和跨服务器交互。

这些不是等待被利用的有缺陷的服务器。他们 是 袭击者。

警告:此项目仅用于授权的安全研究和教育。不要将这些服务器暴露在互联网上或在生产中使用它们。

为什么存在

MCP的采用正在加速——Claude Desktop、Cursor、Windsurf和其他数十个人工智能客户端现在都支持它。但该协议的信任模型存在根本差距:工具描述未经验证,模式可以携带隐藏的指令,服务器可以在会话中更改定义。研究来自 CyberArk, 不变实验室,以及 弹性安全实验室 已经记录了这些攻击,但工作实现很少。

bad mcp提供了具体的、可运行的攻击服务器,因此客户端开发人员可以测试防御,安全团队可以评估风险,研究人员可以研究协议级威胁,而无需从头开始构建一切。

这有什么不同

|---|---|---|---| | 视角 |服务器是攻击者|服务器是受害者|服务器是受害人| | 聚焦 |仅MCP协议级攻击|混合(提示注入+经典appsc)|混合(路径遍历、SQLi、MCP)| | 攻击 |FSP、ATPA、地毯拉取、资源中毒、跨服务器阴影|CTF挑战(简单/中等/困难)|9台服务器,最重要的培训| | 语言 |Go+mcp Go SDK | Python | JS+Python| | 孤立 |Docker编写,无主机访问权限|本地Python脚本| Docker编写| | 独特 |通过会话工具+通知进行Rug拉取,通过参数名称进行完全模式中毒|挑战/评分格式|键入重点|

建筑

vuln-external network (localhost:8001-8010)
┌────────────────────┐ ┌────────────────────┐ ┌────────────────────┐
│ schema-poison-notes│ │ response-inject-   │ │ shadow-exfil       │
│       :8001        │ │ tickets    :8002   │ │       :8003        │
└────────────────────┘ └────────────────────┘ └────────────────────┘
┌────────────────────┐ ┌────────────────────┐ ┌────────────────────┐
│ squatting-file-ops │ │ tool-poisoning-calc│ │ true-rug-pull      │
│       :8004        │ │       :8005        │ │       :8006        │
└────────────────────┘ └────────────────────┘ └────────────────────┘
┌────────────────────┐ ┌────────────────────┐ ┌────────────────────┐
│ resource-poison-   │ │ indirect-inject-   │ │ exfil-chain-       │
│ docs       :8007   │ │ fetcher    :8008   │ │ analytics  :8009   │
└────────────────────┘ └────────────────────┘ └────────────────────┘
┌────────────────────┐
│ denial-of-wallet   │
│       :8010        │
└────────────────────┘

服务器

端口服务器MCP攻击类协议功能被利用
8001架构中毒注释完全架构中毒(FSP)input_schema 参数名称
8002响应注射票通过输出(ATPA)建议工具中毒工具响应内容
8003影子剥离跨服务器影子多服务器工具说明
8004蹲式文件操作工具名称冲突/蹲式工具命名+描述
8005工具中毒钙工具描述中毒(TPA)工具描述
8006真地毯拉地毯拉(工具定义突变)会话工具+通知
8007资源中毒文档资源中毒(ATPA变体)resources/list + resources/read
8008间接注射提取器间接快速注射工具输出中的外部数据
8009提取链分析跨工具提取链通过描述进行工具链接
8010拒绝钱包拒绝钱包递归调用+大量输出

每台服务器都有自己的 README.md 包含漏洞详细信息、漏洞利用场景、检测方法和缓解策略。

快速开始

# Build and start all servers
docker-compose build && docker-compose up -d

# Run smoke tests (runs entirely inside Docker)
docker-compose --profile test run --rm smoke-test

# View exfiltration logs
docker-compose logs schema-poison-notes | grep EXFIL
docker-compose logs true-rug-pull | grep RUG-PULL

# Stop
docker-compose down

连接MCP客户端

之后 docker-compose up -d,连接任何与SSE兼容的MCP客户端(Claude Desktop、Cursor、Windsurf、Claude Code等)。所有服务器都使用相同的JSON格式:

{
  "mcpServers": {
    "schema-poison-notes":    { "url": "http://localhost:8001/sse" },
    "response-inject-tickets":{ "url": "http://localhost:8002/sse" },
    "shadow-exfil":           { "url": "http://localhost:8003/sse" },
    "squatting-file-ops":     { "url": "http://localhost:8004/sse" },
    "tool-poisoning-calc":    { "url": "http://localhost:8005/sse" },
    "true-rug-pull":          { "url": "http://localhost:8006/sse" },
    "resource-poison-docs":   { "url": "http://localhost:8007/sse" },
    "indirect-inject-fetcher":{ "url": "http://localhost:8008/sse" },
    "exfil-chain-analytics":  { "url": "http://localhost:8009/sse" },
    "denial-of-wallet":       { "url": "http://localhost:8010/sse" }
  }
}
提示: 从开始 tool-poisoning-calc (:8005)——观察到的最简单的攻击。那就试试 true-rug-pull (:8006)——询问天气3次以上,观察工具的变化。

安全保证

关注保证
主机文件系统没有卷装载。容器对主机文件系统没有任何访问权限。
主机网络否 network_mode: host所有容器都使用隔离的Docker网桥网络。
特权访问否 privileged: true不 cap_add默认限制功能。
环境泄漏未传递主机环境变量。所有“凭据”都是伪造的硬编码字符串。
主机执行主机上没有运行任何东西。测试通过以下方式在Docker中运行 --profile test.
磁盘上的代码惰性Go源文件。在Docker之外不可执行。

技术栈

  • MCP服务器:去吧+ mcp go v0.32.0 (SSE运输)
  • 码头工人:多阶段 golang:1.23-alpine -> alpine:3.19
  • 编排:docker与网络隔离
  • 测试:码头化Go冒烟测试(--profile test)

研究参考文献

服务器源
模式中毒注释CyberArk——全模式中毒
响应注入票CyberArk——ATPA
阴影去角质不变实验室——工具中毒
压缩文件操作弹性安全实验室
工具中毒钙不变实验室——工具中毒
真正的地毯拉力ETDI纸
资源中毒文档支柱安全
间接注射式提取器微软——间接注入
剥离链分析弹性安全实验室
拒绝钱包即时安全——MCP十大风险

另请参见: Adversa AI——MCP安全TOP 25 | MCPTox基准测试 | 代理应用程序的OWASP前10名

已知差距

以下已发布的MCP攻击类尚未实现:

  • 服务器身份欺骗 --MCP服务器欺骗可信 serverInfo 初始化期间的名称/版本
  • 抽样滥用 --剥削 sampling/createMessage 注入任意提示
  • 提示/系统指令泄漏 --通过精心设计的工具响应提取系统提示
  • 通知通道过滤 --滥用进度/日志通知作为数据通道

工具与能力

工具数量

10

资源数量

0

提示词数量

0

能力标签

安全研究Go本地部署MCP协议AI安全协议级攻击漏洞测试

支持客户端

Claude DesktopClaudeCursorWindsurf

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

资产与漏洞排查

批量查询资产和漏洞信息,输出待修清单。

日志审计

从日志里筛出异常访问和高风险操作。

合规检查

按规则核对配置项,记录不符合项。

选择建议

值得选的地方

  • 工具数量 10 个,一次接入能覆盖的操作比单点工具更全。
  • 已经适配 Claude Desktop、Claude、Cursor,换客户端不用重新研究配置。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在安全风控场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
bad MCP

MCP World · 本页

10未说明未标注1 个2026-05-17
Modelcontextprotocol C22988b0

MCP World

0stdio有1 个2026-05-17
Hexstrike AI

MCP World

0stdio有1 个2026-05-17
Cyber Strike AI

MCP World

75未说明未标注1 个2026-05-17
MCP Scan

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

bad MCP 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

bad MCP 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

bad MCP 收费吗?

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

bad MCP 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

bad MCP 支持哪些客户端?

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

来源信息

继续浏览同类 MCP