Skip to main content
Glama
denismaggior8

enigma-python-mcp

Servidor MCP Enigma Python

Un servidor MCP (Protocolo de Contexto de Modelo) que aporta las capacidades de la biblioteca enigmapython a los LLM, permitiéndoles cifrar y descifrar mensajes utilizando emuladores de máquinas Enigma históricamente precisos.

Integración con Claude Desktop

Versión de PyPI Versiones de Python Descargas Licencia: MIT Estado de publicación

Este servidor MCP aparece en Glama.ai con esta puntuación:

Servidor MCP enigma-python-mcp

Características

  • Expone todos los modelos conocidos de máquinas Enigma: Enigma M3, Enigma M4, Enigma I, Enigma K, Enigma Z, Enigma D y más.

  • Configuración dinámica: Los LLM pueden especificar rotores, posiciones iniciales, ajustes de anillo, reflectores y pares de clavijero para el cifrado.

  • Modo local y de red: Admite tanto el transporte stdio para integraciones MCP locales (como Claude Desktop) como el transporte sse para exponer las herramientas a través de una red.

  • Dockerizado: Fácil portabilidad y ejecución en todas las plataformas.

Herramientas expuestas

encrypt_message

Cifra o descifra un mensaje utilizando una máquina Enigma configurada.

Argumentos:

  • machine_model (str): Nombre del modelo. Soportados: 'M3', 'M4', 'I', 'I_Norway', 'I_Sondermaschine', 'K', 'K_Swiss', 'D', 'Z', 'B_A133'.

  • message (str): El texto plano o cifrado a procesar.

  • rotors (list[object]): Lista de objetos RotorConfig. Cada objeto especifica rotor_type (str), ring_setting (int, por defecto=0) y initial_position (int | str, por defecto=0). IMPORTANTE: La lista DEBE estar ordenada exactamente como: [Más rápido/Derecha, Medio, Más lento/Izquierda, Griego (si es M4)].

  • reflector (object): Un objeto ReflectorConfig que especifica reflector_type (str), y opcionalmente ring_setting (int) y initial_position (int | str) para reflectores rotativos.

  • plugboard_pairs (dict, opcional): Diccionario que mapea las conexiones del clavijero (p. ej., {"A": "B", "C": "D"}).

Ejecución del servidor

Usando Python

Requiere Python 3.11+.

  1. Instale el paquete desde PyPI:

    pip install enigmapython-mcp

    (Alternativamente, puede ejecutar uvx enigmapython-mcp si tiene instalado uv)

  2. Ejecutar vía stdio (para cliente MCP local):

    enigmapython-mcp --transport stdio
  3. Ejecutar vía SSE (exponiendo a través de la red):

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

Usando Docker

  1. Construya el contenedor:

    docker build -t enigmapython-mcp .
  2. Ejecutar vía stdio (por defecto):

    docker run -i enigmapython-mcp
  3. Ejecutar vía SSE:

    docker run -p 8000:8000 enigmapython-mcp --transport sse --host 0.0.0.0 --port 8000

Configuración del cliente (Claude Desktop)

Proporcionamos dos paquetes mcpb distintos para la instalación con un solo clic en Claude Desktop. Simplemente descargue su paquete preferido desde la página de GitHub Releases y arrástrelo y suéltelo en el menú de Extensiones de Claude Desktop:

  1. enigmapython-mcp-docker.mcpb: Extremadamente ligero, depende de su demonio Docker local para ejecutar el servidor en un contenedor aislado. (Recomendado)

  2. enigmapython-mcp-python.mcpb: Contiene el código fuente completo en Python. Claude Desktop creará de forma nativa un entorno virtual y ejecutará el servidor sin necesidad de Docker.

Si prefiere la configuración manual a través de claude_desktop_config.json, utilice los ajustes a continuación:

Usando Python (se recomienda uvx)

{
  "mcpServers": {
    "enigma": {
      "command": "uvx",
      "args": ["enigmapython-mcp", "--transport", "stdio"]
    }
  }
}

Usando Docker

(Nota: Asegúrese de haber construido primero la imagen de Docker: docker build -t enigmapython-mcp .)

{
  "mcpServers": {
    "enigma": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "enigmapython-mcp"]
    }
  }
}

Configuración del cliente (OpenCode)

Para usar este servidor con OpenCode, añada lo siguiente a su ~/.config/opencode/opencode.json (global) o opencode.json (a nivel de proyecto) bajo la sección mcp:

Usando Python (se recomienda uvx)

{
  "mcp": {
    "enigma": {
      "type": "local",
      "command": [
        "uvx",
        "enigmapython-mcp",
        "--transport",
        "stdio"
      ],
      "enabled": true
    }
  }
}

Usando Docker

(Nota: Asegúrese de haber construido primero la imagen de Docker: docker build -t enigmapython-mcp .)

{
  "mcp": {
    "enigma": {
      "type": "local",
      "command": [
        "docker",
        "run",
        "-i",
        "--rm",
        "enigmapython-mcp"
      ],
      "enabled": true
    }
  }
}

Ejemplos de prompts

Una vez configurado el servidor, puede probarlo enviando los siguientes prompts a su LLM:

Ejemplo 1: Cifrado básico (Enigma M3)

"Necesito cifrar el mensaje 'TOPSECRET' usando una Enigma M3. Los rotores, ordenados de más rápido a más lento, son III, II y I. Todos comienzan en la posición 0 con ajustes de anillo en 0. Usa el reflector 'UKWB' y sin clavijero. ¿Cuál es el texto cifrado?"

Ejemplo 2: Descifrado histórico (Enigma I)

"Descifra este mensaje de la Enigma I de 1930. El texto cifrado es 'GCDSEAHUGWTQGRK'. Los ajustes de la máquina, estrictamente ordenados de más rápido a más lento, son: Rotores III, I y II. Sus respectivos ajustes de anillo son 21, 12 y 23. Sus posiciones iniciales son 11, 1 y 0. El reflector es 'UKWA'. Los intercambios del clavijero son: A/M, F/I, N/V, P/S, T/U, W/Z."

Ejemplo 3: Configuración compleja de M4

"Usa la Enigma M4 para cifrar el mensaje 'DIVE DIVE DIVE'. La máquina usa el reflector 'UKWBThin'. Los rotores, ordenados explícitamente como [Más rápido, Medio, Más lento, Griego], son: VIII (pos 2), III (pos 6), IV (pos 12) y Gamma (pos 21). Todos los ajustes de anillo son 0. Por favor, procesa esto."

Pruebas

Se incluye un conjunto completo de pruebas en tests/test_server.py. Prueba la reversibilidad del cifrado y descifrado para los 10 modelos de Enigma soportados.

Para ejecutar las pruebas:

# Activate your virtual environment first
source .venv/bin/activate

pip install pytest
export PYTHONPATH=$PYTHONPATH:$(pwd)/src/enigmapython_mcp && pytest tests/* 

Probar el servidor SSE de forma interactiva

Debido a que el Protocolo de Contexto de Modelo requiere un protocolo de enlace de inicialización con estado antes de que se pueda llamar a cualquier herramienta, probar manualmente el endpoint SSE con curl es bastante complejo.

La forma más fácil y oficialmente recomendada de probar el servidor es utilizando el Inspector MCP:

  1. Asegúrese de que su servidor se esté ejecutando en modo SSE:

    uv run enigmapython-mcp --transport sse --host 0.0.0.0 --port 8000
  2. En una segunda terminal, inicie el Inspector:

    npx @modelcontextprotocol/inspector
  3. Se abrirá una interfaz web en su navegador (normalmente en http://localhost:5173).

  4. Cambie el Tipo de transporte a SSE.

  5. Introduzca http://localhost:8000/sse como URL y haga clic en Conectar.

  6. ¡Ahora puede configurar y ejecutar visualmente la herramienta 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