原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

GSC Scanner

作者:poliakarmai版本 1.0.0i★ –i在你的电脑上运行
注册名称io.github.poliakarmai/gsc-scanner

安装

概览

作者提供的说明(英文原文)

Local security scanner for AI agents: SAST, SCA, secrets, IaC; verifies exploit and fix.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 网络安全

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

你需要

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "gsc-scanner": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GSC_ALLOWED_ROOTS",
        "ghcr.io/poliakarmai/gsc-scanner:v1",
        "mcp"
      ],
      "env": {
        "GSC_ALLOWED_ROOTS": "your-value"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add gsc-scanner --env GSC_ALLOWED_ROOTS=your-value -- docker run -i --rm -e GSC_ALLOWED_ROOTS ghcr.io/poliakarmai/gsc-scanner:v1 mcp

运行前请先填写空着的值。

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "gsc-scanner": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GSC_ALLOWED_ROOTS",
        "ghcr.io/poliakarmai/gsc-scanner:v1",
        "mcp"
      ],
      "env": {
        "GSC_ALLOWED_ROOTS": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "gsc-scanner": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GSC_ALLOWED_ROOTS",
        "ghcr.io/poliakarmai/gsc-scanner:v1",
        "mcp"
      ],
      "env": {
        "GSC_ALLOWED_ROOTS": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • GSC_ALLOWED_ROOTS env
    Path inside the container that scan_repo/scan_diff may read.

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月9日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 poliakarmai 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“网络安全”中的其他服务器比较i

  • 星标数多于此分类中其他 1003 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 1003 个服务器的 72% 更新
  • 基础检查结果等于或优于此分类中其他 1003 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

GSC Scanner 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(1.0.0)于15天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Docker。

有什么可以替代它?

同一分类中有:SUNGLASSES, KillerSkills, Draugr

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

SUNGLASSES

Input firewall for AI agents: scan text and files before they're read. Local, no network by default.

作者:sunglasses-dev起步阶段↓ 549/周今天更新

在你的电脑上运行

KillerSkills

Security verdicts for agent skills and MCP servers, from sandbox runs, before you install them.

作者:cyligence-karim正在增长↓ 3070/周今天更新

在你的电脑上运行

Draugr

Security scanning for AI agents: SAST, SCA, secrets, IaC, DAST, ranked by real risk.

作者:draugr-dev非常新今天更新

在你的电脑上运行✓ draugr.dev

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

🛡️ GSC — Git Security Checker

English

GSC is a self-learning AppSec platform that proves exploits, verifies fixes, and heals CI.

detect → prove → fix → verify → heal → learn
$ gsc scan . --ci --json

[{"rule_id": "GS001", "severity": "CRITICAL", "title": "Hardcoded API key", "file_path": "app.py", "line": 1, "fix_suggestion": "Move this value to an env var"}]

Most scanners report matches. GSC proves them: every finding can be turned into a runnable proof-of-concept, validated in a sandbox, then fixed and re-verified by re-running the exploit.

What makes it different:

  • 68 detectors across SAST, SCA, secrets and IaC — plus a YAML rule DSL.
  • PoC auto-generation with a safe-exploitation gate: a finding ships with a working exploit, not just a line number.
  • Proof-of-Fix — a patch is only accepted after the exploit stops firing in a sandbox.
  • Self-learning — detectors are re-scored nightly against a calibration network; noisy patterns are auto-deactivated at <30% TP. Federated feedback is privacy-first ({tenant_hash, rule_id, tp, fp} + DP noise).
  • Priority by exploitability, not CVSS — EPSS + CISA KEV + ExploitDB.
  • BYO-LLM — the engine, detectors and PoC logic are ours; LLM revalidation runs on *your* key (any OpenAI-compatible endpoint, including a local Ollama). No key → fast regex-only mode.

Who it is for: platform/DevSecOps teams that need findings *proven* before a PR blocks; AppSec engineers triaging noisy regex output; AI coding agents that need a scanner tool over MCP.

Use it as a GitHub Action (see below), from the CLI / Docker image, or as an MCP server for AI coding agents — ten tools (scan_repo, scan_diff, list_findings, get_finding, get_poc, verify_finding, verify_findings, verify_fix, doctor, list_detectors) over stdio or HTTP. Read-only towards your repository: no patching, no PRs, no writes to the working tree. (verify_finding does execute a PoC — see the safety notes in the MCP section.)

Proven on real code: HALL_OF_FAME.md · first public case study: CASE_STUDY_CYBERBRO.md

Measured on 100 real GitHub projects

The same fixed corpus is re-scanned after detector changes — 100 real repositories (90 clean + 10 known-vulnerable), pinned to specific commits, regex-only, no LLM key. Same projects every run, so a delta is the fix and not a new dataset.

2026-08-21 (baseline)2026-08-28 (after FP fixes)
Findings64,83141,127
CRITICAL4,302414
HIGH37,2462,187
Known-vulnerable projects flagged8 / 1010 / 10
Clean projects with ≥1 false CRITICAL48 / 9041 / 90

CRITICAL precision on a labeled review of 434 findings: ~4–5% at baseline → 31.1% (TP = 135, FP = 299, 2026-08-26). That is still noisy. The remaining false-positive mass is concentrated in GS001 (secrets), GS005 (SQLi), GS020 (XSS) and GS037 (path traversal) and is worked down rule by rule — we publish the numbers we have, not the numbers we would like.

*Method note:* corpus, severity counting and per-rule aggregation are ours; the engine ships as a closed image, so reproducing this means running gsc scan --ci --json over the same pinned projects and aggregating the same way. No clean-room comparison against other vendors is implied.

License: this repo (Action, docs, marketing) is Apache-2.0. The engine ships as a closed Docker image ghcr.io/poliakarmai/gsc-scanner under BSL 1.1 (free to scan your own repos; competing SaaS requires a commercial license; converts to Apache-2.0 on 2030-08-06).

Case study: XSS in a 698★ OSINT platform (stars as of 2026-10-26)

First public proof — stanfrbd/cyberbro (46,677 LOC, 281 files):

FindingCWE-79 XSS via search highlight — static/history.js:50, p.innerHTML = p.title.replace(...)
SeverityMEDIUM (CVSS 5.4) — reflected XSS без аутентификации
DetectorGS020 (gs020_xss_injection)
Fix9 lines, 1 file — exploit re-run in sandbox confirms it no longer fires

Full write-up → CASE_STUDY_CYBERBRO.md · more findings in production OSS → HALL_OF_FAME.md


GSC — самообучающаяся AppSec-платформа полного цикла.

detect → prove → fix → verify → heal → learn

🚀 Быстрый старт — GitHub Action

Проверьте свой репозиторий за 30 секунд. Добавьте файл .github/workflows/gsc.yml:

name: GSC Audit

on: pull_request: branches: [main, master]

jobs: audit: runs-on: ubuntu-latest permissions: contents: read pull-requests: write steps:

  • uses: actions/checkout@v4
  • uses: poliakarmai/gsc@v1 # для воспроизводимости — pin на commit SHA with: fail_on_critical: false # true = блокировать merge при CRITICAL

Откройте pull request — GSC отсканирует код, пришлёт комментарий с находками (CRITICAL / HIGH) и поставит оценку безопасности. Ядро поставляется как закрытый Docker-образ ghcr.io/poliakarmai/gsc-scanner — исходный код движка не публикуется.

Воспроизводимость. @v1 и тег образа — плавающие ссылки: результат может

измениться без изменения вашего workflow. Для аудита/CI фиксируйте

poliakarmai/gsc@ и образ по digest

(ghcr.io/poliakarmai/gsc-scanner@sha256: ).

Входные параметры:

ВходПо умолчаниюЧто делает
path.Что сканировать (корень репозитория)
deep_scantrueГлубокий скан (Echelon 4, медленнее)
fail_on_criticalfalsetrue — упасть при CRITICAL
fail_on_score0Упасть, если score ниже порога. 0 = выключено, диапазон 1–100
max_findings_to_comment10Сколько строк показывать в комментарии на каждую секцию
llm_api_key''BYO-LLM ключ для ревалидации (без него — regex-only)
llm_base_url''Свой OpenAI-совместимый эндпоинт (DeepSeek/OpenRouter/Ollama)
llm_model''Имя модели для ревалидации
sariffalseДополнительно отдать SARIF для GitHub Code Scanning
reachabilityfalseПонизить находки в недостижимых файлах (import-graph)

Выходы: score (0–100) и grade (A+ … F).

Комментарий в PR считает находки по локациям (file:line), а не по

срабатываниям детекторов: один секрет, пойманный четырьмя правилами, — это

одна строка с перечислением правил, а не четыре. Total в таблице всегда

равен сумме категорий.

LLM-ревалидация — на вашем ключе (BYO-LLM):

- uses: poliakarmai/gsc@v1

with: llm_api_key: ${{ secrets.DEEPSEEK_API_KEY }} # DeepSeek / OpenRouter / GMI / Ollama

Без ключа — быстрый regex-only скан (уязвимости находит; confirmed-вердикты — с ключом).
Локально: CLI или Docker
gsc scan . --ci --json          # JSON-находки в stdout

gsc scan . --fail-on-blocking # exit 1 при CRITICAL/HIGH — гейт для pre-commit / CI

# тот же движок без установки

docker run --rm -v "$PWD:/repo:ro" ghcr.io/poliakarmai/gsc-scanner:v1 scan /repo --ci --json

scan — точка входа; pof (Proof-of-Fix), verify-fix, report, --compliance … и остальные ≈80 подкоманд — в gsc --help.

Что умеет

СлойВозможности
SAST68 детекторов (SAST · SCA · Secrets · IaC), YAML rule DSL, LLM-триаж с confidence scoring
ДоказательствоPoC auto-generation — рабочий эксплойт для находки *(CLI --with-poc, MCP get_poc/verify_finding)*
ИсправлениеProof-of-Fix — патч верифицируется перезапуском эксплойта в sandbox; self-healing CI (авто-PR) *(CLI, требует явного флага)*
ПриоритизацияEPSS + CISA KEV + ExploitDB (не сырой CVSS), БДУ ФСТЭК
Reconpassive reconnaissance: subdomain / tech / DNS / HTTP
Supply chainSBOM (CycloneDX / SPDX) + VEX
Complianceмаппинг находок на ГОСТ Р 56939-2024, PCI DSS 4.0, SOC2, ISO 27001, CWE, OWASP — отчёт для ФСТЭК / КИИ / аудита
Интеллектsecurity archaeology, predictive forecasting, NL-policy, federated self-learning

Где что доступно. Возможности движка не равны возможностям Action/MCP:

| Возможность | Action | MCP | CLI / engine image |

|---|---|---|---|

| Скан (SAST/SCA/Secrets/IaC) | ✅ | ✅ | ✅ |

| PoC auto-generation | — | ✅ (get_poc, verify_finding) | ✅ (--with-poc) |

| Proof-of-Fix | — | ✅ (verify_fix) | ✅ (pof generate) |

| Self-healing CI (авто-PR) | — | — | ✅ (--create-pr, human-approval) |

В MCP нет деструктивных действий (auto-patch/PR) — осознанно, они остаются

в CLI/human-лупе. verify_finding перезапускает PoC в sandbox, то есть по

побочным эффектам это не «чисто read-only».

Что уже внутри (код, а не план)

Исходники движка в публичном репо не публикуются (закрытый образ, BSL 1.1) — колонка «Где» называет модуль, а не путь в этом репозитории.

МеханикаГдеЧто делает
Мутационный re-attack PoFдвижок: PoC-мутатор → Proof-of-Fixпосле фикса PoC перезапускается в мутированных формах (url-encode, double-encode, HTML-entities, case-swap, tab/space) — ловит «залатали симптом, а не причину». Детерминированно, без LLM
Positive control + taint-recheckдвижок: PoF-sandbox + taint-recheck тестыPoC обязан срабатывать на уязвимом варианте и молчать на исправленном
OS-изоляция hostile-PoCдвижок: _isolation_backend()docker/podman (--network none, read-only, cap-drop, non-root) на хосте, bubblewrap внутри образа (--unshare-all: mount/pid/net/user/ipc/uts, --clearenv, read-only системные деревья, writable только workspace, --die-with-parent) — докер-демон и проброс сокета не нужны. Уровень изоляции (docker / podman / bwrap) возвращается в каждом результате и в ответе verify_finding (isolation); без OS-изоляции движок fail-closed и отвечает unavailable, а не «не воспроизводится»
Quick-режим без LLMCLI: gsc external-scan --scan-mode quickregex-only: находки без LLM-вердиктов, 0 токенов

🎯 Наша фишка: BYO-LLM — движок наш, судья твой

GSC — это движок + детекторы + PoC, а не очередная обёртка над LLM.

  • От GSC: 68 детекторов, V3-scoring, FP-фильтр, PoC/PoF, self-learning — закрытый IP в Docker-образе.
  • От вас: LLM-ключ (любой OpenAI-совместимый — DeepSeek/OpenRouter/GMI/локальный Ollama).

Почему это выгодно вам:

  • Ноль расходов на чужие токены — ревалидация на вашем ключе.
  • Никакой привязки к провайдеру — хоть бесплатный локальный Ollama.
  • Вы платите за детекторы и логику, а не за вызовы LLM.

🧠 Второй столп: Self-Learning — детекторы обновляются сами, каждую ночь

Помимо BYO-LLM у GSC есть замкнутый контур обучения без LLM (0 токенов, детерминированный):

скан → авто-разметка findings по calibration-сети (13 проектов: 9 clean + 4 vuln)

→ авто-деактивация шумных паттернов (<30% TP) → пополнение эталонов из security-фидов → federated feedback (приватно: только {tenant_hash, rule_id, tp, fp} + DP-шум)

Детекторы учатся на реальных находках клиентов через federated-контур — то, чего мейнстрим сознательно избегает (риск дрейфа). GSC обходит это консервативным self-learning: разметка по фиксированной сети + дискретные деактивации, без переписывания весов — скорость ежедневного апдейта без катастрофического дрейфа.

ВендорКак обновляет правилаSelf-learning

| Semgrep | вручную (semgrep-rules) | ❌

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx