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.

Dieser MCP-Server ist auf Glama.ai mit dieser Bewertung gelistet:
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 densse-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 vonRotorConfig-Objekten. Jedes Objekt spezifiziertrotor_type(str),ring_setting(int, Standard=0) undinitial_position(int | str, Standard=0). WICHTIG: Die Liste MUSS exakt wie folgt geordnet sein:[Schnellster/Rechts, Mitte, Langsamster/Links, Griechisch (falls M4)].reflector(object): EinReflectorConfig-Objekt, dasreflector_type(str) sowie optionalring_setting(int) undinitial_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+.
Installieren Sie das Paket von PyPI:
pip install enigmapython-mcp(Alternativ können Sie einfach
uvx enigmapython-mcpausführen, fallsuvinstalliert ist!)Ausführung via stdio (für lokale MCP-Clients):
enigmapython-mcp --transport stdioAusführung via SSE (Bereitstellung über Netzwerk):
enigmapython-mcp --transport sse --host 0.0.0.0 --port 8000
Mit Docker
Bauen Sie den Container:
docker build -t enigmapython-mcp .Ausführung via stdio (Standard):
docker run -i enigmapython-mcpAusfü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:
enigmapython-mcp-docker.mcpb: Extrem leichtgewichtig, nutzt Ihren lokalen Docker-Daemon, um den Server in einem isolierten Container auszuführen. (Empfohlen)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:
Stellen Sie sicher, dass Ihr Server im SSE-Modus läuft:
uv run enigmapython-mcp --transport sse --host 0.0.0.0 --port 8000Starten Sie in einem zweiten Terminal den Inspector:
npx @modelcontextprotocol/inspectorEine Weboberfläche öffnet sich in Ihrem Browser (normalerweise unter
http://localhost:5173).Ändern Sie den Transport Type auf SSE.
Geben Sie
http://localhost:8000/sseals URL ein und klicken Sie auf Connect.Sie können nun das Tool
encrypt_messagevisuell konfigurieren und ausführen!
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