Skip to main content
Glama
denismaggior8

enigma-python-mcp

Enigma Python MCP Server

enigmapythonライブラリの機能をLLMに提供し、歴史的に正確なエニグマ暗号機エミュレーターを使用してメッセージの暗号化と復号化を可能にするMCP(Model Context Protocol)サーバーです。

Claude Desktop Integration

PyPI version Python Versions Downloads License: MIT Publish Status

このMCPサーバーはGlama.aiに掲載されており、以下のスコアを獲得しています。

enigma-python-mcp MCP server

機能

  • 既知のエニグマ暗号機モデルをすべて公開: Enigma M3、Enigma M4、Enigma I、Enigma K、Enigma Z、Enigma Dなど。

  • 動的設定: LLMは暗号化のためにローター、初期位置、リング設定、リフレクター、プラグボードのペアを指定できます。

  • ローカルおよびネットワークモード: ローカルMCP統合(Claude Desktopなど)用のstdioトランスポートと、ネットワーク経由でツールを公開するためのsseトランスポートの両方をサポートしています。

  • Docker化: プラットフォーム間での移植と実行が容易です。

公開ツール

encrypt_message

設定されたエニグマ暗号機を使用してメッセージを暗号化または復号化します。

引数:

  • 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): reflector_type (str)、およびオプションで回転リフレクター用のring_setting (int)とinitial_position (int | str)を指定するReflectorConfigオブジェクト。

  • 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)

Claude Desktopにワンクリックでインストールできる2つの異なるmcpbバンドルを提供しています。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でこのサーバーを使用するには、~/.config/opencode/opencode.json(グローバル)またはopencode.json(プロジェクトレベル)のmcpセクションに以下を追加してください:

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種類すべてのエニグマモデルについて、暗号化と復号化の可逆性をテストします。

テストを実行するには:

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

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

SSEサーバーの対話的なテスト

Model Context Protocolではツールを呼び出す前にステートフルな初期化ハンドシェイクが必要なため、curlを使用してSSEエンドポイントを手動でテストするのは非常に複雑です。

サーバーをテストする最も簡単で公式に推奨される方法は、MCP Inspectorを使用することです:

  1. サーバーがSSEモードで実行されていることを確認します:

    uv run enigmapython-mcp --transport sse --host 0.0.0.0 --port 8000
  2. 2つ目のターミナルでInspectorを起動します:

    npx @modelcontextprotocol/inspector
  3. ブラウザでWebインターフェースが開きます(通常はhttp://localhost:5173)。

  4. Transport TypeSSEに変更します。

  5. URLとしてhttp://localhost:8000/sseを入力し、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