EnigmaPython MCP
Um servidor MCP (Model Context Protocol) que traz as capacidades da biblioteca enigmapython para LLMs, permitindo que eles criptografem e descriptografem mensagens usando emuladores historicamente precisos da máquina Enigma
Documentação
Servidor EnigmaPython MCP
Um servidor MCP (Model Context Protocol) que traz as capacidades da biblioteca enigmapython para LLMs, permitindo que eles criptografem e descriptografem mensagens usando emuladores de máquina Enigma historicamente precisos.

Este servidor MCP está listado no Glama.ai com esta pontuação
Recursos
- Expõe todos os modelos conhecidos de máquina Enigma: Enigma M3, Enigma M4, Enigma I, Enigma K, Enigma Z, Enigma D, Enigma T e outros.
- Configuração Dinâmica: LLMs podem especificar rotores, posições iniciais, configurações de anel, refletores e pares de plugboard para a criptografia.
- Modo Local e de Rede: Suporta tanto o transporte
stdiopara integrações MCP locais (como Claude Desktop) quanto o transportessepara expor as ferramentas pela rede. - Dockerizado: Portabilidade e execução fáceis em diferentes plataformas.
Ferramentas Expostas
encrypt_message
Criptografe ou descriptografe uma mensagem usando uma máquina Enigma configurada.
Argumentos:
machine_model(str): Nome do modelo. Suportados:'M3','M4','I','I_Norway','I_Sondermaschine','K','K_Swiss','D','Z','B_A133','T'.message(str): O texto simples ou cifrado a ser processado.rotors(list[object]): Lista de objetosRotorConfig. Cada objeto especificarotor_type(str),ring_setting(int, padrão=0) einitial_position(int | str, padrão=0). IMPORTANTE: A lista DEVE ser ordenada exatamente como:[Fastest/Rightmost, Middle, Slowest/Leftmost, Greek (if M4)].reflector(object): Um objetoReflectorConfigespecificandoreflector_type(str) e, opcionalmente,ring_setting(int) einitial_position(int | str) para refletores rotativos.plugboard_pairs(dict, opcional): Dicionário mapeando conexões do plugboard (ex.:{"A": "B", "C": "D"}).
Executando o Servidor
Usando Python
Requer Python 3.11+.
-
Instale o pacote do PyPI:
pip install enigmapython-mcp(Alternativamente, você pode simplesmente executar
uvx enigmapython-mcpse tiver ouvinstalado!) -
Execute via stdio (para cliente MCP local):
enigmapython-mcp --transport stdio -
Execute via SSE (expondo pela rede):
enigmapython-mcp --transport sse --host 0.0.0.0 --port 8000
Usando Docker
-
Construa o contêiner:
docker build -t enigmapython-mcp . -
Execute via stdio (padrão):
docker run -i enigmapython-mcp -
Execute via SSE:
docker run -p 8000:8000 enigmapython-mcp --transport sse --host 0.0.0.0 --port 8000
Configuração do Cliente (Claude Desktop)
Fornecemos dois pacotes distintos de mcpb para instalação com 1 clique no Claude Desktop. Basta baixar o pacote de sua preferência na página de Releases do GitHub e arrastá-lo e soltá-lo no menu Extensões do Claude Desktop:
enigmapython-mcp-docker.mcpb: Extremamente leve, depende do seu daemon Docker local para executar o servidor em um contêiner isolado. (Recomendado)enigmapython-mcp-python.mcpb: Contém o código-fonte Python completo. O Claude Desktop criará nativamente um ambiente virtual e executará o servidor sem precisar do Docker.
Se você preferir configuração manual via claude_desktop_config.json, use as configurações abaixo:
Usando Python (uvx recomendado)
{
"mcpServers": {
"enigma": {
"command": "uvx",
"args": ["enigmapython-mcp", "--transport", "stdio"]
}
}
}
Usando Docker
(Nota: Certifique-se de ter construído a imagem Docker primeiro: docker build -t enigmapython-mcp .)
{
"mcpServers": {
"enigma": {
"command": "docker",
"args": ["run", "-i", "--rm", "enigmapython-mcp"]
}
}
}
Configuração do Cliente (OpenCode)
Para usar este servidor com OpenCode, adicione o seguinte ao seu ~/.config/opencode/opencode.json (global) ou opencode.json (nível de projeto) na seção mcp:
Usando Python (uvx recomendado)
{
"mcp": {
"enigma": {
"type": "local",
"command": [
"uvx",
"enigmapython-mcp",
"--transport",
"stdio"
],
"enabled": true
}
}
}
Usando Docker
(Nota: Certifique-se de ter construído a imagem Docker primeiro: docker build -t enigmapython-mcp .)
{
"mcp": {
"enigma": {
"type": "local",
"command": [
"docker",
"run",
"-i",
"--rm",
"enigmapython-mcp"
],
"enabled": true
}
}
}
Exemplos de Prompts
Depois que o servidor estiver configurado, você pode testá-lo enviando os seguintes prompts ao seu LLM:
Exemplo 1: Criptografia Básica (Enigma M3)
"Preciso criptografar a mensagem 'TOPSECRET' usando uma Enigma M3. Os rotores, ordenados do mais rápido ao mais lento, são III, II e I. Todos começando na posição 0 com configurações de anel em 0. Use o refletor 'UKWB' e sem plugboard. Qual é o texto cifrado?"
Exemplo 2: Descriptografia Histórica (Enigma I)
"Descriptografe esta mensagem Enigma I de 1930. O texto cifrado é 'GCDSEAHUGWTQGRK'. As configurações da máquina, estritamente ordenadas do Mais Rápido ao Mais Lento, são: Rotores III, I e II. Suas respectivas configurações de anel são 21, 12 e 23. Suas posições iniciais são 11, 1 e 0. O refletor é 'UKWA'. As trocas do plugboard são: A/M, F/I, N/V, P/S, T/U, W/Z."
Exemplo 3: Configuração Complexa M4
"Use a Enigma M4 para criptografar a mensagem 'DIVE DIVE DIVE'. A máquina usa o refletor 'UKWBThin'. Os rotores, explicitamente ordenados como [Mais Rápido, Médio, Mais Lento, Grego], são: VIII (pos 2), III (pos 6), IV (pos 12) e Gamma (pos 21). Todas as configurações de anel são 0. Por favor, processe isso."
Testes
Uma suíte de testes abrangente está incluída em tests/test_server.py. Ela testa a reversibilidade de criptografia e descriptografia para todos os 10 modelos Enigma suportados.
Para executar os testes:
# Activate your virtual environment first
source .venv/bin/activate
pip install pytest
export PYTHONPATH=$PYTHONPATH:$(pwd)/src/enigmapython_mcp && pytest tests/*
Testando o servidor SSE interativamente
Como o Model Context Protocol exige um handshake de inicialização com estado antes que qualquer ferramenta possa ser chamada, testar manualmente o endpoint SSE com curl é bastante complexo.
A maneira mais fácil e oficialmente recomendada de testar o servidor é usando o MCP Inspector:
- Certifique-se de que seu servidor esteja rodando no modo SSE:
uv run enigmapython-mcp --transport sse --host 0.0.0.0 --port 8000 - Em um segundo terminal, inicie o Inspector:
npx @modelcontextprotocol/inspector - Uma interface web será aberta no seu navegador (geralmente em
http://localhost:5173). - Altere o Tipo de Transporte para SSE.
- Digite
http://localhost:8000/ssecomo URL e clique em Conectar. - Agora você pode configurar e executar visualmente a ferramenta
encrypt_message!