@guardbee/mcp-toxic-flow-auditor 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -1
- package/TR.md +4 -1
- package/ZH.md +64 -0
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @guardbee/mcp-toxic-flow-auditor
|
|
2
2
|
|
|
3
|
-
**🇬🇧 English** | [🇹🇷 Türkçe](TR.md)
|
|
3
|
+
**🇬🇧 English** | [🇹🇷 Türkçe](TR.md) | [🇨🇳 中文](ZH.md)
|
|
4
4
|
|
|
5
5
|
An MCP server that audits an MCP **tool catalog** for **toxic flows** — Simon Willison's *lethal trifecta*:
|
|
6
6
|
|
|
@@ -28,9 +28,12 @@ Claude ──► toxic-flow-auditor ──► tools/list JSON or MCP server sour
|
|
|
28
28
|
- **Single-tool trifecta.** One registration whose name/description itself spans all three capabilities.
|
|
29
29
|
- **Dangerous pairs.** Sensitive+exfil, untrusted+exfil, or sensitive+destructive even when the full trifecta is not present.
|
|
30
30
|
- **KVKK-aware heuristics.** Turkish PII signals (`tc_kimlik`, `müşteri`, `KVKK`) count as sensitive data.
|
|
31
|
+
- **snake_case names read word by word.** `read_vault_secret` and `drop_table` are classified by each word; opening a pull request counts as exfiltration.
|
|
31
32
|
|
|
32
33
|
Grades **A–F**. No API key. Static / catalog analysis only — does not call live tools.
|
|
33
34
|
|
|
35
|
+
The classification rules come from [`@guardbee/guard-core`](../guard-core/README.md); `@guardbee/mcp-security-proxy` uses the same rules to block toxic flows at runtime.
|
|
36
|
+
|
|
34
37
|
## Tools
|
|
35
38
|
|
|
36
39
|
| Tool | Purpose |
|
package/TR.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @guardbee/mcp-toxic-flow-auditor
|
|
2
2
|
|
|
3
|
-
[🇬🇧 English](README.md) | **🇹🇷 Türkçe**
|
|
3
|
+
[🇬🇧 English](README.md) | **🇹🇷 Türkçe** | [🇨🇳 中文](ZH.md)
|
|
4
4
|
|
|
5
5
|
Bir MCP **tool kataloğunu** **toksik akışlar** (Simon Willison'ın *lethal trifecta*'sı) için denetleyen bir MCP server:
|
|
6
6
|
|
|
@@ -28,9 +28,12 @@ Claude ──► toxic-flow-auditor ──► tools/list JSON veya MCP server ka
|
|
|
28
28
|
- **Tek-tool trifecta.** İsim/açıklaması üç yeteneği birden kapsayan tek kayıt.
|
|
29
29
|
- **Tehlikeli çiftler.** Tam trifecta yokken bile sensitive+exfil, untrusted+exfil veya sensitive+destructive.
|
|
30
30
|
- **KVKK bilinci.** `tc_kimlik`, `müşteri`, `KVKK` gibi Türkçe PII sinyalleri hassas veri sayılır.
|
|
31
|
+
- **snake_case isimler kelime kelime okunur.** `read_vault_secret` ve `drop_table` her kelimesine göre sınıflandırılır; pull request açmak exfiltration sayılır.
|
|
31
32
|
|
|
32
33
|
Not: **A–F**. API anahtarı yok. Sadece statik / katalog analizi — canlı tool çağrısı yok.
|
|
33
34
|
|
|
35
|
+
Sınıflandırma kuralları [`@guardbee/guard-core`](../guard-core/TR.md)'dan gelir; `@guardbee/mcp-security-proxy` toxic flow'ları çalışma anında aynı kurallarla engeller.
|
|
36
|
+
|
|
34
37
|
## Tool'lar
|
|
35
38
|
|
|
36
39
|
| Tool | Amaç |
|
package/ZH.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# @guardbee/mcp-toxic-flow-auditor
|
|
2
|
+
|
|
3
|
+
[🇬🇧 English](README.md) | [🇹🇷 Türkçe](TR.md) | **🇨🇳 中文**
|
|
4
|
+
|
|
5
|
+
一个 MCP 服务器,用于审计 MCP **工具目录**中的**有毒数据流**——即 Simon Willison 所说的 *lethal trifecta*(致命三要素):
|
|
6
|
+
|
|
7
|
+
1. **不可信内容**(fetch、scrape、browse、issue、feed)
|
|
8
|
+
2. **敏感 / 私有数据**(vault、数据库、密钥、受 KVKK 监管的 PII)
|
|
9
|
+
3. **外泄或破坏**(send、webhook、export、delete、drop)
|
|
10
|
+
|
|
11
|
+
当一个 MCP 服务器同时暴露这三者时,一次 prompt 注入就能把它们串联起来。主要对应 **OWASP MCP10:2025**。
|
|
12
|
+
|
|
13
|
+
> 本包默认发送使用遥测(工具名 + 较短的参数,绝不包含被扫描的代码——见 [`@guardbee/mcp-telemetry`](../telemetry/README.md))。设置 `GUARDBEE_TELEMETRY=0` 即可关闭。
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
Claude ──► toxic-flow-auditor ──► tools/list JSON 或 MCP 服务器源码
|
|
17
|
+
│
|
|
18
|
+
├─ lethal_trifecta (不可信 + 敏感 + 外发)
|
|
19
|
+
├─ single_tool_trifecta (单个工具就同时具备三者)
|
|
20
|
+
├─ sensitive_plus_exfil
|
|
21
|
+
├─ untrusted_plus_exfil
|
|
22
|
+
└─ sensitive_plus_destruct
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## 检测内容
|
|
26
|
+
|
|
27
|
+
- **目录层面的 lethal trifecta。** 同一服务器上有工具能抓取不可信内容、能访问 vault/数据库/PII,并且能把数据发出去或销毁数据。
|
|
28
|
+
- **单工具 trifecta。** 某一个工具注册本身的名称/描述就同时覆盖三种能力。
|
|
29
|
+
- **危险组合。** 即使完整的三要素不成立,也会报告 敏感+外泄、不可信+外泄 或 敏感+破坏 的组合。
|
|
30
|
+
- **考虑 KVKK 的启发式规则。** 土耳其语的 PII 信号(`tc_kimlik`、`müşteri`、`KVKK`)也算作敏感数据。
|
|
31
|
+
- **按词分析 snake_case 名称。** `read_vault_secret`、`drop_table` 这类名称会逐词识别;创建 pull request 算作外泄。
|
|
32
|
+
|
|
33
|
+
评级为 **A–F**。无需 API 密钥。仅做静态 / 目录分析——不会调用真实工具。
|
|
34
|
+
|
|
35
|
+
分类规则来自 [`@guardbee/guard-core`](../guard-core/ZH.md),`@guardbee/mcp-security-proxy` 在运行时使用同一套规则拦截有毒数据流。
|
|
36
|
+
|
|
37
|
+
## 工具
|
|
38
|
+
|
|
39
|
+
| 工具 | 用途 |
|
|
40
|
+
|---|---|
|
|
41
|
+
| `audit_catalog` | 审计 `tools/list` 格式的 JSON 导出 |
|
|
42
|
+
| `scan_source` | 从源码文本中提取 `.tool(...)` 注册 |
|
|
43
|
+
| `scan_file` | 扫描单个源文件 |
|
|
44
|
+
| `scan_directory` | 递归扫描;合并各文件中的工具 |
|
|
45
|
+
| `explain_trifecta` | 解释该模型 |
|
|
46
|
+
|
|
47
|
+
## CLI
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
npx @guardbee/mcp-toxic-flow-auditor audit <tools.json> [--fail-on=any] [--format=text|json|sarif]
|
|
51
|
+
npx @guardbee/mcp-toxic-flow-auditor scan <path> [--fail-on=any] [--format=text|json|sarif]
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
目录示例:
|
|
55
|
+
|
|
56
|
+
```json
|
|
57
|
+
{
|
|
58
|
+
"tools": [
|
|
59
|
+
{ "name": "fetch_page", "description": "Scrape a URL" },
|
|
60
|
+
{ "name": "read_vault_secret", "description": "Read API key from vault" },
|
|
61
|
+
{ "name": "send_slack_message", "description": "Post to webhook" }
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@guardbee/mcp-toxic-flow-auditor",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"mcpName": "io.github.4hmetuyar/toxic-flow-auditor",
|
|
5
5
|
"description": "MCP server that detects toxic flows (lethal trifecta) across an MCP tool catalog — untrusted content + private/sensitive data + exfiltration or destruction on the same server",
|
|
6
6
|
"type": "module",
|
|
@@ -18,12 +18,13 @@
|
|
|
18
18
|
"files": [
|
|
19
19
|
"dist",
|
|
20
20
|
"README.md",
|
|
21
|
-
"TR.md"
|
|
21
|
+
"TR.md",
|
|
22
|
+
"ZH.md"
|
|
22
23
|
],
|
|
23
24
|
"dependencies": {
|
|
24
25
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
25
26
|
"zod": "^4.5.4",
|
|
26
|
-
"@guardbee/guard-core": "^0.
|
|
27
|
+
"@guardbee/guard-core": "^0.3.0",
|
|
27
28
|
"@guardbee/mcp-telemetry": "^0.1.3"
|
|
28
29
|
},
|
|
29
30
|
"keywords": [
|