cpu-gpu-workers
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@cpu-gpu-workersWhat's the CPU pool and GPU lane status?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Workers
See the CPU pools and the Apple GPU lane your Mac is actually using, without leaving Claude Code or Codex.
This repository is one public source tree with two read-only MCP Apps by kestudios.dev:
Package | What it shows | Command |
Local multiprocessing pools, registered job shards, generation-safe progress |
| |
Apple GPU / Metal / MPS lane ownership, queue, and owner-published job facts |
|


Both screenshots are synthetic demo data. Neither App starts, stops, signals, schedules, or otherwise mutates work.
Why this exists
Coding agents can talk about jobs they cannot see. CPU Workers names the process pools on the machine, reports CPU as logical-core equivalents and host capacity, and refuses to invent progress. GPU Workers treats a single Apple GPU as a scarce lane: one active MPS owner is the default, later work is a queue, and host-wide ioreg counters are never assigned to a PID.
Related MCP server: Claude Telemetry MCP
60-second quickstart
Requires macOS, Node.js 20 or newer, and a local Chromium or Google Chrome for the UI tests.
npm --prefix cpu-workers install
npm --prefix gpu-workers install
npm --prefix cpu-workers test
npm --prefix gpu-workers test
node cpu-workers/scripts/status-cli.mjs
node gpu-workers/scripts/status-cli.mjsstatus-cli.mjs prints a live text snapshot of this Mac. npm test uses fixtures plus the synthetic demo screenshots; it does not publish telemetry.
Install and use
Claude Code
From this repository root after the npm install commands above:
claude mcp add --transport stdio cpu-workers -- node "$(pwd)/cpu-workers/scripts/server.mjs"
claude mcp add --transport stdio gpu-workers -- node "$(pwd)/gpu-workers/scripts/server.mjs"
mkdir -p "$HOME/.claude/skills" "$HOME/plugins"
ln -sfn "$(pwd)/cpu-workers" "$HOME/plugins/cpu-workers"
ln -sfn "$(pwd)/gpu-workers" "$HOME/plugins/gpu-workers"
ln -sfn "$(pwd)/cpu-workers/skills/cpu" "$HOME/.claude/skills/cpu"
ln -sfn "$(pwd)/gpu-workers/skills/gpu" "$HOME/.claude/skills/gpu"Or skip the claude mcp add lines and open this folder as the Claude Code project: .mcp.json and .claude/skills/ already register both servers and skills.
Start a new Claude Code session, then:
/cpuopens the CPU Workers viewer/cpu statusreturns plain text/gpuopens the GPU Jobs / MPS Lane viewer/gpu statusreturns plain text
The same ./install.sh script prints those commands with absolute paths after installing package dependencies.
Codex
Each package is a Codex plugin (.codex-plugin/plugin.json, .mcp.json, skill, and UserPromptSubmit hook).
Run
npm --prefix cpu-workers installandnpm --prefix gpu-workers install.Add the absolute
cpu-workersandgpu-workersdirectories to a Codex local marketplace ($plugin-creatorcan do this) and installcpu-workersandgpu-workers.Start a new Codex task so the skill, hook, and MCP server load together.
Invoke
/cpuor/gpu.
A plugin install does not hot-reload an already-open task. Each package can render a truthful PNG fallback with node scripts/render-live-viewer.mjs.
Features
CPU Workers
Bare
/cpuopens the live MCP App;/cpu statusstays text-only.Generation-safe grouping: replacement PIDs are adopted only when entrypoint, output root, and immutable run binding match.
Progress is
LIVE,STALE, orUNAVAILABLE. OnlyLIVEis bar-eligible.Unregistered pools still get stable names from working directory and entrypoint.
Registered jobs may publish shard names, receipt progress, bounded logs, retries, and handoff state.
Large registries stay fast: unchanged manifests with no live process are retired after 24 h, reused PIDs are not mistaken for old jobs, and listings are capped with an explicit "N more" count.
GPU Workers
Host-wide Apple GPU counters stay on the device card; jobs never inherit them.
One active MPS owner per device is the default; overlapping exclusive owners are contention.
Owner-published
ke.gpu-job.v1registrations add framework, lease, queue, progress, and memory facts.Optional
adapters/gpu_job_telemetry.pypublisher is write-on-the-workload-side only.Finished and stale history older than 24 h is retired from the view; active work is always listed first.
Configuration
Variable / path | Package | Purpose |
| CPU | Registered |
| CPU | Override the jobs directory |
| CPU | Retire unchanged manifests with no live process after this many hours (default |
| CPU | Pools listed per snapshot, live first (default |
| CPU | Optional regex for detached single-process jobs to surface (off by default) |
| GPU | Owner-published |
| GPU | Retire finished or stale records older than this many hours (default |
| GPU | Jobs listed per snapshot, active first (default |
| CPU | Renderer / CLI fallback root |
| GPU | Renderer / CLI fallback root |
No API keys, accounts, or network endpoints are required. MCP tools are local stdio, unauthenticated, and read-only.
Security and privacy
Tools are annotated read-only. They cannot start, stop, signal, renice, restart, schedule, claim, or mutate a process or GPU job.
Collection stays on the local Mac. The MCP UI loads no remote scripts, fonts, images, frames, or telemetry endpoints.
Process names, paths, logs, receipts, and task IDs can still be sensitive. Do not publish a live snapshot.
The committed screenshots and
fixtures/demo-snapshot.jsonfiles are invented sample data.
See cpu-workers/SECURITY.md and gpu-workers/SECURITY.md.
Roadmap
Public Codex Plugin Directory listing once a hosted HTTPS MCP endpoint and widget origin exist
Claude Code plugin marketplace listing
Richer registered-job schemas without weakening the unknown-stays-unknown contract
Optional Nvidia NVML/CUDA telemetry remains out of scope for this Apple-silicon-first release
Credits
CPU Workers and GPU Workers are open-source MCP Apps by KE Studios (kestudios.dev). Licensed under Apache License 2.0. The K&E Studios name and Hinge mark identify the original project; see TRADEMARKS.md.
This server cannot be deployed
Maintenance
Related MCP Connectors
Live status and health checks for AI coding providers: Claude, Cursor, Copilot, Codex and more.
Read-only analytics for Convex apps, queryable via MCP from Claude, Cursor, and other clients.
On-demand GPU nodes for agents: create nodes, run commands, and submit jobs, billed by the minute.
Discover Frontier inference capabilities and read sanitized usage through read-only tools.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides Claude with real-time system monitoring capabilities, including CPU, memory, disk, network, battery, and internet speed metrics.MIT
- FlicenseBqualityNot gradedmaintenanceProvides comprehensive telemetry and usage analytics for Claude Code sessions, including token usage tracking, cost monitoring, and tool usage patterns. Enables users to monitor their Claude usage with detailed metrics, warnings, and trend analysis.12-
- AlicenseAqualityNot gradedmaintenanceProvides real-time visibility into Claude Pro and Max subscription usage limits directly within Claude Code by utilizing local OAuth tokens. It enables users to monitor session and weekly usage across different models and receive alerts regarding rate-limiting status.4-
- FlicenseAqualityBmaintenanceProvides AI coding agents with real-time visibility into local development runtime state, enabling them to tail application logs, inspect ports, monitor process metrics, and diagnose network errors.1-