Token导航 LogoToken导航TokenDH.com
pm3 MCP logo
安全风控stdio官方级别未说明来源级核验

pm3 MCP

MCP Server

pm3-mcp是一个用于Proxmark3 RFID/NFC标签识别和读取的MCP服务器,通过封装iceman固件客户端,实现标签检测、识别和内容转储功能,适用于安全测试和硬件研究场景。

工具数

30

提示词数

0

GitHub Stars

2

资源数

0
安全PythonClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

mplogas

提供方

mplogas

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -e ".[dev]"

详细介绍

pm3-mcp

专为在Raspberry Pi 5上与Claude Code一起使用而构建,但适用于任何具有Proxmark3的系统上的任何MCP客户端。

它的作用

  • 标签检测: 自动检测LF和HF标签(MIFARE、EM410x、HID、iClass、DESFire等)
  • HF识别: UID、ATQA、SAK、协议细节、PRNG弱点检测、魔术标签识别
  • LF标识: 标签类型、ID、调制
  • 块读取: 使用密钥身份验证读取单个MIFARE Classic块
  • 内存转储: 保存为伪影的完整标签转储(MIFARE Classic 1K/4K、Ultralight)
  • 参与度记录: 每个参与文件夹的带时间戳的命令日志(JSONL)

需求

  • Python 3.11+
  • 带有iceman固件的Proxmark3(pm3 PATH上的客户端)
  • 用户在 dialout 串行访问组(sudo usermod -aG dialout $USER)
  • 从源头打造冰人:https://github.com/RfidResearchGroup/proxmark3

安装

git clone https://github.com/mplogas/pm3-mcp.git
cd pm3-mcp
pip install -e ".[dev]"

MCP客户端配置

添加到您的 .mcp.json:

{
  "mcpServers": {
    "pm3": {
      "command": "/path/to/.venv/bin/python",
      "args": ["-m", "pm3_mcp"],
      "env": {
        "PIDEV_ENGAGEMENTS_DIR": "/path/to/engagements"
      }
    }
  }
}

PIDEV_ENGAGEMENTS_DIR 以控制参与日志的写入位置。默认为 ./engagements/ 相对于包根。

工具

工具安全级别描述
hw_status只读已加载设备信息、固件、密钥字典
detect_tag只读自动检测读卡器上的任何LF/HF标签
hf_info只读详细的HF标签标识(ISO14443A)
lf_info只读LF标签协议标识
read_block只读读取单个MIFARE Classic块
dump_tag只读全内存转储(MIFARE Classic 1K/4K、Ultralight)
autopwn只读自动恢复所有MIFARE经典密钥(字典+暗边+嵌套+硬嵌套)
darkside只读通过PRNG漏洞恢复一个密钥
nested只读使用已知密钥恢复密钥(弱PRNG)
hardnested只读使用已知密钥恢复密钥(硬PRNG)
chk_keys只读对所有扇区进行字典检查
desfire_info只读DESFire标签详细信息:UID、版本、存储、应用程序、签名
desfire_apps只读枚举DESFire应用程序及其身份验证要求
desfire_files只读列出DESFire应用程序中的文件(通常需要身份验证)
iclass_info只读iCLASS/PicoPass标签信息(CSN,卡类型)
iclass_rdbl只读读取iCLASS块(块0-4通常无需密钥即可读取)
iclass_dump只读将iCLASS标签内存转储到文件
iclass_chk只读从内置字典中检查iCLASS密钥
iclass_loclass只读通过loclass攻击恢复iCLASS密钥
iso15693_info只读ISO 15693标签信息(UID、类型、制造商)
iso15693_rdbl只读读取ISO 15693块
iso15693_dump只读将ISO 15693标签内存转储到文件
connect允许写入验证PM3,创建参与文件夹
disconnect允许写入完成命令日志
sniff_start允许写入开始嗅探阅读器标签通信(直到按下PM3按钮为止)
sniff_stop允许写入检索和解码嗅探的跟踪数据
mf_wrbl审批写入写入MIFARE Classic块(需要确认)
mf_restore审批写入将完整转储还原到MIFARE Classic标签(需要确认)
iclass_wrbl审批写入写入iCLASS块(需要确认)
iso15693_wrbl批准写入写入ISO 15693块(需要确认)

安全模型

在MCP服务器边界强制执行三层:

  • 只读: 完全自主。读取标签不会改变它。
  • 允许写入: 自动,记录所有通话。创建参与度文件夹。
  • 批准书: 直到人类确认为止 _confirmed 参数。写入会不可逆地覆盖标签数据。

建筑

pm3-mcp (server.py)
  |
  tools.py -> connection.py -> subprocess.run("pm3 -p PORT -c CMD")
  |                            parsers.py (text output -> structured dicts)
  |
Proxmark3 (iceman fw) via USB serial
  • connection.py 是唯一调用subprocess的模块。每个工具调用运行一个 pm3 -c 命令(无持久进程)。
  • parsers.py 处理文本输出解析,与工具逻辑分离。PM3输出格式因命令和iceman版本而异。
  • 端口自动检测扫描 /dev/ttyACM* 当没有指定端口时。

项目集成

connect 工具接受可选 project_path 参数。提供时(来自项目mcp create_project),参与数据将写入 /pm3/ 而不是创建一个独立的文件夹。单独使用时省略它。

已知约束

  • 每个命令的开销约为1秒: 每个呼叫在USB级别连接/断开。可用于识别工作流程。
  • 输出解析脆弱性: 冰人版本之间PM3输出格式发生变化。解析程序可能需要更新固件升级。
  • 独家设备访问: 一次只能有一个客户端使用PM3。
  • 标签必须位于天线上: RFID/NFC需要物理接近(~5cm高频,~10cm低频)。

测试

pytest              # no PM3 hardware needed
pytest -m proxmark3 # integration tests, PM3 must be connected

许可证

麻省理工学院

目录标签

目录标签

安全PythonClaudeRFID识别本地部署NFC读取安全测试硬件研究标签转储

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

30

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP