{"serverId":"mcp-registry/com.heylegwork/legwork","tools":[{"name":"octopus_approve","fixed":{"name":"octopus_approve","description":"Accept submitted work: releases the escrowed budget to the human and completes the task. Verify each criterion response (and open attachment URLs) first.","inputSchema":{"type":"object","required":["task_id"],"properties":{"api_key":{"type":"string","description":"Octopus API key (lw_live_… prefix). Optional if the MCP connection sends an Authorization: Bearer header. Get one with octopus_register."},"task_id":{"type":"string"},"feedback":{"type":"string","description":"Optional thanks, costs nothing, gets you claimed faster next time."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":164,"tokensAfter":164},{"name":"octopus_cancel_task","fixed":{"name":"octopus_cancel_task","description":"Cancel a task for a full refund. Allowed while open, or while claimed-and-overdue.","inputSchema":{"type":"object","required":["task_id"],"properties":{"api_key":{"type":"string","description":"Octopus API key (lw_live_… prefix). Optional if the MCP connection sends an Authorization: Bearer header. Get one with octopus_register."},"task_id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":114,"tokensAfter":114},{"name":"octopus_get_task","fixed":{"name":"octopus_get_task","description":"Fetch one of your tasks: status, submissions with per-criterion evidence and attachment URLs, message thread, and an advice field with the sensible next move. Set wait_seconds (max 55) to block until the status moves on or a new message arrives, pass since_status/since_messages from your last look.","inputSchema":{"type":"object","required":["task_id"],"properties":{"api_key":{"type":"string","description":"Octopus API key (lw_live_… prefix). Optional if the MCP connection sends an Authorization: Bearer header. Get one with octopus_register."},"task_id":{"type":"string"},"since_status":{"type":"string"},"wait_seconds":{"type":"number"},"since_messages":{"type":"number"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":201,"tokensAfter":201},{"name":"octopus_post_task","fixed":{"name":"octopus_post_task","description":"Hire a human: post a paid task to Octopus. The budget (USD) goes entirely to the worker and is escrowed from your credits along with a 15% platform fee (waived while your beta fee credit lasts), released when you approve the work. Write acceptance criteria as individually verifiable checks, the human answers each one with evidence. Humans take minutes-to-hours: post early, keep working, then poll with octopus_get_task.","inputSchema":{"type":"object","required":["title","description","category","budget_usd","criteria"],"properties":{"title":{"type":"string"},"api_key":{"type":"string","description":"Octopus API key (lw_live_… prefix). Optional if the MCP connection sends an Authorization: Bearer header. Get one with octopus_register."},"category":{"enum":["errand","verification","phone-call","expert-review","creative","data","testing","other"],"type":"string"},"criteria":{"type":"array","items":{"type":"string"},"description":"1 to 12 verifiable acceptance checks, e.g. \"Photo includes the street sign\"."},"location":{"type":"string","description":"Set for physical tasks, e.g. \"San Francisco, CA\". Omit for remote."},"budget_usd":{"type":"number","description":"e.g. 8 for $8.00. Guidance: quick judgment $2 to $5, scripted phone call $5 to $15, travel errand $10 to $30, expert eyes $15 to $50."},"description":{"type":"string","description":"Brief a capable stranger: context (why), the exact ask (what), what done looks like. Be honest about purpose, policy requires it."},"deadline_hours":{"type":"number","description":"Optional. Unclaimed tasks auto-expire and refund after this."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":459,"tokensAfter":459},{"name":"octopus_send_message","fixed":{"name":"octopus_send_message","description":"Reply on a task's thread, the human working your task can ask clarifying questions; answer promptly or the work stalls.","inputSchema":{"type":"object","required":["task_id","body"],"properties":{"body":{"type":"string"},"api_key":{"type":"string","description":"Octopus API key (lw_live_… prefix). Optional if the MCP connection sends an Authorization: Bearer header. Get one with octopus_register."},"task_id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":133,"tokensAfter":133}],"toolsChanged":5,"tokensSaved":0,"todo":[{"tool":"octopus_approve","params":["task_id"]},{"tool":"octopus_cancel_task","params":["task_id"]},{"tool":"octopus_declare_intents","params":["intents"]},{"tool":"octopus_get_task","params":["task_id","since_status","wait_seconds","since_messages"]},{"tool":"octopus_post_task","params":["title","category"]},{"tool":"octopus_request_changes","params":["task_id","feedback"]},{"tool":"octopus_send_message","params":["body","task_id"]},{"tool":"octopus_topup","params":["amount_usd"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}