Skip to main content
Glama

mcp-redact

Локальный CLI и MCP-сервер для удаления конфиденциальной информации перед отправкой логов, конфигураций и ошибок в ИИ-инструменты.

mcp-redact помогает сделать одно важное действие перед вставкой текста в Claude Code, Cursor или другие ИИ-инструменты: сначала удалить секреты и конфиденциальные данные.

Зачем это нужно

Разработчики часто вставляют логи, .env файлы, заголовки запросов, трассировки стека и фрагменты конфигураций в ИИ-инструменты. Эти фрагменты могут содержать API-ключи, bearer-токены, cookies, адреса электронной почты и другие конфиденциальные значения.

mcp-redact создан, чтобы сделать этот процесс безопаснее:

  • локальная работа (local-first)

  • детерминированная замена на основе регулярных выражений

  • общий движок для CLI и MCP

  • читаемые плейсхолдеры, такие как [REDACTED_EMAIL]

До / После

До

Authorization: Bearer abcdefghijklmnop123456
user_email=user@example.com
callback=https://example.com/callback?token=secret123&lang=en
Cookie: session=abcdef123456; theme=dark

После

Authorization: Bearer [REDACTED_AUTHORIZATION_HEADER]
user_email=[REDACTED_EMAIL]
callback=https://example.com/callback?token=[REDACTED_SENSITIVE_URL]&lang=en
Cookie: session=[REDACTED_COOKIE_HEADER]; theme=dark

Быстрый старт

Требования:

  • Node.js 20+

  • pnpm

Установка зависимостей:

pnpm install

Запуск на примере файла:

pnpm dev -- --file ./examples/sample.log

Передача текста через stdin:

pnpm dev -- < ./examples/sample.log

Примеры файлов

Этот репозиторий содержит примеры входных данных, которые можно использовать для локального тестирования и демонстраций:

  • examples/sample.log

  • examples/sample.env

  • examples/sample.json

  • examples/sample.yaml

  • examples/mcp-redact.config.json

Все примеры значений являются вымышленными.

Использование CLI

Чтение из stdin

pnpm dev -- < ./examples/sample.log

Чтение из файла

pnpm dev -- --file ./examples/sample.log
pnpm dev -- --file ./examples/sample.env

Запись вывода в файл

pnpm dev -- --file ./examples/sample.env --output ./sanitized.env

Вывод в формате JSON

pnpm dev -- --file ./examples/sample.log --format json

Пример вывода:

{
  "redactedText": "Authorization: Bearer [REDACTED_AUTHORIZATION_HEADER]\nuser_email=[REDACTED_EMAIL]\ncallback=https://example.com/callback?token=[REDACTED_SENSITIVE_URL]&lang=en\nCookie: session=[REDACTED_COOKIE_HEADER]; theme=dark\n",
  "summary": {
    "totalMatches": 4,
    "byType": {
      "authorization_header": 1,
      "email": 1,
      "sensitive_url": 1,
      "cookie_header": 1
    }
  }
}

Вывод только сводки

pnpm dev -- --file ./examples/sample.log --summary-only

Пример вывода:

Total matches: 4
By type:
- authorization_header: 1
- cookie_header: 1
- email: 1
- sensitive_url: 1

Ограничение включенных групп

Запуск только детекторов персональных данных:

pnpm dev -- --file ./examples/sample.log --only personal

Отключение группы во время выполнения:

pnpm dev -- --file ./examples/sample.log --disable http

Использование файла конфигурации

pnpm dev -- --file ./examples/sample.log --config ./examples/mcp-redact.config.json

Пример конфигурации включает только группы personal и custom, отключает встроенный детектор email и добавляет пользовательское правило internal-ticket. С такой конфигурацией sample.log останется без изменений, так как он не содержит пользовательских значений тикетов, а удаление email отключено.

Использование MCP

Запуск MCP-сервера

Режим разработки:

pnpm mcp:dev

Сборка и запуск:

pnpm build
pnpm mcp:start

MCP-инструменты

redact_text

Входные данные:

{
  "text": "Authorization: Bearer abcdefghijklmnop123456",
  "groups": ["http"],
  "configPath": "./examples/mcp-redact.config.json"
}

redact_file

Входные данные:

{
  "filePath": "./examples/sample.log",
  "groups": ["http"],
  "configPath": "./examples/mcp-redact.config.json"
}

Оба инструмента возвращают данные в одинаковой структуре:

{
  "redactedText": "...",
  "summary": {
    "totalMatches": 4,
    "byType": {
      "authorization_header": 1,
      "email": 1
    }
  }
}

Подключение из MCP-клиента

Используйте команду запуска сервера, соответствующую вашему окружению:

  • разработка: pnpm mcp:dev

  • собранный проект: pnpm mcp:start

Если ваш MCP-клиент ожидает команду и аргументы, укажите путь к локальному проекту и запустите сервер через stdio. Сервер предоставляет два инструмента: redact_text и redact_file.

Конфигурация

Имя файла конфигурации по умолчанию:

mcp-redact.config.json

Если путь к конфигурации не указан явно, mcp-redact попытается прочитать этот файл из текущей рабочей директории. Если файл по умолчанию отсутствует, выполнение продолжается в обычном режиме. Если вы явно передадите путь к несуществующему файлу конфигурации, команда завершится с ошибкой.

Пример конфигурации:

{
  "enabledGroups": ["personal", "custom"],
  "disabledDetectors": ["email"],
  "customRules": [
    {
      "name": "internal-ticket",
      "pattern": "TICKET-[0-9]{6}",
      "placeholder": "[REDACTED_TICKET]"
    }
  ]
}

Поля конфигурации

  • enabledGroups: ограничивает встроенные и пользовательские детекторы указанными группами

  • disabledDetectors: отключает детекторы по имени, например email или github-token

  • customRules: добавляет локальные детекторы на основе регулярных выражений, которые используют тот же конвейер, что и встроенные правила

Поддерживаемые детекторы

secrets

  • Bearer-токен

  • JWT

  • GitHub-токен

  • API-ключ в стиле OpenAI

  • API-ключ в стиле Anthropic

  • AWS access key id

  • Секреты в формате ключ-значение, такие как password=, token=, secret=, api_key=

  • Блоки закрытых ключей (private key)

personal

  • Email

  • Телефон

  • IPv4

http

  • Значение заголовка Authorization bearer

  • Конфиденциальное значение заголовка Cookie

  • Конфиденциальное значение параметра запроса URL, например token=

Локальная разработка

Общие команды:

pnpm install
pnpm test
pnpm lint
pnpm typecheck
pnpm build
pnpm mcp:dev

Дорожная карта

  • Больше шаблонов токенов и API-ключей

  • Улучшенное подавление ложных срабатываний

  • Больше примеров реальных логов и конфигураций

  • Больше примеров интеграции с MCP-клиентами

A
license - permissive license
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nine710/mcp-redact'

If you have feedback or need assistance with the MCP directory API, please join our Discord server