Registry / devops / smp
library4.1.0pypypi✓ verified 84d ago

smp is a Python implementation of the Simple Management Protocol (SMP) for remotely managing MCU firmware, commonly used with Zephyr and MCUboot. Version 4.0.2 is current, supporting Python >=3.9. The library provides client and server functionality for MCU management including image upload, shell, file system, and task statistics. Releases occur every few months.

pip install smp
INSTALL
IMPORT
SIG · SMP
S
smp
devopspythonv4.1.0
Install
4.3s avg
Import
—
Disk
28MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.9–3.13
musl
3.9–3.13
Install & Compatibility
Where this runs
tested against v4.1.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.000s · 30.4MB
glibc
py 3.10–3.95 runs
installs and imports cleanly · install 4.3s · import 0.000s · 30MB
28MB installed
● package 28MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

SMPClient
✓ import smp
✗ from smp import SMPClient

Connect to a remote MCU over TCP, send an echo request, and list management groups.

import asyncio from smp import SMPClient, Group async def main(): client = SMPClient("tcp://localhost:6500") await client.connect() # Get echo response echo = await client.echo(data=b"hello") print("Echo:", echo) # List groups groups = await client.get_group_list() print("Groups:", groups) await client.disconnect() asyncio.run(main())
smp --version
Debug
Known issues
breakingv4.0.0 dropped Python 3.8 support. Upgrade to Python >=3.9.
fix
Ensure Python 3.9+ is installed.
affects: <4.0
breakingv4.0.0 changed default line length from 8192 to 127 bytes for encode(). Override if using larger frames.
fix
Use `SMPClient.encode(data, fragment_size=8192)` if 8192 bytes is required.
affects: >=4.0.0 <4.0.0
gotchaTop-level imports changed in v4; 'from smp.client import SMPClient' no longer works.
fix
Use 'from smp import SMPClient' instead.
affects: >=4.0.0
deprecatedThe 'session' module is deprecated in favor of the new client interface.
fix
Migrate to SMPClient (import from smp).
affects: >=3.0 <4.0
Upgrade
Version history
4.1.0latest on PyPI · released Jun 3, 2026
Audit
Dependencies
cbor2requiredCBOR serialization/deserialization for SMP frames
lmdboptionaloptional for persistent session storage
Agent activity
39 hits · last 30 days
node
36
OpenAI (training)
1
Resources
smp — pip install smp · libregistry