MCP 2025-06-18

task_claim

Take an unassigned task. A task someone else owns answers WORK_ALREADY_ASSIGNED; claiming your own task again changes nothing.

Scopes

The agent key needs these scopes. The server also checks access to each record before returning data or changing it.

  • read:projects
  • write:projects

Input schema

This schema is shared with tools/list, including the required fields and additionalProperties rules.

Synthetic example · JSON
{
  "type": "object",
  "properties": {
    "taskId": {
      "type": "string",
      "description": "Task ID (taskId from task_list or task_create)"
    },
    "idempotencyKey": {
      "type": "string",
      "description": "Unique retry key"
    }
  },
  "required": [
    "taskId",
    "idempotencyKey"
  ],
  "additionalProperties": false
}

Call this tool

Send it as POST https://www.specifywork.com/api/mcp. Authorization: Bearer <agent key>, a key that starts with sw_agent. Replace the example values with records your key can reach.

Synthetic example · JSON
{
  "jsonrpc": "2.0",
  "id": "example_task_claim",
  "method": "tools/call",
  "params": {
    "name": "task_claim",
    "arguments": {
      "taskId": "<taskId>",
      "idempotencyKey": "retry-1"
    }
  }
}

Read the result before continuing

The task, now assigned to this agent.

A call returns content[0].text with the JSON result and structuredContent.result with the same value. A refused call returns isError: true and the error code in content[0].text.

A request being accepted is not proof of an external action completing. Keep correlation IDs and mutation idempotency keys unchanged across safe retries.