enigma-python-mcp
MCP-сервер Enigma Python
Сервер MCP (Model Context Protocol), который предоставляет LLM возможности библиотеки enigmapython, позволяя им шифровать и расшифровывать сообщения с помощью исторически точных эмуляторов машины «Энигма».

Этот MCP-сервер представлен на Glama.ai с соответствующей оценкой.
Функции
Поддержка всех известных моделей машины «Энигма»: Enigma M3, Enigma M4, Enigma I, Enigma K, Enigma Z, Enigma D и другие.
Динамическая конфигурация: LLM могут указывать роторы, начальные позиции, настройки колец, рефлекторы и пары коммутационной панели для шифрования.
Локальный и сетевой режимы: Поддерживает как транспорт
stdioдля локальных интеграций MCP (например, Claude Desktop), так и транспортsseдля предоставления инструментов по сети.Контейнеризация Docker: Легкая переносимость и выполнение на различных платформах.
Предоставляемые инструменты
encrypt_message
Шифрование или расшифровка сообщения с использованием настроенной машины «Энигма».
Аргументы:
machine_model(str): Название модели. Поддерживаются:'M3','M4','I','I_Norway','I_Sondermaschine','K','K_Swiss','D','Z','B_A133'.message(str): Открытый текст или шифротекст для обработки.rotors(list[object]): Список объектовRotorConfig. Каждый объект определяетrotor_type(str),ring_setting(int, по умолчанию=0) иinitial_position(int | str, по умолчанию=0). ВАЖНО: Список ДОЛЖЕН быть упорядочен строго так:[Самый быстрый/Крайний правый, Средний, Самый медленный/Крайний левый, Греческий (если M4)].reflector(object): ОбъектReflectorConfig, определяющийreflector_type(str), а также опциональноring_setting(int) иinitial_position(int | str) для вращающихся рефлекторов.plugboard_pairs(dict, опционально): Словарь, отображающий соединения коммутационной панели (например,{"A": "B", "C": "D"}).
Запуск сервера
Использование Python
Требуется Python 3.11+.
Установите пакет из PyPI:
pip install enigmapython-mcp(Альтернативно, вы можете просто запустить
uvx enigmapython-mcp, если у вас установленuv!)Запуск через stdio (для локального клиента MCP):
enigmapython-mcp --transport stdioЗапуск через SSE (предоставление по сети):
enigmapython-mcp --transport sse --host 0.0.0.0 --port 8000
Использование Docker
Соберите контейнер:
docker build -t enigmapython-mcp .Запуск через stdio (по умолчанию):
docker run -i enigmapython-mcpЗапуск через SSE:
docker run -p 8000:8000 enigmapython-mcp --transport sse --host 0.0.0.0 --port 8000
Конфигурация клиента (Claude Desktop)
Мы предоставляем два различных пакета mcpb для установки в один клик в Claude Desktop. Просто скачайте нужный пакет со страницы релизов GitHub и перетащите его в меню расширений Claude Desktop:
enigmapython-mcp-docker.mcpb: Чрезвычайно легкий, полагается на ваш локальный демон Docker для запуска сервера в изолированном контейнере. (Рекомендуется)enigmapython-mcp-python.mcpb: Содержит полный исходный код на Python. Claude Desktop автоматически создаст виртуальное окружение и запустит сервер без необходимости использования Docker.
Если вы предпочитаете ручную настройку через claude_desktop_config.json, используйте настройки ниже:
Использование Python (рекомендуется uvx)
{
"mcpServers": {
"enigma": {
"command": "uvx",
"args": ["enigmapython-mcp", "--transport", "stdio"]
}
}
}Использование Docker
(Примечание: Убедитесь, что вы сначала собрали образ Docker: docker build -t enigmapython-mcp .)
{
"mcpServers": {
"enigma": {
"command": "docker",
"args": ["run", "-i", "--rm", "enigmapython-mcp"]
}
}
}Конфигурация клиента (OpenCode)
Чтобы использовать этот сервер с OpenCode, добавьте следующее в ваш ~/.config/opencode/opencode.json (глобально) или opencode.json (на уровне проекта) в раздел mcp:
Использование Python (рекомендуется uvx)
{
"mcp": {
"enigma": {
"type": "local",
"command": [
"uvx",
"enigmapython-mcp",
"--transport",
"stdio"
],
"enabled": true
}
}
}Использование Docker
(Примечание: Убедитесь, что вы сначала собрали образ Docker: docker build -t enigmapython-mcp .)
{
"mcp": {
"enigma": {
"type": "local",
"command": [
"docker",
"run",
"-i",
"--rm",
"enigmapython-mcp"
],
"enabled": true
}
}
}Примеры промптов
После настройки сервера вы можете протестировать его, отправив следующие промпты вашей LLM:
Пример 1: Базовое шифрование (Enigma M3)
"Мне нужно зашифровать сообщение 'TOPSECRET' с помощью Enigma M3. Роторы, упорядоченные от самого быстрого к самому медленному: III, II и I. Все начинаются с позиции 0, настройки колец на 0. Используй рефлектор 'UKWB' и без коммутационной панели. Какой будет шифротекст?"
Пример 2: Историческая расшифровка (Enigma I)
"Расшифруй это сообщение Enigma I 1930 года. Шифротекст: 'GCDSEAHUGWTQGRK'. Настройки машины, строго упорядоченные от самого быстрого к самому медленному: роторы III, I и II. Их соответствующие настройки колец: 21, 12 и 23. Их начальные позиции: 11, 1 и 0. Рефлектор — 'UKWA'. Перестановки коммутационной панели: A/M, F/I, N/V, P/S, T/U, W/Z."
Пример 3: Сложная конфигурация M4
"Используй Enigma M4 для шифрования сообщения 'DIVE DIVE DIVE'. Машина использует рефлектор 'UKWBThin'. Роторы, явно упорядоченные как [Самый быстрый, Средний, Самый медленный, Греческий]: VIII (поз. 2), III (поз. 6), IV (поз. 12) и Gamma (поз. 21). Все настройки колец равны 0. Пожалуйста, обработай это."
Тестирование
Комплексный набор тестов включен в tests/test_server.py. Он проверяет обратимость шифрования и расшифровки для всех 10 поддерживаемых моделей Enigma.
Для запуска тестов:
# Activate your virtual environment first
source .venv/bin/activate
pip install pytest
export PYTHONPATH=$PYTHONPATH:$(pwd)/src/enigmapython_mcp && pytest tests/* Интерактивное тестирование SSE-сервера
Поскольку протокол MCP требует рукопожатия для инициализации состояния перед вызовом любых инструментов, ручное тестирование SSE-эндпоинта с помощью curl довольно сложно.
Самый простой и официально рекомендуемый способ тестирования сервера — использование MCP Inspector:
Убедитесь, что ваш сервер запущен в режиме SSE:
uv run enigmapython-mcp --transport sse --host 0.0.0.0 --port 8000Во втором терминале запустите Inspector:
npx @modelcontextprotocol/inspectorВ браузере откроется веб-интерфейс (обычно по адресу
http://localhost:5173).Измените Transport Type на SSE.
Введите
http://localhost:8000/sseв качестве URL и нажмите Connect.Теперь вы можете визуально настраивать и выполнять инструмент
encrypt_message!
Maintenance
Tools
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/denismaggior8/enigma-python-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server