Labsco
MCP SERVER

EnigmaPython MCP

by denismaggior8

Run a message through a named historical Enigma machine configuration — model, rotors, reflector and plugboard pairs given as arguments — and get the same call to reverse it.

Developer Conversions, Encoding & Test DataVerified
Summary
Faithful to the machine rather than to the idea of it.

The argument list is the product: model, rotors with their ring settings and start positions, reflector and plugboard mean a wartime setting can be written down and reproduced exactly, which is what makes this usable for checking a historical configuration rather than for producing a scrambled string. Two things will trip a first call — the model names are exact values, so 'I_Sondermaschine' and 'B_A133' have to be spelled as given, and the rotor list has to be ordered fastest to slowest, which is the reverse of how machine settings are usually written down.

What it is

A single-call cipher server built on the enigmapython emulator library: encrypt_message puts a message through an Enigma configuration you specify by machine_model, rotors, reflector and plugboard_pairs. It runs over stdio for a local client, or over SSE when you want it reachable on the network.

What you get
  • encrypt_message covers encryption and decryption through one call, against the configuration you hand it — the machine is symmetric, so the same settings undo the result.
  • machine_model is checked against a fixed set of names — 'M3', 'M4', 'I', 'I_Norway', 'I_Sondermaschine', 'K', 'K_Swiss', 'D', 'Z', 'B_A133' and 'T' — written without an 'Enigma' prefix.
  • Each rotor carries its own rotor_type, ring_setting and initial_position, and the list is ordered fastest-first: rightmost, middle, leftmost, then the Greek wheel on an M4.
  • Reflector is its own argument, with a ring setting and initial position of its own for the rotating reflectors, and the model decides which reflectors are legal.
  • plugboard_pairs is a plain mapping of letter to letter, so a historical steckerbrett can be written down as given.
Requirements

Nothing — no account, no key. It runs on Python 3.11 or newer, straight from your client with uvx enigmapython-mcp, or from a Docker image if you would rather not install Python. Claude Desktop bundles for both routes are on the releases page.

Setup effort

One command — uvx enigmapython-mcp --transport stdio