Skip to main content
Glama
wocessade

pm3-mcp-server

by wocessade

pm3-mcp-server

Windows-first Model Context Protocol сервер, оборачивающий CLI Proxmark3 Iceman/RRG для рабочих процессов с MIFARE Classic.

Это не прямой 1:1 пропуск CLI: основной путь — magic-safe запись — определение поколения карты → выбор правильной команды записи → проверка → откат при тихом сбое.

Только авторизованное использование. Используйте только на картах и системах, которыми вы владеете или на тестирование которых имеете явное разрешение. Запись на magic-карты и изменение UID имеют необратимые режимы отказа (например, заморозка Gen3).

Требования

  • Windows + клиент Proxmark3 Iceman (proxmark3.exe) уже установлен и прошит

  • Python 3.10+

  • Последовательный доступ к устройству (не запускайте официальный GUI Proxmark на том же COM-порту одновременно)

Related MCP server: mcp-uart

Конфигурация

Переменная

Значение

PM3_EXE_PATH

Абсолютный путь к proxmark3.exe (обязательно)

PM3_CWD

Рабочий каталог для словарей / относительных путей (по умолчанию — каталог exe)

PM3_PORT

Последовательный порт (по умолчанию COM3)

PM3_TIMEOUT_SEC

Таймаут команды (по умолчанию 30, жёсткий предел 120)

PM3_KEYS_FILE

Необязательный путь к keys.local.json

Скопируйте keys.local.json.example → keys.local.json для сайтовых ключей (в gitignore). Сервер сообщает LLM только количество ключей, никогда не список ключей.

Метки папок вендорского пакета (например, V9.0.6.7) — это просто ярлыки. Реальная версия клиента берётся из pm3_info / proxmark3.exe --version (например, Iceman v4.20142). Этот сервер не прошивает прошивку.

Установка

git clone https://github.com/wocessade/pm3-mcp-server.git
cd pm3-mcp-server
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
pytest -q

Проверьте клиент (карта не требуется):

& $env:PM3_EXE_PATH --version

Запуск

$env:PM3_EXE_PATH = "C:\path\to\proxmark3.exe"
$env:PM3_CWD = "C:\path\to\proxmark3"
$env:PM3_PORT = "COM3"
python server.py

Фрагмент для Cursor / Claude MCP

{
  "mcpServers": {
    "pm3": {
      "command": "python",
      "args": ["C:\\path\\to\\pm3-mcp-server\\server.py"],
      "env": {
        "PM3_EXE_PATH": "C:\\path\\to\\proxmark3.exe",
        "PM3_CWD": "C:\\path\\to\\proxmark3",
        "PM3_PORT": "COM3"
      }
    }
  }
}

Предпочитайте интерпретатор venv, если вы установили зависимости туда:

"command": "C:\\path\\to\\pm3-mcp-server\\.venv\\Scripts\\python.exe"

Инструменты

Основные (используйте в первую очередь)

Инструмент

Роль

pm3_info

hf mf info (+ запасной hf 14a info); UID/ATQA/SAK/card_type + версия клиента

pm3_dump

Дамп секторов + сводка ключей

pm3_write_magic_safe

Автоматический маршрут записи + проверка magic после записи

pm3_access_decode

Локальный трейлер / декодирование access-bits FF078069

pm3_get_card_knowledge

Фрагменты таксономии magic для контекста

Продвинутые (только когда основных недостаточно): pm3_detect_magic, pm3_try_keys, pm3_read_block, pm3_read_sector, pm3_write_block, pm3_set_uid.

Таксономия магической записи

Поколение

Запись

Проверка

Никогда автоматически

Gen1a/1b

csetblk / csetuid (опционально csetblk --gdm = только пробуждение Gen1a)

cgetblk

gen3freeze, gdmsetcfg

Gen2 / CUID

wrbl (--force для block0)

rdbl

то же

Gen3

gen3uid / gen3blk

gen3/info пути

gen3freeze; не csetblk --gdm

Gen4 GDM

gdmsetblk (затем вариант csetblk --gdm)

magic чтение

gdmsetcfg

Ответы, обращённые к устройству, включают _raw (усечённый) для корректного отката при разборе.

Тесты

pytest -q

Покрывают фикстуры парсера, access bits (FF078069), маршрутизатор записи (Gen3 ≠ --gdm) и проверку клиента (инъекции / белый список / размер пакета).

Примечания по реальному оборудованию

  • Поместите карту на антенну перед pm3_info / инструментами записи.

  • Нет карты → ok: false, reason: "no_card" (без цикла повторов).

  • Gen4 GDM: wrbl на трейлерах может сообщать об успехе, проглатывая данные — pm3_write_magic_safe проверяет и откатывается.

  • Прошивка прошивки вне области действия.

Лицензия

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to communicate with UART/serial devices, offering tools for port management, data read/write, and protocol handling.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides AI assistants with access to Magic: The Gathering card data via Scryfall API, enabling card search, image downloads, and database management.
    14 npm
    2
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to control Bluetooth audio devices via MCP tools, including battery status, connect/disconnect, find-my, and snoop decoding.
    MIT