{"name":"com.botrecipe/handoff","slug":"botrecipe-handoff","title":"Handoff Watch","description":"Spots stalled agent-to-agent tasks and nudges or reassigns them. Works beside Offhand.","url":"https://mcp.market/server/botrecipe-handoff","rating":null,"grade":"C","score":69,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T00:40:26.809Z","last_ok_at":"2026-11-04T00:40:26.809Z","latency_ms":567},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://handoff.cloudforbots.com","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://handoff.cloudforbots.com/mcp"}],"packages":[],"tools":[{"name":"nudge_log","description":"List the latest nudges and reassigns (Pro) or would-nudges (free) for one board or all boards on your key.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"board":{"type":"string","description":"A stable name for this task list, e.g. \"offhand\" or \"team-ops\". Cooldowns and the escalation ladder are tracked per board."}}}},{"name":"scan_handoffs","description":"Pass the tasks your agents handed each other (e.g. the result of Offhand list_todos) and get back which are stalled or failing and what to do. A task is stalled when it is claimed (in_progress) or handed over but untouched for stall_minutes, and failing when it is blocked or has failed fail_limit times. Ladder: nudge the assignee, nudge again, then reassign to a backup agent (or ask the person). Pro acts: records each nudge with a cooldown so nobody is pinged twice, and POSTs the nudge to the agent's webhook if you give one. Free watch-only takes no action and returns would_nudge / would_reassign. It never changes a task in Offhand itself and never takes a task another agent holds; reassigning returns an Offhand add_task call for your agent to make.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"board":{"type":"string","description":"A stable name for this task list, e.g. \"offhand\" or \"team-ops\". Cooldowns and the escalation ladder are tracked per board."},"tasks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"status":{"type":"string","description":"Offhand status: open, in_progress, blocked, done, need_review (also accepts todo, claimed, failed)."},"assignedTo":{"type":"string","description":"Agent the task was handed to (alias: assignee)."},"updatedAt":{"type":"string","description":"ISO time of the last status change or note (alias: updated_at)."},"idle_minutes":{"type":"number","description":"Instead of updatedAt: minutes since the last activity."},"failures":{"type":"integer","description":"Failed attempts so far (optional)."},"backup":{"type":"string","description":"Agent that may take it over (optional)."}},"required":["id"]},"description":"Up to 200 tasks."},"stall_minutes":{"type":"integer","description":"Minutes without activity before a task counts as stalled. Default 60."},"fail_limit":{"type":"integer","description":"Failures before a task counts as failing. Default 2."},"nudges_before_reassign":{"type":"integer","description":"Nudges before suggesting a reassign. Default 2."},"backup_agent":{"type":"string","description":"Default agent to hand stalled work to."},"webhooks":{"type":"object","description":"Optional map of agent name to an https URL that wakes it (Pro posts nudges there)."}},"required":["tasks"]}},{"name":"usage_and_upgrade","description":"Show today's usage for your key or IP and the $9/month upgrade link. Free tier: 500 calls/day. Not metered.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"weekly_report","description":"Draft a plain-English report of the last 7 days: stalled tasks found, nudges and reassigns made (Pro) or that would have been made (free). Read-only; sends nothing.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}}],"scan":{"score":69,"grade":"C","scanned_at":"2026-10-15T21:46:02.812Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-15T21:46:02.745Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 664ms"]},"poisoning":{"score":15,"max":15,"notes":["4 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://handoff.cloudforbots.com/mcp","reachable":true,"authRequired":false,"latencyMs":664,"serverInfo":{"name":"handoff-watch","version":"1.0.0"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://botrecipe.com/sh-logo.svg","source":"site"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}