Skip to main content
Glama
denismaggior8

enigma-python-mcp

MCP-сервер Enigma Python

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

Интеграция с Claude Desktop

Версия PyPI Версии Python Загрузки Лицензия: MIT Статус публикации

Этот MCP-сервер представлен на Glama.ai с соответствующей оценкой.

MCP-сервер enigma-python-mcp

Функции

  • Поддержка всех известных моделей машины «Энигма»: 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+.

  1. Установите пакет из PyPI:

    pip install enigmapython-mcp

    (Альтернативно, вы можете просто запустить uvx enigmapython-mcp, если у вас установлен uv!)

  2. Запуск через stdio (для локального клиента MCP):

    enigmapython-mcp --transport stdio
  3. Запуск через SSE (предоставление по сети):

    enigmapython-mcp --transport sse --host 0.0.0.0 --port 8000

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

  1. Соберите контейнер:

    docker build -t enigmapython-mcp .
  2. Запуск через stdio (по умолчанию):

    docker run -i enigmapython-mcp
  3. Запуск через 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:

  1. enigmapython-mcp-docker.mcpb: Чрезвычайно легкий, полагается на ваш локальный демон Docker для запуска сервера в изолированном контейнере. (Рекомендуется)

  2. 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:

  1. Убедитесь, что ваш сервер запущен в режиме SSE:

    uv run enigmapython-mcp --transport sse --host 0.0.0.0 --port 8000
  2. Во втором терминале запустите Inspector:

    npx @modelcontextprotocol/inspector
  3. В браузере откроется веб-интерфейс (обычно по адресу http://localhost:5173).

  4. Измените Transport Type на SSE.

  5. Введите http://localhost:8000/sse в качестве URL и нажмите Connect.

  6. Теперь вы можете визуально настраивать и выполнять инструмент encrypt_message!

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
1dRelease cycle
4Releases (12mo)

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