{"name":"io.github.ymxc152/plctap","slug":"ymxc152-plctap","title":"plctap","description":"Agent-PLC MCP Server: read & diagnose Modbus / FINS / MELSEC / S7 / IEC 104 / ENIP / OPC UA PLCs.","url":"https://mcp.market/server/ymxc152-plctap","rating":null,"grade":"A","score":85,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":18,"stars":1,"forks":0,"downloads_week":null,"last_push_at":"2026-09-13T06:37:29.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/ymxc152/plctap","website":null,"version":"0.6.2","remotes":[],"packages":[{"registryType":"pypi","identifier":"plctap","version":"0.6.2","transport":{"type":"stdio"}}],"tools":[{"name":"detect_device","description":"设备自动识别: 给定 host 自动扫端口并判定协议 (v0.4, 全程只读)。","write_action":false,"price_micros":0,"input_schema":null},{"name":"diagnose","description":"综合观测给出结构化的故障候选结论 (确定性规则, 不编故事; 全程只读)。","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_listener_frames","description":"取监听收下的帧 (direction/peer/frame_hex), 供 parse_frame/diagnose 分析。","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_proxy_frames","description":"取代理录制的双向透传帧 (direction: c2s=上位机→PLC, s2c=PLC→上位机)。","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_protocols","description":"列出本 server 支持的工业协议及其能力。","write_action":false,"price_micros":0,"input_schema":null},{"name":"parse_frame","description":"把一帧报文 hex 逐字段结构化解析 (不需要连接设备)。","write_action":false,"price_micros":0,"input_schema":null},{"name":"parse_pcap","description":"解析 Wireshark 导出 pcap: 按 TCP 流聚合载荷 -> 按协议切帧 -> 逐帧 parse_auto。","write_action":false,"price_micros":0,"input_schema":null},{"name":"plc_browse","description":"浏览地址空间: 从 node 展开一层子节点 (诊断场景的\"列目录\")。","write_action":false,"price_micros":0,"input_schema":null},{"name":"plc_read","description":"从 PLC 读取数据区并按数据类型解释。","write_action":false,"price_micros":0,"input_schema":null},{"name":"plc_write","description":"写数据点 (危险操作: 需要用户明确授权)。","write_action":true,"price_micros":0,"input_schema":null},{"name":"probe_device","description":"测试能否连上 PLC 并通信, 失败时给出层级归因。","write_action":false,"price_micros":0,"input_schema":null},{"name":"send_frame","description":"发送任意原始帧并等待一帧响应 (危险: 直接与真实设备交互)。","write_action":true,"price_micros":0,"input_schema":null},{"name":"start_listener","description":"起钓鱼模式监听: 待测设备只能当 client 时, 立假 server 钓出它的帧行为。","write_action":false,"price_micros":0,"input_schema":null},{"name":"start_proxy","description":"起透明代理: 上位机 → 代理 → 真实 PLC, 透传同时按协议分帧录制双向帧。","write_action":false,"price_micros":0,"input_schema":null},{"name":"stop_listener","description":"停掉指定端口的监听, 返回收/发帧统计。","write_action":false,"price_micros":0,"input_schema":null},{"name":"stop_proxy","description":"停掉指定端口的代理, 返回录制统计 (c2s/s2c 帧数)。","write_action":false,"price_micros":0,"input_schema":null},{"name":"validate_frame","description":"对一帧报文跑规范校验清单, 逐项 pass/fail (不需要连接设备)。","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":85,"grade":"A","scanned_at":"2026-09-19T20:05:49.828Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T20:05:49.828Z","components":{"code":{"score":20,"max":25,"notes":["63 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 7 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"plctap-0.6.2/src/plctap/pcap.py: …es scapy; install with: uv sync --extra eval (or pip install scapy)\" ) from e …"}],"inputs":{"packages":[{"registryType":"pypi","identifier":"plctap","version":"0.6.2","found":true,"license":"MIT","dependencyCount":6,"publishedAt":"2026-09-13T06:38:09.352408Z","repositoryUrl":"https://github.com/ymxc152/plctap"}],"repo":{"found":true,"owner":"ymxc152","repo":"plctap","archived":false,"pushedAt":"2026-09-13T06:37:29Z","stars":1,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/151694160?v=4","ownerCreatedAt":"2023-11-22T00:36:59Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/151694160?v=4&s=128","source":"registry","width":128,"height":128},"presence":{"stars":1,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-13T06:37:29.000Z","score":18}}}},"grade_history":[],"reviews":[]}