Skip to content

2.0 — Tracked jobs, sandboxed commands, and the mcp 2 SDK

Latest

Choose a tag to compare

@derfsss derfsss released this 23 Oct 15:32
2ed20cb

2.0 is a major version because the host server moved to the mcp 2.x Python SDK; tools, parameters and config files carry over.

On the daemon, every command now runs as a tracked job that can be followed, read and stopped after the call that started it has returned. MCPd's connection workers now run above ordinary programs, so a busy program can no longer starve the daemon. A job can also run under SandboxVM, so a crashing program is contained and its trap reported. And a command that outlived its timeout is no longer run a second time: the host reports it as still running and never resends a request that may already have run.

143 tools in 15 namespaces, 8 resources, 64 daemon methods. v1.4 was never tagged; its changes are included here.

Highlights

  • exec.status / exec.output / exec.kill / exec.list. A timed-out exec_cmd returns state: "running" with its job_id.
  • Job priority defaults to -2 and is capped at 0 (priority, [defaults] exec_priority). Workers run at +1.
  • exec_cmd sandbox=true returns a sandbox block with end_reason and the trap report. exec_kill force=true needs SandboxVM 1.1.
  • input.key handles F11/F12; input.scroll sends native AmigaOS 4 wheel events.
  • Board detection uses GetMachineInfo; qemu.stop always flushes the guest's filesystem.
  • qemu-runner is a package dependency (v1.3.1, MIT). git must be on PATH to install.

The full list is in CHANGELOG.md.

Assets

  • MCPd-2.0.lha: use this one. It was built on AmigaOS, so the protection bits survive. Unpack with LhA x MCPd-2.0.lha, then run MCPd-Install.
  • MCPd-2.0: the bare daemon ELF, for host-side installers that set the bits themselves.

Verified on QEMU (pegasos2, AmigaOne) and on a real AmigaOne X5000.

https://claude.ai/code/session_01NoRoaz2uRizs5YeGbLXNqr