{"id":24599,"library":"smpclient","title":"smpclient","description":"SMP (Simple Management Protocol) client for remotely managing MCU firmware, based on the MCUmgr protocol. Supports image management, OS management, shell, and file system operations over SMP. Current version: 7.0.0. Release cadence is irregular.","status":"active","version":"7.0.0","language":"python","source_language":"en","source_url":"https://github.com/intercreate/smpclient.git","tags":["smp","mcumgr","firmware","iot","ble"],"install":[{"cmd":"pip install smpclient","lang":"bash","label":"install from PyPI"}],"dependencies":[{"reason":"CBOR serialization for SMP messages","package":"cbor2","optional":false}],"imports":[{"note":"","wrong":"","symbol":"SMPClient","correct":"from smpclient import SMPClient"}],"quickstart":{"code":"import asyncio\nfrom smpclient import SMPClient\n\nasync def main():\n    async with SMPClient(host='192.168.1.100', port=1337) as client:\n        resp = await client.get_os_info()\n        print(resp)\n\nasyncio.run(main())","lang":"python","description":"Connects to an MCU running an SMP server and retrieves OS info."},"warnings":[{"fix":"Explicitly pass port=1337 or the correct port when creating SMPClient.","message":"Default port is 1337, but many devices use different ports. Always verify the target's SMP port.","severity":"gotcha","affected_versions":"all"},{"fix":"Always use await with SMPClient methods. Run in an async context.","message":"The library uses asyncio; all operations must be awaited. Calling non-awaited coroutines will raise a RuntimeWarning or hang.","severity":"gotcha","affected_versions":"all"},{"fix":"Use host='192.168.1.100' instead of hostname='...'.","message":"SMPClient constructor argument 'hostname' is deprecated in favor of 'host'.","severity":"deprecated","affected_versions":">=6.0.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Add await before the call: await client.get_os_info()","cause":"Calling an async method without await.","error":"RuntimeWarning: coroutine 'SMPClient.get_os_info' was never awaited"},{"fix":"Verify the device IP and that the SMP server is running. Check firewall rules.","cause":"Cannot connect to the target device; wrong IP or device not reachable.","error":"OSError: [Errno 113] No route to host"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}