Skip to main content
Glama
denismaggior8

enigma-python-mcp

Enigma Python MCP Server

Ein MCP-Server (Model Context Protocol), der die Funktionen der enigmapython-Bibliothek für LLMs bereitstellt und es ihnen ermöglicht, Nachrichten mithilfe historisch akkurater Enigma-Maschinen-Emulatoren zu verschlüsseln und zu entschlüsseln.

Claude Desktop Integration

PyPI version Python Versions Downloads License: MIT Publish Status

Dieser MCP-Server ist auf Glama.ai mit dieser Bewertung gelistet:

enigma-python-mcp MCP server

Funktionen

  • Unterstützt alle bekannten Enigma-Maschinenmodelle: Enigma M3, Enigma M4, Enigma I, Enigma K, Enigma Z, Enigma D und mehr.

  • Dynamische Konfiguration: LLMs können Rotoren, Anfangspositionen, Ringeinstellungen, Reflektoren und Steckerbrettverbindungen für die Verschlüsselung festlegen.

  • Lokal- und Netzwerkmodus: Unterstützt sowohl den stdio-Transport für lokale MCP-Integrationen (wie Claude Desktop) als auch den sse-Transport, um die Tools über ein Netzwerk bereitzustellen.

  • Dockerisiert: Einfache Portabilität und Ausführung auf verschiedenen Plattformen.

Verfügbare Tools

encrypt_message

Verschlüsselt oder entschlüsselt eine Nachricht mithilfe einer konfigurierten Enigma-Maschine.

Argumente:

  • machine_model (str): Modellname. Unterstützt: 'M3', 'M4', 'I', 'I_Norway', 'I_Sondermaschine', 'K', 'K_Swiss', 'D', 'Z', 'B_A133'.

  • message (str): Der zu verarbeitende Klartext oder Geheimtext.

  • rotors (list[object]): Liste von RotorConfig-Objekten. Jedes Objekt spezifiziert rotor_type (str), ring_setting (int, Standard=0) und initial_position (int | str, Standard=0). WICHTIG: Die Liste MUSS exakt wie folgt geordnet sein: [Schnellster/Rechts, Mitte, Langsamster/Links, Griechisch (falls M4)].

  • reflector (object): Ein ReflectorConfig-Objekt, das reflector_type (str) sowie optional ring_setting (int) und initial_position (int | str) für rotierende Reflektoren spezifiziert.

  • plugboard_pairs (dict, optional): Wörterbuch, das Steckerbrettverbindungen zuordnet (z. B. {"A": "B", "C": "D"}).

Ausführen des Servers

Mit Python

Erfordert Python 3.11+.

  1. Installieren Sie das Paket von PyPI:

    pip install enigmapython-mcp

    (Alternativ können Sie einfach uvx enigmapython-mcp ausführen, falls uv installiert ist!)

  2. Ausführung via stdio (für lokale MCP-Clients):

    enigmapython-mcp --transport stdio
  3. Ausführung via SSE (Bereitstellung über Netzwerk):

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

Mit Docker

  1. Bauen Sie den Container:

    docker build -t enigmapython-mcp .
  2. Ausführung via stdio (Standard):

    docker run -i enigmapython-mcp
  3. Ausführung via SSE:

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

Client-Konfiguration (Claude Desktop)

Wir bieten zwei verschiedene mcpb-Bundles für die 1-Klick-Installation auf Claude Desktop an. Laden Sie einfach das gewünschte Bundle von der GitHub Releases-Seite herunter und ziehen Sie es per Drag-and-Drop in das Erweiterungsmenü von Claude Desktop:

  1. enigmapython-mcp-docker.mcpb: Extrem leichtgewichtig, nutzt Ihren lokalen Docker-Daemon, um den Server in einem isolierten Container auszuführen. (Empfohlen)

  2. enigmapython-mcp-python.mcpb: Enthält den vollständigen Python-Quellcode. Claude Desktop erstellt nativ eine virtuelle Umgebung und führt den Server ohne Docker aus.

Wenn Sie die manuelle Konfiguration über claude_desktop_config.json bevorzugen, verwenden Sie die folgenden Einstellungen:

Mit Python (uvx empfohlen)

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

Mit Docker

(Hinweis: Stellen Sie sicher, dass Sie das Docker-Image zuerst erstellt haben: docker build -t enigmapython-mcp .)

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

Client-Konfiguration (OpenCode)

Um diesen Server mit OpenCode zu verwenden, fügen Sie Folgendes zu Ihrer ~/.config/opencode/opencode.json (global) oder opencode.json (auf Projektebene) unter dem Abschnitt mcp hinzu:

Mit Python (uvx empfohlen)

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

Mit Docker

(Hinweis: Stellen Sie sicher, dass Sie das Docker-Image zuerst erstellt haben: docker build -t enigmapython-mcp .)

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

Beispiel-Prompts

Sobald der Server konfiguriert ist, können Sie ihn testen, indem Sie die folgenden Prompts an Ihr LLM senden:

Beispiel 1: Einfache Verschlüsselung (Enigma M3)

"Ich muss die Nachricht 'TOPSECRET' mit einer Enigma M3 verschlüsseln. Die Rotoren, geordnet von schnell nach langsam, sind III, II und I. Alle starten auf Position 0 mit Ringeinstellungen auf 0. Verwende den Reflektor 'UKWB' und kein Steckerbrett. Was ist der Geheimtext?"

Beispiel 2: Historische Entschlüsselung (Enigma I)

"Entschlüssele diese Enigma I-Nachricht von 1930. Der Geheimtext lautet 'GCDSEAHUGWTQGRK'. Die Maschineneinstellungen, streng geordnet von Schnell nach Langsam, sind: Rotoren III, I und II. Ihre jeweiligen Ringeinstellungen sind 21, 12 und 23. Ihre Anfangspositionen sind 11, 1 und 0. Der Reflektor ist 'UKWA'. Die Steckerbrettverbindungen sind: A/M, F/I, N/V, P/S, T/U, W/Z."

Beispiel 3: Komplexe M4-Konfiguration

"Verwende die Enigma M4, um die Nachricht 'DIVE DIVE DIVE' zu verschlüsseln. Die Maschine verwendet den 'UKWBThin'-Reflektor. Die Rotoren, explizit geordnet als [Schnell, Mitte, Langsam, Griechisch], sind: VIII (Pos 2), III (Pos 6), IV (Pos 12) und Gamma (Pos 21). Alle Ringeinstellungen sind 0. Bitte verarbeite dies."

Tests

Eine umfassende Testsuite ist in tests/test_server.py enthalten. Sie testet die Umkehrbarkeit von Verschlüsselung und Entschlüsselung für alle 10 unterstützten Enigma-Modelle.

So führen Sie die Tests aus:

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

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

Interaktives Testen des SSE-Servers

Da das Model Context Protocol einen zustandsbehafteten Initialisierungs-Handshake erfordert, bevor Tools aufgerufen werden können, ist das manuelle Testen des SSE-Endpunkts mit curl recht komplex.

Der einfachste und offiziell empfohlene Weg zum Testen des Servers ist die Verwendung des MCP Inspector:

  1. Stellen Sie sicher, dass Ihr Server im SSE-Modus läuft:

    uv run enigmapython-mcp --transport sse --host 0.0.0.0 --port 8000
  2. Starten Sie in einem zweiten Terminal den Inspector:

    npx @modelcontextprotocol/inspector
  3. Eine Weboberfläche öffnet sich in Ihrem Browser (normalerweise unter http://localhost:5173).

  4. Ändern Sie den Transport Type auf SSE.

  5. Geben Sie http://localhost:8000/sse als URL ein und klicken Sie auf Connect.

  6. Sie können nun das Tool encrypt_message visuell konfigurieren und ausführen!

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