Skip to main content
Glama
sudo-ai-git

mcp-secret-scrub

mcp-secret-scrub

mcp-name: io.github.sudo-ai-git/mcp-secret-scrub

Детерминированный MCP-сервер без LLM, который вычищает секреты из текста, логов и транскриптов до того, как они попадут в контекст агента, — и никогда не раскрывает их значение.

Без LLM. Без сети. Чисто структурное обнаружение. MIT. Без коронных драгоценностей.


Решаемая проблема

Прежде чем передать агенту необработанный текст (или сохранить его, или передать в инструмент), вы часто не знаете, содержит ли он действующий секрет. Платформенные очистители постоянно пропускают паттерны — приватный ключ, токен nvapi-, токен github_pat_, присваивание api_key= в середине лога. Если такой текст попадёт в контекст LLM или в сохраняемый транскрипт, секрет фактически эксфильтруется.

Этот сервер отвечает детерминированно:

Какие секреты есть в этом тексте, и можно ли безопасно отредактировать их до того, как он куда-либо попадёт?

Related MCP server: ai-security-gateway-mcp

Охват обнаружения (детерминированные профили)

семейство

примеры

Ключи AI-провайдеров

sk-proj-…, sk-ant-api…, sk-or-v1-…, sk-…, nvapi-…

Облако / GitHub

AKIA…, aws_secret_access_key=, ghp_…, gho_…, ghu_…, ghs_…, ghr_…, github_pat_…

Идентификация / аутентификация

JWT (eyJ…), PEM-приватные ключи, Bearer …, Basic …, секреты OAuth-клиентов

Присваивания

api_key=, token=, secret=, password=, client_secret=, webhook_secret=

Эндпоинты / DSN

Discord-вебхуки, Slack xox…, строки подключения SQL/Redis/Mongo/AMQP

Сканирование никогда не возвращает значение секрета — только его тип, количество и позицию. Это жёсткий контракт безопасности, подкреплённый тестами.

Инструменты (MCP)

инструмент

назначение

scrub_text(text, mode, keep_label)

редактирует / маскирует / хеширует секреты; возвращает очищенный текст (никогда — значение)

scan_text(text)

определяет, какие типы секретов присутствуют (без изменений)

report_full(text)

сканирование + редактирование одним вызовом, очищенный предпросмотр + результаты

secret_profiles()

перечисляет все поддерживаемые профили обнаружения

Режимы:

  • redact (по умолчанию) → [REDACTED:TYPE]

  • mask → показывает первые 4 + последние 2 символа

  • hash → детерминированный префикс SHA-256 (воспроизводимый между вызовами)

Быстрый старт (stdio)

pip install mcp-secret-scrub
mcp-secret-scrub          # stdio (default)

Или через uv/pipx для устанавливаемой консольной точки входа:

pipx install mcp-secret-scrub

Конфигурация MCP-клиента:

{ "mcpServers": {
    "secret-scrub": { "command": "mcp-secret-scrub" }
}}

Streamable HTTP (удалённо / для публикации в Smithery)

python3 mcp_server.py --http --port 8138   # serves on http://<host>:8138/mcp/

Детерминизм и гарантии безопасности

  • Детерминированность: одинаковый вход → идентичный вывод в каждом режиме, при каждом вызове.

  • Никаких утечек: scan_text и scrub_text никогда не выводят исходный токен; _deterministic_hash — это SHA-256 (без соли), поэтому вывод воспроизводим.

  • Без LLM и сети: чистый regex + обнаружение достижимых структур.

  • Безопасность ввода: нестроковый ввод возвращает понятную ошибку, а не traceback.

Проверка

  • python3 test_detector.py — 14/14 базовых проверок (обнаружение, редактирование, детерминизм, контракт отсутствия утечек, безвредный/юникодный/пустой ввод, неверный режим)

  • python3 test_e2e.py — запускает реальный MCP stdio-транспорт и проверяет, что секрет НЕ передаётся по каналу

Лицензия и происхождение

MIT. Часть детерминированного семейства MCP sudo-ai-git без LLM для доверия к агентам (mcp-skill-sec · mcp-verify-claim · mcp-benchmark-hygiene · mcp-secret-scrub).

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Sanitizes text and files by removing PII, secrets, and custom patterns locally before sending to LLMs, with optional reverse-scrubbing.
    3
    1,224 npm
    2
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    Detects and redacts sensitive personal information such as names, emails, phone numbers, ID numbers, and locations in text before it is processed by AI agents, using configurable mask, hash, or remove strategies.
    1
    -