{
  "package": {
    "name": "@teamgrid/mcp-server",
    "sourceCommit": "b0e4b3dfa4afd74822a73b8b5e8b647236f273ce",
    "sourceRepository": "TeamGrid/developer-platform",
    "version": "1.2.2"
  },
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": true,
    "idempotentHint": true,
    "openWorldHint": false
  },
  "contract": {
    "domain": "tasks-write",
    "concurrency": "conditional",
    "idempotency": false,
    "coreCas": true
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "data": {
        "$ref": "#/$defs/Task"
      },
      "meta": {
        "additionalProperties": false,
        "properties": {
          "requestId": {
            "type": "string",
            "description": "Unique identifier assigned to the API request for tracing and support."
          },
          "privateResource": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "uri",
              "maxBytes",
              "readMethod"
            ],
            "properties": {
              "uri": {
                "type": "string",
                "pattern": "^teamgrid://(?:files|exports)/[A-Za-z0-9_.:%-]+$"
              },
              "maxBytes": {
                "const": 1048576
              },
              "readMethod": {
                "const": "resources/read"
              }
            }
          },
          "etag": {
            "type": "string",
            "pattern": "^\"[\\x21\\x23-\\x7e]{1,256}\"$"
          },
          "resume": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "tool",
              "arguments"
            ],
            "properties": {
              "tool": {
                "enum": [
                  "teamgrid_project_lifecycle_operation_get",
                  "teamgrid_planned_work_operation_get",
                  "teamgrid_task_recurrence_operation_get",
                  "teamgrid_export_get"
                ]
              },
              "arguments": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  }
                }
              }
            }
          },
          "outcome": {
            "enum": [
              "completed",
              "accepted",
              "partial",
              "unknown",
              "failed"
            ]
          },
          "omittedFields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "contentReadTool": {
            "const": "teamgrid_document_get"
          },
          "contentPage": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "unit": {
                "const": "utf16"
              },
              "offset": {
                "type": "integer",
                "minimum": 0
              },
              "nextOffset": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 0
              },
              "totalLength": {
                "type": "integer",
                "minimum": 0
              },
              "complete": {
                "type": "boolean"
              },
              "revision": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "unit",
              "offset",
              "nextOffset",
              "totalLength",
              "complete",
              "revision"
            ]
          },
          "search": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "complete": {
                "const": false
              },
              "indexed": {
                "const": true
              },
              "returned": {
                "type": "integer",
                "minimum": 0
              },
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 50
              },
              "continuation": {
                "const": "narrow-query-or-list"
              },
              "verification": {
                "const": "read-by-id"
              }
            },
            "required": [
              "complete",
              "indexed",
              "returned",
              "limit",
              "continuation",
              "verification"
            ]
          }
        },
        "required": [
          "requestId"
        ],
        "type": "object",
        "description": "Public API representation of meta."
      }
    },
    "required": [
      "data",
      "meta"
    ],
    "additionalProperties": false,
    "$defs": {
      "Task": {
        "additionalProperties": false,
        "properties": {
          "attributes": {
            "additionalProperties": false,
            "properties": {
              "archived": {
                "type": "boolean",
                "description": "Whether this resource is archived."
              },
              "archivedAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ],
                "description": "Timestamp at which the resource was archived, or null when it is active."
              },
              "assigneeId": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Identifier of the user assigned to this work item."
              },
              "assigneeIds": {
                "items": {
                  "maxLength": 128,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array",
                "uniqueItems": true,
                "description": "Ordered, unique set of users assigned to this task. A task supports at most 20 assignees."
              },
              "billable": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Whether this time or service can be billed."
              },
              "completed": {
                "type": "boolean",
                "description": "Whether the work item is complete."
              },
              "completedAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ],
                "description": "Timestamp at which the work item was completed."
              },
              "completedById": {
                "maxLength": 128,
                "type": [
                  "string",
                  "null"
                ],
                "description": "The completed by id associated with this task attributes."
              },
              "commentsCount": {
                "minimum": 0,
                "type": "integer",
                "description": "Number of comments records represented by this task attributes."
              },
              "contactId": {
                "maxLength": 128,
                "type": [
                  "string",
                  "null"
                ],
                "description": "Identifier of the related contact."
              },
              "createdAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ],
                "description": "Timestamp at which the resource was created."
              },
              "createdById": {
                "maxLength": 128,
                "type": [
                  "string",
                  "null"
                ],
                "description": "The created by id associated with this task attributes."
              },
              "description": {
                "type": "string",
                "description": "Human-readable description of the resource."
              },
              "descriptionFormat": {
                "enum": [
                  "plain-text",
                  "markdown-v1"
                ],
                "type": "string",
                "description": "How to interpret the task description. Legacy and unmarked descriptions are plain-text; markdown-v1 enables TeamGrid Markdown."
              },
              "developerRevision": {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string",
                "description": "The developer revision associated with this task attributes."
              },
              "developerUpdatedAt": {
                "format": "date-time",
                "type": "string",
                "description": "ISO 8601 timestamp for developer updated at."
              },
              "duplicateOfTaskId": {
                "maxLength": 128,
                "type": [
                  "string",
                  "null"
                ],
                "description": "The duplicate of task id associated with this task attributes."
              },
              "dueAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ],
                "description": "ISO 8601 timestamp for due at."
              },
              "filesCount": {
                "minimum": 0,
                "type": "integer",
                "description": "Number of files records represented by this task attributes."
              },
              "groupId": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Identifier of the related workspace group."
              },
              "listId": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Identifier of the related task list."
              },
              "listOrder": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "The list order associated with this task attributes."
              },
              "name": {
                "type": "string",
                "description": "Human-readable name of the resource."
              },
              "order": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "The order associated with this task attributes."
              },
              "personalListId": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The personal list id associated with this task attributes."
              },
              "personalListOrder": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "The personal list order associated with this task attributes."
              },
              "plannedEndAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ],
                "description": "ISO 8601 timestamp for planned end at."
              },
              "plannedMinutes": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "The planned minutes associated with this task attributes."
              },
              "plannedStartAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ],
                "description": "ISO 8601 timestamp for planned start at."
              },
              "primaryAssigneeId": {
                "maxLength": 128,
                "type": [
                  "string",
                  "null"
                ],
                "description": "Primary assignee used for legacy placement and assigneeId compatibility. It must be included in assigneeIds."
              },
              "projectId": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Identifier of the related project."
              },
              "recurrence": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "definitionVersionId": {
                        "maxLength": 128,
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The definition version id associated with this task attributes recurrence."
                      },
                      "generatedAt": {
                        "format": "date-time",
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "ISO 8601 timestamp for generated at."
                      },
                      "occurrenceId": {
                        "maxLength": 128,
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The occurrence id associated with this task attributes recurrence."
                      },
                      "occurrenceKey": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The occurrence key associated with this task attributes recurrence."
                      },
                      "scheduledFor": {
                        "format": "date-time",
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "ISO 8601 timestamp for scheduled for."
                      },
                      "seriesId": {
                        "maxLength": 128,
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The series id associated with this task attributes recurrence."
                      }
                    },
                    "required": [
                      "definitionVersionId",
                      "generatedAt",
                      "occurrenceId",
                      "occurrenceKey",
                      "scheduledFor",
                      "seriesId"
                    ],
                    "type": "object"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The recurrence associated with this task attributes."
              },
              "serviceId": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Identifier of the related service."
              },
              "subscriberIds": {
                "items": {
                  "type": "string"
                },
                "type": "array",
                "description": "Ordered set of subscriber identifiers associated with this task attributes."
              },
              "subtasksCount": {
                "minimum": 0,
                "type": "integer",
                "description": "Number of subtasks records represented by this task attributes."
              },
              "subtasks": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "completed": {
                      "type": "boolean",
                      "description": "Whether the work item is complete."
                    },
                    "id": {
                      "maxLength": 128,
                      "minLength": 1,
                      "type": "string",
                      "description": "Stable TeamGrid identifier for this resource."
                    },
                    "order": {
                      "type": [
                        "number",
                        "null"
                      ],
                      "description": "The order associated with this task attributes subtasks."
                    },
                    "title": {
                      "maxLength": 5000,
                      "type": "string",
                      "description": "Human-readable title of the resource."
                    }
                  },
                  "required": [
                    "id",
                    "title",
                    "completed",
                    "order"
                  ],
                  "type": "object"
                },
                "maxItems": 500,
                "type": "array",
                "description": "The subtasks associated with this task attributes."
              },
              "tagIds": {
                "items": {
                  "type": "string"
                },
                "type": "array",
                "description": "Ordered set of tag identifiers associated with this task attributes."
              },
              "trackingActive": {
                "type": "boolean",
                "description": "Whether tracking active applies to this task attributes."
              },
              "updatedAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ],
                "description": "Timestamp of the most recent successful update."
              }
            },
            "required": [
              "archived",
              "archivedAt",
              "assigneeId",
              "assigneeIds",
              "billable",
              "completed",
              "completedAt",
              "completedById",
              "commentsCount",
              "contactId",
              "createdAt",
              "createdById",
              "description",
              "descriptionFormat",
              "developerRevision",
              "developerUpdatedAt",
              "duplicateOfTaskId",
              "dueAt",
              "filesCount",
              "groupId",
              "listId",
              "listOrder",
              "name",
              "order",
              "personalListId",
              "personalListOrder",
              "plannedEndAt",
              "plannedMinutes",
              "plannedStartAt",
              "primaryAssigneeId",
              "projectId",
              "recurrence",
              "serviceId",
              "subscriberIds",
              "subtasksCount",
              "subtasks",
              "tagIds",
              "trackingActive",
              "updatedAt"
            ],
            "type": "object",
            "description": "The attributes associated with this task."
          },
          "id": {
            "type": "string",
            "description": "Stable TeamGrid identifier for this resource."
          },
          "type": {
            "const": "task",
            "description": "Canonical type discriminator for this resource."
          }
        },
        "required": [
          "type",
          "id",
          "attributes"
        ],
        "type": "object",
        "description": "Public API representation of task."
      }
    }
  },
  "profileOutputSchemas": {},
  "exposure": "gated-write",
  "apiOperations": [
    {
      "href": "/api/v1/reference/operations/updatetask/",
      "method": "PATCH",
      "operationId": "updateTask",
      "path": "/tasks/{id}"
    }
  ],
  "availableIn": [
    "work",
    "full",
    "tasks-write"
  ],
  "baseProfile": "full",
  "description": "Update a task. Changes the selected workspace under current API permissions. Read the target first; submit its exact ETag. On conflict, review the current state before making a new decision.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "workspaceId": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "description": "Workspace returned by teamgrid_workspace_get and selected for this exact action."
      },
      "id": {
        "maxLength": 128,
        "minLength": 1,
        "type": "string"
      },
      "expectedRevision": {
        "pattern": "^\"tsk1-[a-f0-9]{64}\"$",
        "type": "string",
        "description": "Exact strong ETag (including quotes) from the read reviewed for this action. Never replace it automatically after a conflict."
      },
      "data": {
        "additionalProperties": false,
        "allOf": [
          {
            "not": {
              "properties": {
                "assigneeId": {
                  "maxLength": 128,
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Identifier of the user assigned to this work item."
                },
                "assigneeIds": {
                  "items": {
                    "maxLength": 128,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 20,
                  "type": [
                    "array",
                    "null"
                  ],
                  "uniqueItems": true,
                  "description": "Ordered, unique set of users assigned to this task. A task supports at most 20 assignees."
                }
              },
              "required": [
                "assigneeId",
                "assigneeIds"
              ]
            }
          },
          {
            "not": {
              "properties": {
                "assigneeId": {
                  "type": "string",
                  "description": "Identifier of the user assigned to this work item."
                },
                "groupId": {
                  "type": "string",
                  "description": "Identifier of the related workspace group."
                }
              },
              "required": [
                "assigneeId",
                "groupId"
              ]
            }
          },
          {
            "not": {
              "properties": {
                "assigneeIds": {
                  "minItems": 1,
                  "type": "array",
                  "description": "Ordered, unique set of users assigned to this task. A task supports at most 20 assignees."
                },
                "groupId": {
                  "type": "string",
                  "description": "Identifier of the related workspace group."
                }
              },
              "required": [
                "assigneeIds",
                "groupId"
              ]
            }
          },
          {
            "not": {
              "properties": {
                "groupId": {
                  "type": "string",
                  "description": "Identifier of the related workspace group."
                },
                "primaryAssigneeId": {
                  "type": "string",
                  "description": "Primary assignee used for legacy placement and assigneeId compatibility. It must be included in assigneeIds."
                }
              },
              "required": [
                "groupId",
                "primaryAssigneeId"
              ]
            }
          }
        ],
        "dependentRequired": {
          "descriptionFormat": [
            "description"
          ]
        },
        "minProperties": 1,
        "properties": {
          "assigneeId": {
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ],
            "description": "Identifier of the user assigned to this work item."
          },
          "assigneeIds": {
            "items": {
              "maxLength": 128,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 20,
            "type": [
              "array",
              "null"
            ],
            "uniqueItems": true,
            "description": "Ordered, unique set of users assigned to this task. A task supports at most 20 assignees."
          },
          "billable": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Whether this time or service can be billed."
          },
          "contactId": {
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ],
            "description": "Identifier of the related contact."
          },
          "description": {
            "maxLength": 50000,
            "type": [
              "string",
              "null"
            ],
            "description": "Human-readable description of the resource."
          },
          "descriptionFormat": {
            "enum": [
              "plain-text",
              "markdown-v1"
            ],
            "type": "string",
            "description": "How to interpret the task description. Legacy and unmarked descriptions are plain-text; markdown-v1 enables TeamGrid Markdown."
          },
          "dueAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ],
            "description": "ISO 8601 timestamp for due at."
          },
          "groupId": {
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ],
            "description": "Identifier of the related workspace group."
          },
          "listId": {
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ],
            "description": "Identifier of the related task list."
          },
          "name": {
            "maxLength": 500,
            "minLength": 1,
            "type": "string",
            "description": "Human-readable name of the resource."
          },
          "plannedEndAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ],
            "description": "ISO 8601 timestamp for planned end at."
          },
          "plannedMinutes": {
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ],
            "description": "The planned minutes associated with this task."
          },
          "plannedStartAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ],
            "description": "ISO 8601 timestamp for planned start at."
          },
          "primaryAssigneeId": {
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ],
            "description": "Primary assignee used for legacy placement and assigneeId compatibility. It must be included in assigneeIds."
          },
          "projectId": {
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ],
            "description": "Identifier of the related project."
          },
          "serviceId": {
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ],
            "description": "Identifier of the related service."
          },
          "subscriberIds": {
            "items": {
              "maxLength": 128,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 500,
            "type": [
              "array",
              "null"
            ],
            "description": "Ordered set of subscriber identifiers associated with this task."
          },
          "tagIds": {
            "items": {
              "maxLength": 128,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 500,
            "type": [
              "array",
              "null"
            ],
            "description": "Ordered set of tag identifiers associated with this task."
          }
        },
        "type": "object",
        "description": "Public API representation of task."
      }
    },
    "required": [
      "workspaceId",
      "id",
      "expectedRevision",
      "data"
    ],
    "additionalProperties": false
  },
  "profileInputSchemas": {},
  "name": "teamgrid_task_update",
  "scopes": {
    "optional": [],
    "conditional": [],
    "required": [
      "tasks:write",
      "workspace:read"
    ]
  },
  "security": {
    "classification": "workspace-mutation",
    "summary": "This changes workspace state and may trigger business or external effects. Use its exact scope, revision and idempotency contract; profile selection grants no authority."
  },
  "output": {
    "format": "A compact mutation receipt includes target and revision when available; outcome metadata distinguishes accepted, complete, partial and uncertain results.",
    "kind": "mutation-receipt",
    "maxSerializedBytes": 262144,
    "pagination": null,
    "redactions": [],
    "searchLimit": null
  },
  "examplePrompt": "Prepare a teamgrid_task_update operation for my chosen target. Resolve IDs, read current state and revisions, show the intended change, then report its confirmed or uncertain outcome without automatic retries.",
  "typicalErrors": [
    {
      "condition": "The selected tool profile or allow/deny filter excludes `teamgrid_task_update`.",
      "result": "The tool is not advertised to the host. Select the narrowest profile that contains it and restart the host."
    },
    {
      "condition": "`id` is missing or violates this tool’s exact input schema, including any pattern or length restriction.",
      "result": "MCP input validation rejects the call before an API request is made."
    },
    {
      "condition": "The credential lacks `tasks:write` and `workspace:read` or cannot access the requested resource.",
      "result": "The tool preserves a safe API error code such as `insufficient_scope`, with redacted detail and available status/request metadata."
    },
    {
      "condition": "The connection ends while awaiting the write result.",
      "result": "Inspect the outcome and status/resume information. An interrupted wait does not prove rollback; never blindly repeat the write."
    },
    {
      "condition": "An unknown input property is supplied.",
      "result": "The strict input schema rejects the call before an API request is made."
    }
  ]
}
