{
  "package": {
    "name": "@teamgrid/mcp-server",
    "sourceCommit": "b0e4b3dfa4afd74822a73b8b5e8b647236f273ce",
    "sourceRepository": "TeamGrid/developer-platform",
    "version": "1.2.2"
  },
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": true,
    "idempotentHint": false,
    "openWorldHint": false
  },
  "contract": {
    "domain": "tasks-write",
    "concurrency": "per-item revision",
    "idempotency": false,
    "coreCas": true
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "result": {
        "$ref": "#/properties/result/$defs/TaskBulkUpdateEnvelope",
        "$defs": {
          "TaskBulkUpdateEnvelope": {
            "additionalProperties": false,
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/properties/result/$defs/TaskBulkUpdateResult"
                },
                "type": "array",
                "description": "Response data for the completed request."
              },
              "meta": {
                "additionalProperties": false,
                "properties": {
                  "requestId": {
                    "type": "string",
                    "description": "Unique identifier assigned to the API request for tracing and support."
                  },
                  "summary": {
                    "additionalProperties": false,
                    "properties": {
                      "conflicts": {
                        "minimum": 0,
                        "type": "integer",
                        "description": "The conflicts associated with this task bulk meta summary."
                      },
                      "failed": {
                        "minimum": 0,
                        "type": "integer",
                        "description": "The failed associated with this task bulk meta summary."
                      },
                      "requested": {
                        "minimum": 1,
                        "type": "integer",
                        "description": "The requested associated with this task bulk meta summary."
                      },
                      "updated": {
                        "minimum": 0,
                        "type": "integer",
                        "description": "The updated associated with this task bulk meta summary."
                      }
                    },
                    "required": [
                      "requested",
                      "updated",
                      "conflicts",
                      "failed"
                    ],
                    "type": "object",
                    "description": "Short human-readable summary."
                  },
                  "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",
                  "summary"
                ],
                "type": "object",
                "description": "Request metadata, including the request identifier and pagination state when applicable."
              }
            },
            "required": [
              "data",
              "meta"
            ],
            "type": "object",
            "description": "Public API representation of task bulk."
          },
          "TaskBulkUpdateResult": {
            "additionalProperties": false,
            "properties": {
              "attributes": {
                "additionalProperties": false,
                "properties": {
                  "error": {
                    "anyOf": [
                      {
                        "$ref": "#/properties/result/$defs/ApiError"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Sanitized failure information when the operation did not succeed."
                  },
                  "status": {
                    "enum": [
                      "updated",
                      "conflict",
                      "notFound",
                      "forbidden",
                      "invalid",
                      "unavailable"
                    ],
                    "type": "string",
                    "description": "Canonical status of the resource or operation."
                  },
                  "task": {
                    "anyOf": [
                      {
                        "$ref": "#/properties/result/$defs/Task"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "The task associated with this task bulk result attributes."
                  }
                },
                "required": [
                  "status",
                  "task",
                  "error"
                ],
                "type": "object",
                "description": "The attributes associated with this task bulk result."
              },
              "id": {
                "type": "string",
                "description": "Stable TeamGrid identifier for this resource."
              },
              "type": {
                "const": "taskBulkUpdateResult",
                "type": "string",
                "description": "Canonical type discriminator for this resource."
              }
            },
            "required": [
              "type",
              "id",
              "attributes"
            ],
            "type": "object",
            "description": "Public API representation of task bulk result."
          },
          "ApiError": {
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string",
                "description": "Stable machine-readable code for programmatic error or state handling."
              },
              "detail": {
                "type": "string",
                "description": "The detail associated with this api error."
              },
              "source": {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object",
                "description": "The source associated with this api error."
              },
              "status": {
                "pattern": "^[1-5][0-9]{2}$",
                "type": "string",
                "description": "Canonical status of the resource or operation."
              },
              "title": {
                "type": "string",
                "description": "Human-readable title of the resource."
              }
            },
            "required": [
              "status",
              "code",
              "title",
              "detail"
            ],
            "type": "object",
            "description": "Public API representation of api error."
          },
          "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."
          }
        }
      }
    },
    "required": [
      "result"
    ]
  },
  "profileOutputSchemas": {},
  "exposure": "gated-write",
  "apiOperations": [
    {
      "href": "/api/v1/reference/operations/bulkupdatetasks/",
      "method": "POST",
      "operationId": "bulkUpdateTasks",
      "path": "/tasks/bulk-update"
    }
  ],
  "availableIn": [
    "full",
    "tasks-write"
  ],
  "baseProfile": "full",
  "description": "Update multiple tasks safely. Changes the selected workspace under current API permissions. Each item requires the developerRevision from its reviewed task. Results are independent: inspect every item for success, conflict or failure. Never refresh revisions and retry the entire batch automatically.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "workspaceId": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "description": "Workspace returned by teamgrid_workspace_get and selected for this exact action."
      },
      "data": {
        "additionalProperties": false,
        "properties": {
          "items": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "data": {
                  "additionalProperties": false,
                  "dependentRequired": {
                    "descriptionFormat": [
                      "description"
                    ]
                  },
                  "minProperties": 1,
                  "properties": {
                    "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."
                    },
                    "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 bulk data."
                    },
                    "plannedStartAt": {
                      "format": "date-time",
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "ISO 8601 timestamp for planned start at."
                    },
                    "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 bulk data."
                    },
                    "tagIds": {
                      "items": {
                        "maxLength": 128,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 500,
                      "type": [
                        "array",
                        "null"
                      ],
                      "description": "Ordered set of tag identifiers associated with this task bulk data."
                    }
                  },
                  "type": "object",
                  "description": "Response data for the completed request."
                },
                "id": {
                  "maxLength": 128,
                  "minLength": 1,
                  "type": "string",
                  "description": "Stable TeamGrid identifier for this resource."
                },
                "revision": {
                  "pattern": "^[a-f0-9]{64}$",
                  "type": "string",
                  "description": "Strong resource revision used for optimistic concurrency control."
                }
              },
              "required": [
                "id",
                "revision",
                "data"
              ],
              "type": "object",
              "description": "Public API representation of task bulk item."
            },
            "maxItems": 35,
            "minItems": 1,
            "type": "array",
            "description": "The items associated with this task bulk."
          }
        },
        "required": [
          "items"
        ],
        "type": "object",
        "description": "Public API representation of task bulk."
      }
    },
    "required": [
      "workspaceId",
      "data"
    ],
    "additionalProperties": false
  },
  "profileInputSchemas": {},
  "name": "teamgrid_tasks_bulk_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_tasks_bulk_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_tasks_bulk_update`.",
      "result": "The tool is not advertised to the host. Select the narrowest profile that contains it and restart the host."
    },
    {
      "condition": "An argument violates this tool’s input schema: required field, type, enum, pattern, length, or range.",
      "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."
    }
  ]
}
