使用说明
🇷🇺 mcp-152fz-anonymizer (Data Anonymization)
Мощный инструмент для автоматического обезличивания персональных данных (ПД) в соответствии с 152-ФЗ. Работает локально и в Docker. Идеально для интеграции с n8n, Zapier и LLM-агентами.
🇬🇧 English Description (Click to expand)
152-FZ Data Anonymizer (GDPR-like for Russia)
This service automatically detects and masks sensitive personal data in text, compliant with Russian Law 152-FZ. It uses specific regex patterns for Russian documents (Passports, SNILS, INN) and ML models (Spacy) for Named Entity Recognition.
Key Features:
- 25+ Entity Types: Russian Passports, Driver Licenses, Bank Cards, Names, Addresses, etc.
- Dual Mode: Works as an MCP Server (Model Context Protocol) for LLM agents or as a standalone HTTP API (FastAPI) for webhooks.
- Privacy First: Can be deployed on your own VPS/Hardware. No data leaves your perimeter.
- Docker Ready: Simple deployment via
docker-compose.
🏗 Архитектура
graph LR
User[User / External App] -->|HTTPS / JSON| Nginx[Proxy / Gateway]
Nginx -->|Port 8005| Docker[Docker Container]
subgraph "🔐 Secure Container"
Docker --> FastAPI[API Server]
FastAPI --> Presidio[Microsoft Presidio]
Presidio --> Spacy[Spacy Model ru_core_news_lg]
Presidio --> Regex[Custom Regex Rules]
end
Regex -->|Detect| PII[Sensitive Data]
Spacy -->|Detect| PII
PII -->|Anonymize| Safe[<PERSON>, <PASSPORT_RF>]
Safe -->|Response| User
✨ Возможности
Сервис распознает и заменяет более 25 категорий данных:
| Категория | Примеры | Замена (Placeholder) |
|---|---|---|
| 🗳 Государственные документы | Паспорт РФ, Загран, СНИЛС, ИНН, ОМС, Права | <PASSPORT_RF>, <SNILS>, <INN> |
| 👤 Личность и Контакты | ФИО, Телефоны, Email, Telegram ID | <PERSON>, <PHONE>, <EMAIL> |
| 💳 Финансы | Номера карт, IBAN, Крипто-кошельки | <BANK_CARD>, <BANK_ACCOUNT>, <WALLET> |
| 💻 Цифровой след | IP адреса, MAC, IMEI | <IP>, <MAC>, <IMEI> |
| 📍 Гео и Время | Адреса, Координаты (GPS), Даты | <LOC>, <GEO>, <DATE> |
🚀 Быстрый старт (Docker API)
Рекомендуемый способ для продакшна и интеграций (n8n, сайты).
1. Клонирование и настройка
git clone https://github.com/Pioneer113/mcp-152fz-anonymizer.git
cd mcp-152fz-anonymizer
Создайте файл с API ключами (обязательно для защиты):
cp api_keys.example.json api_keys.json
# Отредактируйте api_keys.json, вставив свой надежный ключ
2. Запуск контейнера
docker-compose up --build -d
Сервер запустится на порту 8005 (проверьте настройки Firewall!).
3. Пример использования (CURL)
curl -X POST "http://localhost:8005/anonymize" \
-H "Content-Type: application/json" \
-H "X-API-Key: ВАШ_КЛЮЧ" \
-d '{ "text": "Меня зовут Иван, паспорт 4500 123456" }'
Ответ:
{
"anonymized_text": "Меня зовут <PERSON>, паспорт <PASSPORT_RF>"
}
🛠 Локальная разработка (MCP Mode)
Используйте этот режим для подключения к Claude Desktop, Cursor или разработки новых правил.
- Установка зависимостей:
./install.sh - Активация окружения:
source venv/bin/activate - Запуск MCP сервера:
mcp run main.py
🛡 Безопасность
- Изоляция: Работает в Docker от непривилегированного пользователя (
uid:1000). - ReadOnly: Файловая система контейнера защищена от записи.
- Auth: Доступ к API только по ключам (
X-API-Key). - No Logs: Сервис не сохраняет обрабатываемые данные (stateless).
🤝 Contributing
Вклад в развитие проекта приветствуется! Пожалуйста, ознакомьтесь с CONTRIBUTING.md перед созданием Pull Request.
📄 Лицензия
Этот проект распространяется под лицензией MIT. Подробности в файле LICENSE.