mcp-redact
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.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 installed
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