mcp-redact
mcp-redact
Локальный CLI и MCP-сервер для удаления конфиденциальной информации перед отправкой логов, конфигураций и ошибок в ИИ-инструменты.
mcp-redact помогает сделать одно важное действие перед вставкой текста в Claude Code, Cursor или другие ИИ-инструменты: сначала удалить секреты и конфиденциальные данные.
Зачем это нужно
Разработчики часто вставляют логи, .env файлы, заголовки запросов, трассировки стека и фрагменты конфигураций в ИИ-инструменты. Эти фрагменты могут содержать API-ключи, bearer-токены, cookies, адреса электронной почты и другие конфиденциальные значения.
mcp-redact создан, чтобы сделать этот процесс безопаснее:
локальная работа (local-first)
детерминированная замена на основе регулярных выражений
общий движок для CLI и MCP
читаемые плейсхолдеры, такие как
[REDACTED_EMAIL]
Related MCP server: phi-redact-mcp
До / После
До
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.logexamples/sample.envexamples/sample.jsonexamples/sample.yamlexamples/mcp-redact.config.json
Все примеры значений являются вымышленными.
Использование CLI
Чтение из stdin
pnpm dev -- < ./examples/sample.logЧтение из файла
pnpm dev -- --file ./examples/sample.logpnpm 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:startMCP-инструменты
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-tokencustomRules: добавляет локальные детекторы на основе регулярных выражений, которые используют тот же конвейер, что и встроенные правила
Поддерживаемые детекторы
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-клиентами
This server cannot be deployed
Maintenance
Related MCP Connectors
Detect and redact PII and secrets before text reaches an LLM, with reversible placeholders.
Redact personal data from text before your agent sends it to a model or stores it: names, contact details, ID numbers, financial and health identifiers, card numbers, plus any exact terms you add. Nothing stored, no third-party AI. Tools - redact_text: returns the redacted text and a count of what was removed, by type. Never the removed values. Options: restrict to particular data types, add exact terms to remove, choose the replacement style (a type label such as <PERSON> by default) and set a confidence threshold. - list_entity_types: lists the detectable data types. Free. Data handling - Nothing you send is stored. Text is processed in memory and discarded when the call returns. - No third-party AI. Text is never sent to OpenAI, Anthropic, Google or any other outside model. - Tool arguments are never logged. Only counts are kept: credits used, a timestamp and how many of each type were found. PDFs, including scanned pages, are handled by the REST API with the same key and credits. They aren't offered as an MCP tool because a file doesn't fit in a tool call. Pricing: 1 credit per call plus 1 per 1,000 characters. 10 free credits on sign-up, no card. Credit packs from $5; purchased credits never expire. Failed calls and repeated identical calls are free. Setup and API key: https://eleyed.com/mcp?utm_source=glama&utm_medium=directory&utm_campaign=listing
Stateless PII redaction over MCP/REST. Free ≤1000 words or $0.01/call; file upload supported.
Security & DLP proxy for MCP: tool-poisoning scans, PII redaction on tool args/results. Beta.
Related MCP Servers
- AlicenseAqualityDmaintenanceA redaction engine and MCP server that scrubs sensitive identifiers (AWS keys, IPs, emails, etc.) from AI agent traces, enabling safe storage and sharing of war stories via submit, search, and retrieve tools.3Apache 2.0
- AlicenseAqualityBmaintenanceAn MCP server that redacts PII/PHI from text before it ever reaches an LLM — self-hosted, fail-closed, and HIPAA-aware.336 PyPIMIT
- AlicenseAqualityAmaintenanceSanitizes text and files by removing PII, secrets, and custom patterns locally before sending to LLMs, with optional reverse-scrubbing.31,224 npm2MIT
- AlicenseNot gradedqualityCmaintenanceScans text and files for common secrets (AWS, GitHub, etc.) and redacts them to prevent credential leakage in AI-assisted development. Runs entirely locally with no telemetry.MIT