# update_issue (/docs/reference/mcp-tools/update_issue)



{/* Generated by apps/docs/scripts/generate-mcp-pages.mjs — do not edit by hand. */}

Update a work item's fields (optimistic version; logs activity per field).

|                     |                    |
| ------------------- | ------------------ |
| Required permission | `work:write`       |
| Capability ID       | `workItems.update` |
| Destructive         | No                 |

## Parameters [#parameters]

| Parameter       | Type                                              | Required | Notes |
| --------------- | ------------------------------------------------- | -------- | ----- |
| `version`       | integer                                           | yes      |       |
| `title`         | string                                            | no       |       |
| `description`   | string \| null                                    | no       |       |
| `statusId`      | string (uuid)                                     | no       |       |
| `priority`      | `URGENT` \| `HIGH` \| `MEDIUM` \| `LOW` \| `NONE` | no       |       |
| `assigneeId`    | string (uuid) \| null                             | no       |       |
| `parentId`      | string (uuid) \| null                             | no       |       |
| `estimateValue` | number \| null                                    | no       |       |
| `startDate`     | string \| null                                    | no       |       |
| `endDate`       | string \| null                                    | no       |       |
| `dueDate`       | string \| null                                    | no       |       |
| `id`            | string (uuid)                                     | yes      |       |

## Input schema (JSON Schema) [#input-schema-json-schema]

```json
{
  "type": "object",
  "properties": {
    "version": {
      "type": "integer",
      "minimum": 0
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "statusId": {
      "type": "string",
      "format": "uuid"
    },
    "priority": {
      "type": "string",
      "enum": [
        "URGENT",
        "HIGH",
        "MEDIUM",
        "LOW",
        "NONE"
      ]
    },
    "assigneeId": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ]
    },
    "parentId": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ]
    },
    "estimateValue": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "startDate": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "/^\\d{4}-\\d{2}-\\d{2}$/"
        },
        {
          "type": "null"
        }
      ]
    },
    "endDate": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "/^\\d{4}-\\d{2}-\\d{2}$/"
        },
        {
          "type": "null"
        }
      ]
    },
    "dueDate": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "/^\\d{4}-\\d{2}-\\d{2}$/"
        },
        {
          "type": "null"
        }
      ]
    },
    "id": {
      "type": "string",
      "format": "uuid"
    }
  },
  "required": [
    "version",
    "id"
  ],
  "additionalProperties": false
}
```

## Access control [#access-control]

A call succeeds only when the personal access token's scopes **and** the holder's role both allow `work:write` (effective permission = scope ∩ role, default-deny). The tool runs inside the token owner's organization — tenancy is never a parameter.
