Skip to main content
Glama
denismaggior8

enigma-python-mcp

Enigma Python MCP 服务器

一个 MCP(模型上下文协议)服务器,将 enigmapython 库的功能引入 LLM,允许它们使用历史准确的 Enigma 机器模拟器来加密和解密消息。

Claude Desktop 集成

PyPI 版本 Python 版本 下载量 许可证: MIT 发布状态

此 MCP 服务器已在 Glama.ai 上列出,评分为

enigma-python-mcp MCP 服务器

功能

  • 公开所有已知的 Enigma 机器型号:Enigma M3、Enigma M4、Enigma I、Enigma K、Enigma Z、Enigma D 等。

  • 动态配置:LLM 可以指定转子、初始位置、环设置、反射器和插线板对进行加密。

  • 本地和网络模式:支持用于本地 MCP 集成(如 Claude Desktop)的 stdio 传输,以及用于通过网络公开工具的 sse 传输。

  • Docker 化:易于跨平台移植和执行。

公开的工具

encrypt_message

使用配置好的 Enigma 机器加密或解密消息。

参数:

  • machine_model (str):型号名称。支持:'M3', 'M4', 'I', 'I_Norway', 'I_Sondermaschine', 'K', 'K_Swiss', 'D', 'Z', 'B_A133'

  • message (str):要处理的明文或密文。

  • rotors (list[object]):RotorConfig 对象列表。每个对象指定 rotor_type (str)、ring_setting (int, 默认=0) 和 initial_position (int | str, 默认=0)。重要:列表必须严格按以下顺序排列:[最快/最右侧, 中间, 最慢/最左侧, 希腊转子 (如果是 M4)]

  • reflector (object):一个 ReflectorConfig 对象,指定 reflector_type (str),以及可选的用于旋转反射器的 ring_setting (int) 和 initial_position (int | str)。

  • plugboard_pairs (dict, 可选):映射插线板连接的字典(例如 {"A": "B", "C": "D"})。

运行服务器

使用 Python

需要 Python 3.11+。

  1. 从 PyPI 安装包:

    pip install enigmapython-mcp

    (或者,如果您安装了 uv,只需运行 uvx enigmapython-mcp!)

  2. 通过 stdio 运行(用于本地 MCP 客户端):

    enigmapython-mcp --transport stdio
  3. 通过 SSE 运行(通过网络公开):

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

使用 Docker

  1. 构建容器:

    docker build -t enigmapython-mcp .
  2. 通过 stdio 运行(默认):

    docker run -i enigmapython-mcp
  3. 通过 SSE 运行:

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

客户端配置 (Claude Desktop)

我们提供了两个不同的 mcpb 包,用于在 Claude Desktop 上一键安装。只需从 GitHub Releases 页面下载您喜欢的包,然后将其拖放到 Claude Desktop 的扩展菜单中即可:

  1. enigmapython-mcp-docker.mcpb:极其轻量,依赖于您的本地 Docker 守护进程在隔离容器中运行服务器。(推荐)

  2. enigmapython-mcp-python.mcpb:包含完整的 Python 源代码。Claude Desktop 将原生构建虚拟环境并运行服务器,无需 Docker。

如果您更喜欢通过 claude_desktop_config.json 进行手动配置,请使用以下设置:

使用 Python (推荐 uvx)

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

使用 Docker

(注意:请确保先构建了 Docker 镜像:docker build -t enigmapython-mcp .

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

客户端配置 (OpenCode)

要将此服务器与 OpenCode 一起使用,请在 mcp 部分下将以下内容添加到您的 ~/.config/opencode/opencode.json(全局)或 opencode.json(项目级)中:

使用 Python (推荐 uvx)

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

使用 Docker

(注意:请确保先构建了 Docker 镜像:docker build -t enigmapython-mcp .

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

示例提示词

服务器配置完成后,您可以通过向 LLM 发送以下提示词来测试它:

示例 1:基础加密 (Enigma M3)

"我需要使用 Enigma M3 加密消息 'TOPSECRET'。转子从快到慢依次为 III、II 和 I。所有转子起始位置为 0,环设置均为 0。使用反射器 'UKWB',不使用插线板。密文是什么?"

示例 2:历史解密 (Enigma I)

"解密这条 1930 年的 Enigma I 消息。密文是 'GCDSEAHUGWTQGRK'。机器设置(严格按从快到慢顺序)为:转子 III、I 和 II。它们各自的环设置是 21、12 和 23。它们的初始位置是 11、1 和 0。反射器是 'UKWA'。插线板交换为:A/M, F/I, N/V, P/S, T/U, W/Z。"

示例 3:复杂的 M4 配置

"使用 Enigma M4 加密消息 'DIVE DIVE DIVE'。机器使用 'UKWBThin' 反射器。转子(明确按 [最快, 中间, 最慢, 希腊] 顺序)为:VIII (位置 2), III (位置 6), IV (位置 12), 和 Gamma (位置 21)。所有环设置均为 0。请处理此消息。"

测试

tests/test_server.py 中包含了一套全面的测试套件。它测试了所有 10 种支持的 Enigma 型号的加密和解密可逆性。

运行测试:

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

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

交互式测试 SSE 服务器

由于模型上下文协议在调用任何工具之前需要有状态的初始化握手,因此使用 curl 手动测试 SSE 端点非常复杂。

测试服务器最简单且官方推荐的方法是使用 MCP Inspector

  1. 确保您的服务器以 SSE 模式运行:

    uv run enigmapython-mcp --transport sse --host 0.0.0.0 --port 8000
  2. 在第二个终端中,启动 Inspector:

    npx @modelcontextprotocol/inspector
  3. 浏览器中将打开一个 Web 界面(通常在 http://localhost:5173)。

  4. Transport Type 更改为 SSE

  5. 输入 http://localhost:8000/sse 作为 URL 并点击 Connect

  6. 现在您可以直观地配置并执行 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