no_human 0.1.4
Fixes nh mcp-serve on every install that resolves dependencies from PyPI — which is every install that is not a git checkout.
The bug (public issue #15). intake/mcp_bridge.py imports mcp.server.fastmcp; the MCP SDK removed that path in 2.0.0, and our requirement was mcp>=1.28.0 with no upper bound. So uvx no-human mcp-serve, nh mcp-serve after uv tool install no-human, and the Claude Code plugin's command all died with ModuleNotFoundError on 0.1.1, 0.1.2 and 0.1.3.
It did not start when 2.0.0 shipped (2026-07-28): claude-agent-sdk carried mcp<2.0.0 until 0.2.140 relaxed it to mcp<3.0.0 on 2026-08-18 — someone else's cap had been holding this package up by accident, and every release of ours postdates that.
The fix
mcp>=1.28.0,<2, with the cause and the raise-it-together rule recorded at the requirement.- CI's wheel job now imports the bridge inside the environment it builds with
uv tool install— the only lane that resolves from PyPI rather thanuv.lock, and the blind spot that let this ship. tests/test_mcp_dependency_bound.pyfails if the declared bound ever admits an SDK without the module the bridge imports.
Verified on the published package: uvx no-human mcp-serve answers initialize and lists task_add + task_status. The MCP Registry entry (io.github.no-human-ai/no_human) is republished at 0.1.4.
Desktop apps were never affected (they bundle the locked SDK). Porting the bridge to the SDK's 2.x API, so the cap can be lifted, is tracked in #16.
Install: uv tool install no-human · pip install no-human · desktop apps below, each with a SHA-256.