jobd — Claude Code MCP server: what it does, how to install
GPU-aware job broker for personal machines. Enables AI agents to schedule, route, and monitor workloads across a local network or Tailscale.
claude mcp add --env JOBD_URL=<JOBD_URL> --env JOBD_API_TOKEN=<JOBD_API_TOKEN> --transport stdio jobd -- uvx jobdWhat jobd does
jobd operates a central FastAPI broker backed by SQLite to orchestrate jobs across connected machines. Worker nodes long-poll the queue and report available compute capacity. The broker assigns tasks based on free system RAM, CPU cores, host tags, and available video memory. Commands submitted through the jobd_submit MCP tool execute directly in bash -c.
The system supports workload preemption when higher-priority jobs arrive. An active task receives SIGTERM and gets a grace period to dump state into JOBD_CHECKPOINT_DIR before receiving SIGKILL. Preempted tasks will not resume on their own; you must start a replacement job pointed at the saved checkpoint.
Worker daemons query memory exclusively on GPU index 0. Multi-GPU hosts cannot distribute tasks across secondary cards through this broker. Running the broker or worker requires Python 3.11 or later.
What it helps with
- route heavy scripts to hosts with sufficient free VRAM
- track background execution and stream console logs via an agent
- preempt long workloads cleanly using checkpoint directories
- manage compute across personal hardware without Slurm or Kubernetes
Example prompts for the agent
- Submit
python train.pyto any machine with at least 16 GB of free VRAM - Check current tasks in the
jobdqueue and inspect output logs
How to install jobd
Platform CLI
claude mcp add --env JOBD_URL=<JOBD_URL> --env JOBD_API_TOKEN=<JOBD_API_TOKEN> --transport stdio jobd -- uvx jobdReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from jobd <command>
Platform CLI
codex mcp add jobd --env JOBD_URL=<JOBD_URL> --env JOBD_API_TOKEN=<JOBD_API_TOKEN> -- uvx jobdReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from jobd <command>
Config file
{
"mcpServers": {
"jobd": {
"command": "uvx",
"args": [
"jobd"
],
"env": {
"JOBD_URL": "<JOBD_URL>",
"JOBD_API_TOKEN": "<JOBD_API_TOKEN>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from jobd <command>
Config file
{
"servers": {
"jobd": {
"type": "stdio",
"command": "uvx",
"args": [
"jobd"
],
"env": {
"JOBD_URL": "<JOBD_URL>",
"JOBD_API_TOKEN": "<JOBD_API_TOKEN>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from jobd <command>
Platform CLI
gemini mcp add -e JOBD_URL=<JOBD_URL> -e JOBD_API_TOKEN=<JOBD_API_TOKEN> jobd uvx jobdReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from jobd <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about jobd
How to install jobd in Claude Code?
Run claude mcp add --env JOBD_URL=<JOBD_URL> --env JOBD_API_TOKEN=<JOBD_API_TOKEN> --transport stdio jobd -- uvx jobd. It requires Python 3.11 or newer and access to an active jobd broker.
What does jobd do?
It queues and dispatches shell commands across your private machines by matching CPU, system memory, and available VRAM. Agents submit and follow jobs using standard MCP tools.
Does jobd support multiple GPUs on a single host?
Workers report free memory metrics strictly for GPU index 0. Any extra GPUs installed in that machine are ignored during scheduling.