{"name":"io.github.zriyox/codex-supervisor-mcp","slug":"zriyox-codex-supervisor-mcp","title":null,"description":"Parallel Codex CLI workers from any MCP client: one git worktree each, state in SQLite, web board.","url":"https://mcp.market/server/zriyox-codex-supervisor-mcp","rating":null,"grade":"B","score":77,"certified":false,"status":"active","category":"data","tags":["data","devtools"],"presence":{"score":41,"stars":3,"forks":0,"downloads_week":2631,"last_push_at":"2026-10-13T14:05:21.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/zriyox/codex-supervisor-mcp","website":"https://codex-supervisor.zriyo.com","version":"0.8.0","remotes":[],"packages":[{"registryType":"npm","identifier":"codex-supervisor-mcp","version":"0.8.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Path to the codex CLI when it is not on PATH","format":"filepath","name":"CODEX_BIN"},{"description":"State directory, default ~/.codex-supervisor","format":"filepath","name":"SUPERVISOR_HOME"}]}],"tools":[{"name":"ask_codex_worker","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"cancel_codex_worker","description":"Terminate a running Codex worker. Uses the in-process handle when available, otherwise the pid recorded on disk so a different MCP session can still cancel it.","write_action":true,"price_micros":0,"input_schema":null},{"name":"check_for_update","description":"Ask the npm registry whether a newer codex-supervisor-mcp is published, and whether the installed files match the published tarball. Returns installed and latest version, integrity check, and the install command. The same check runs on startup; call this to force a fresh one.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_codex_followup_worker","description":"Start a NEW Codex session seeded with the previous worker's prompt, status, and recent events. To continue the same session instead, use resume_codex_worker.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_codex_worker","description":"","write_action":true,"price_micros":0,"input_schema":null},{"name":"describe_session","description":"Record what a session is about: a one-line title and an optional note. Readers of the store (the web view, get_session_works) show these instead of the bare session id. Fields you omit are kept.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_codex_worker_events","description":"Read recent raw Codex JSONL events for one worker. limit, maxChars and kinds keep the read inside a context budget; maxChars truncates the middle of oversized strings the same way Codex truncates its own output.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_codex_worker_status","description":"Read the latest normalized status for one Codex worker: lifecycle, phase, current action, changed files, goal, recent commands, and the task prompt (clipped by default). Set includePrompt to read the prompt in full, or use get_codex_worker_events for the raw stream.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_orchestration_overview","description":"Compact status table for every worker, budgeted to stay under ~2k tokens. This is the default read for an orchestrating main thread; fetch details per worker only when needed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_session_works","description":"Every worker dispatched under one session_id, oldest first. This is the reconnect path: a main-thread session that died can list the whole batch it started without holding any of it in context.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_worker_diff","description":"The worker's actual changes as patches: everything between the commit its worktree started from and its working tree, committed or not, plus untracked files. This is the ground truth to check a worker's report against. maxChars bounds the whole answer: files past the budget come back listed but without a patch, so the file list is always complete. paths narrows the diff to those files or directori","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_worker_goal","description":"Read the goal recorded for a worker, plus the native Codex thread goal when the thread has one (status, tokens used, time used).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_worker_result","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_worker_summary","description":"One compact summary per worker: goal, status, changed files, last command, last message. Cheap enough for a main thread to read every worker at the end of a run.","write_action":false,"price_micros":0,"input_schema":null},{"name":"land_codex_worker","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_codex_workers","description":"List tracked Codex workers. Defaults to active workers only.","write_action":false,"price_micros":0,"input_schema":null},{"name":"resume_codex_worker","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_works","description":"Substring search over title, goal, prompt and last message of every tracked worker, newest first. Use it to find an earlier work by keyword instead of paging through history.","write_action":false,"price_micros":0,"input_schema":null},{"name":"wait_codex_workers","description":"","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":77,"grade":"B","scanned_at":"2026-10-13T23:14:58.125Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-13T23:14:58.010Z","components":{"code":{"score":15,"max":25,"notes":["24 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"install.script","severity":"medium","component":"code","title":"npm install lifecycle script present"},{"id":"install.script","severity":"medium","component":"code","title":"npm install lifecycle script present","evidence":"package.json: …, \"LICENSE\" ], \"scripts\": { \"postinstall\": \"node ./src/setup.js --auto --quiet\", …"}],"inputs":{"packages":[{"registryType":"npm","identifier":"codex-supervisor-mcp","version":"0.8.0","found":true,"license":"MIT","hasInstallScripts":true,"dependencyCount":1,"publishedAt":"2026-10-08T10:10:22.970Z","repositoryUrl":"git+https://github.com/zriyox/codex-supervisor-mcp.git","weeklyDownloads":2631}],"repo":{"found":true,"owner":"zriyox","repo":"codex-supervisor-mcp","archived":false,"pushedAt":"2026-10-13T14:05:21Z","stars":3,"forks":0,"openIssues":2,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/135624117?v=4","ownerCreatedAt":"2023-06-05T13:35:47Z","license":"MIT"},"icon":{"url":"https://codex-supervisor.zriyo.com/favicon.svg","source":"site"},"presence":{"stars":3,"forks":0,"downloadsWeek":2631,"license":"MIT","lastPushAt":"2026-10-13T14:05:21.000Z","score":41}}}},"grade_history":[],"reviews":[]}