Self-hosted GPU-aware job broker that queues, routes, monitors, and preempts jobs across your machines.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Jobd.
A self-hostable, GPU-aware job broker for your own machines β with native MCP/agent integration.
Like task-spooler or pueue, but across all your machines β and VRAM-aware.
You have a couple of boxes with GPUs β a workstation, a server, maybe a laptop β wired together over Tailscale or a LAN. You want to fire off training runs, data pipelines, and long batch jobs from anywhere, have them land on whichever machine actually has the VRAM free, survive across sessions, and get preempted cleanly when something more important shows up. You don't have a cloud, a Kubernetes cluster, or a Slurm install, and you don't want one.
jobd is that missing piece: a small broker that turns a handful of personal machines into a single queue β and an LLM agent can drive it directly.
Most schedulers assume a datacenter. The lightweight ones that don't (a bare nohup, a tmux session, an ssh-and-pray script) give you nothing: no queue, no VRAM-aware routing, no preemption, no record of what ran where. jobd fills the gap between "ssh in and run it" and "stand up Slurm":
SIGTERM, the workload gets a grace window to checkpoint, then SIGKILL. A preempted job reaches a terminal preempted state with a durable checkpoint to resume from β it isn't silently re-run. (See docs/preemption.md.)| Tool | What it gives you | Why jobd instead |
|---|---|---|
nohup / tmux / ssh-and-pray | Runs a command on one box | No queue, no VRAM-aware routing, no preemption, no record of what ran where |
| task-spooler | A real job queue β on a single machine | jobd queues across all your machines and routes by live VRAM/CPU fit |
| Pueue | The best single-machine command queue daemon | Pueue's own README declares distributed execution out of scope β jobd is that missing layer, plus GPU awareness |
| HyperQueue | Multi-machine task scheduling with HPC roots, single binary | HQ counts GPUs but doesn't track VRAM, and has no preemption/checkpoint contract or agent interface |
| Slurm | Datacenter-grade scheduling | Heavy to stand up and operate for 2β3 personal boxes; jobd is one process + a poller per host |
| SkyPilot / Modal / dstack | Provision and run on clouds + your own machines | SkyPilot's "existing machines" mode installs a k3s cluster on your boxes; dstack wants Docker + passwordless sudo on every host. jobd is one process + a poller β no containers, no sudo, no K8s |
| Ray | A distributed-compute framework | jobd is a job queue, not a programming model β submit any command, no code changes, GPU-fit routing built in |
Closest in spirit are Pueue and task-spooler (single-machine by design) and HyperQueue (multi-machine, HPC-shaped). jobd's niche is the 2β5-GPU homelab: multi-machine live VRAM-fit routing + preempt/checkpoint + a native MCP interface β a combination none of the above offers β with nothing heavier than a Python process per host.
Workers poll the broker (pull model β no inbound connection to a worker); the broker matches each job against live capacity and hands it back on the poll. One broker process, one poller per host.
shell=False, no shell-injection surface), streams logs back, and honors preemption signals.job CLI, the jobd-mcp MCP server, or anything that speaks the HTTP API.Requires Python β₯ 3.11. Everything ships in the one jobd package: the broker (jobd), the CLI (job), the MCP server (jobd-mcp), and the worker (jobd-worker). The worker's runtime deps (httpx, psutil, pyyaml, nvidia-ml-py) live behind the [worker] extra since they're only needed on machines that actually run jobs. scripts/install-worker.sh sets a worker up under ~/jobd-worker with its own venv and a generated config.
For a real multi-host deployment (Docker broker + systemd workers, Tailscale binding, shared auth token), see docs/security.md and the templates in docker-compose.yml and scripts/. Adding a worker to a running fleet is one command:
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/musharna-jobd)<a href="https://allmcps.com/mcp/musharna-jobd"><img src="https://allmcps.com/api/badge/musharna-jobd?style=directory" alt="Jobd on AllMCPs" /></a>