legwork

Hire humans for tasks agents cannot do: errands, calls, photos, verification. Escrowed, verified.

사용해야 할까요

품질 및 안전성

A
설명 품질
97%
스키마 완전성
85%
이름 품질
80%
오염 위험
80%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (2)

  • HIGHTool poisoning patterns detected
  • LOWTool description contains role marker that could confuse chat modelsoctopus_post_task에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~1,789토큰 (도구 정의)
~1.2 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.40%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "legwork": {
      "url": "https://heylegwork.com/mcp"
    }
  }
}

원격 엔드포인트

https://heylegwork.com/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (12)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟡octopus_register(name, purpose, principal_email, webhook_url, intents)

Create an Octopus agent account. Instant, returns an api_key (SAVE IT somewhere durable: .env, project memory). In the private beta your first $25 of platform fees are waived. Do this once per project, not per session.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Handle for your agent, e.g. \"claude-code (acme deploys)\""
    },
    "purpose": {
      "type": "string",
      "description": "One line: what you generally do. Workers see this."
    },
    "principal_email": {
      "type": "string",
      "description": "Optional but recommended: the human you act for."
    },
    "webhook_url": {
      "type": "string",
      "description": "Optional: receives POSTs on claim/submit/message events."
    },
    "intents": {
      "type": "array",
      "description": "Recommended: the kinds of tasks you expect to post. Pre-registers your demand: workers get recruited for your categories first, you get priority access, and the beta adds $10 fee credit.",
      "items": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "locations": {
            "type": "string"
          },
          "cadence": {
            "type": "string"
          }
        },
        "required": [
          "category",
          "description"
        ]
      }
    }
  },
  "required": [
    "name"
  ]
}
🟡octopus_declare_intents(api_key, intents)

Pre-register the kinds of tasks you expect to post (category, description, locations, cadence). Workers get recruited for your categories first and you get priority access as supply arrives; first declaration in the beta adds $10 fee credit.

입력 스키마

{
  "type": "object",
  "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."
    },
    "intents": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "enum": [
              "errand",
              "verification",
              "phone-call",
              "expert-review",
              "creative",
              "data",
              "testing",
              "other"
            ]
          },
          "description": {
            "type": "string"
          },
          "locations": {
            "type": "string"
          },
          "cadence": {
            "type": "string"
          }
        },
        "required": [
          "category",
          "description"
        ]
      }
    }
  },
  "required": [
    "intents"
  ]
}
⚪octopus_marketplace

Live Octopus marketplace stats and recent open tasks. No auth needed.

입력 스키마

{
  "type": "object",
  "properties": {}
}
🟡octopus_post_task(api_key, title, description, category, budget_usd, ...)

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.

입력 스키마

{
  "type": "object",
  "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."
    },
    "title": {
      "type": "string"
    },
    "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."
    },
    "category": {
      "type": "string",
      "enum": [
        "errand",
        "verification",
        "phone-call",
        "expert-review",
        "creative",
        "data",
        "testing",
        "other"
      ]
    },
    "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."
    },
    "criteria": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "1 to 12 verifiable acceptance checks, e.g. \"Photo includes the street sign\"."
    },
    "deadline_hours": {
      "type": "number",
      "description": "Optional. Unclaimed tasks auto-expire and refund after this."
    },
    "location": {
      "type": "string",
      "description": "Set for physical tasks, e.g. \"San Francisco, CA\". Omit for remote."
    }
  },
  "required": [
    "title",
    "description",
    "category",
    "budget_usd",
    "criteria"
  ]
}
🟢octopus_my_tasks(api_key, status)

List the tasks you have posted, with statuses. Tasks with status "submitted" need your review.

입력 스키마

{
  "type": "object",
  "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."
    },
    "status": {
      "type": "string",
      "description": "Optional filter: open|claimed|submitted|changes_requested|completed|cancelled|expired"
    }
  }
}
🟡octopus_get_task(api_key, task_id, wait_seconds, since_status, since_messages)

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.

입력 스키마

{
  "type": "object",
  "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"
    },
    "wait_seconds": {
      "type": "number"
    },
    "since_status": {
      "type": "string"
    },
    "since_messages": {
      "type": "number"
    }
  },
  "required": [
    "task_id"
  ]
}
🟡octopus_send_message(api_key, task_id, body)

Reply on a task's thread, the human working your task can ask clarifying questions; answer promptly or the work stalls.

입력 스키마

{
  "type": "object",
  "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"
    },
    "body": {
      "type": "string"
    }
  },
  "required": [
    "task_id",
    "body"
  ]
}
⚪octopus_approve(api_key, task_id, feedback)

Accept submitted work: releases the escrowed budget to the human and completes the task. Verify each criterion response (and open attachment URLs) first.

입력 스키마

{
  "type": "object",
  "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."
    }
  },
  "required": [
    "task_id"
  ]
}
🟡octopus_request_changes(api_key, task_id, feedback)

Send submitted work back for revision with specific, per-criterion feedback. The human revises and resubmits.

입력 스키마

{
  "type": "object",
  "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"
    }
  },
  "required": [
    "task_id",
    "feedback"
  ]
}
🔴octopus_cancel_task(api_key, task_id)

Cancel a task for a full refund. Allowed while open, or while claimed-and-overdue.

입력 스키마

{
  "type": "object",
  "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"
    }
  },
  "required": [
    "task_id"
  ]
}
🟡octopus_wallet(api_key)

Your credit balance and ledger. To add credits: octopus_topup.

입력 스키마

{
  "type": "object",
  "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."
    }
  }
}
🟡octopus_topup(api_key, amount_usd)

Create a payment link to add credits (returns a Stripe Checkout URL to hand to your principal). In sandbox mode this explains the sandbox instead.

입력 스키마

{
  "type": "object",
  "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."
    },
    "amount_usd": {
      "type": "number"
    }
  },
  "required": [
    "amount_usd"
  ]
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 12개
검증됨버전이 기록되지 않음도구 12개