pyModbusTCP
A simple Modbus/TCP library for Python
Decision gist · record as of 2026-08-14
Yes, if you need Modbus/TCP communication and are comfortable with dormant maintenance. The library is stable, dependency-free, and tested across Python 3.8 through 3.12. No known vulnerabilities. MIT license poses no restrictions. Install it for straightforward industrial device integration; avoid it only if you require active development.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low friction: pure Python with no runtime dependencies, distributed as a wheel.
- Maintenance is dormant—last release was 709 days ago—but the repository remains active with a recent commit on 2025-02-14.
License · maintenance · safety
MIT (permissive) — MIT license is permissive; you can use, modify, and distribute this package with minimal restrictions, suitable for both open-source and commercial projects.
last release 2024-09-04 (709 days) · last repo commit 2025-02-14 · 347 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 101,834 downloads/mo, #12,912 on PyPI
Alternatives
Verify before relying
from pyModbusTCP.client import ModbusClient
c = ModbusClient(host="localhost", port=502, unit_id=1, auto_open=True)
regs = c.read_holding_registers(0, 2)
if regs:
print(regs)- Whether the package is actively maintained or in long-term stable mode despite the 709-day gap since last release
- Current compatibility with Python versions beyond 3.12, given testing through 3.12
What it is and what it does
pyModbusTCP is a pure-Python implementation of the Modbus/TCP protocol, allowing you to communicate with industrial devices, PLCs, and other Modbus-enabled hardware over standard TCP connections. It provides both client and server functionality, letting you read and write holding registers and other Modbus data types. The library handles the protocol details internally and exposes a simple API for common operations like reading registers or writing values to device addresses.
The package is designed for straightforward integration into Python applications that need to interact with Modbus devices—no compiled extensions or external system libraries required. You instantiate a client with a host and port, optionally configure automatic connection handling, and then call methods to read or write device registers. It has been tested on Python 3.8, 3.9, 3.10, 3.11 and 3.12 across Linux, Mac OS and Windows.
Use it for
- Read sensor data or device status from industrial equipment connected via Modbus/TCP
- Write control commands to PLCs or other Modbus devices from a Python application
- Build a local Modbus server to simulate or proxy industrial devices for testing
- Monitor and log register values from multiple Modbus devices in a data collection pipeline
- Integrate legacy industrial hardware into modern Python-based automation systems
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need Modbus/TCP communication and are comfortable with dormant maintenance.
The library is stable, dependency-free, and tested across Python 3.8 through 3.12. No known vulnerabilities. MIT license poses no restrictions. Install it for straightforward industrial device integration; avoid it only if you require active development.
Install
pymodbustcp on PyPI
Before you install
Low friction: pure Python with no runtime dependencies, distributed as a wheel. Maintenance is dormant—last release was 709 days ago—but the repository remains active with a recent commit on 2025-02-14.
License in practice
MIT license is permissive; you can use, modify, and distribute this package with minimal restrictions, suitable for both open-source and commercial projects.
Quickstart
from pyModbusTCP.client import ModbusClient
c = ModbusClient(host="localhost", port=502, unit_id=1, auto_open=True)
regs = c.read_holding_registers(0, 2)
if regs:
print(regs)
Verify before relying
- Whether the package is actively maintained or in long-term stable mode despite the 709-day gap since last release
- Current compatibility with Python versions beyond 3.12, given testing through 3.12
Package facts
| License | MIT permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Dormant 709 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 101,834 / month, #12,912 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: pyModbusTCP-0.3.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “modbus tcp client”
- pyModbusTCPA pure-Python Modbus/TCP client and server library for reading and…
- async-modbusAsync ModBus provides an asynchronous Python client for ModBus…
- pymodbusPyModbus is a complete Modbus protocol implementation providing…
Give your agent the search over MCP, or paste the wish link into any chat.
More Networking packages
h11 is a pure-Python HTTP/1.1 protocol implementation that handles parsing and serializing HTTP messages without any built-in I/O, letting you integrate it with any network layer you choose.
psutil retrieves real-time information about running processes and system resources (CPU, memory, disks, network, sensors) across multiple operating systems, enabling system monitoring, process profiling, and resource management.
pyOpenSSL wraps OpenSSL's SSL/TLS functionality for Python, providing high-level connection objects and certificate handling through a Python-friendly interface around OpenSSL's cryptographic operations.
uvloop is a drop-in replacement for Python's built-in asyncio event loop, implemented in Cython and using libuv, that accelerates async I/O operations.
execnet lets you spawn and communicate with Python interpreters across local processes, remote hosts, and different platforms, using a simple API for task distribution and inter-process messaging.
However, the aging maintenance status (275 days since last release) means you should verify it meets your concurrency and performance needs before committing to a…
PyZMQ provides Python bindings for ZeroMQ (ØMQ), a lightweight messaging library that enables fast, asynchronous communication between distributed processes and applications.
See also pymodbus · uModbus · async-modbus · huawei-solar · minimalmodbus · nibe · port-for · goodwe · python-snap7 · pylogix