-
Notifications
You must be signed in to change notification settings - Fork 533
Open
Description
Description
The update_task tool's assignees parameter has a schema mismatch that causes assignee updates to silently fail.
Problem
The MCP tool schema defines assignees as an array of user IDs:
"assignees": {
"type": "array",
"items": {"type": "number"},
"description": "The IDs of the users to assign to the task"
}However, the ClickUp API's Update Task endpoint requires an object with add and rem arrays for updating assignees:
{
"assignees": {
"add": [88743496],
"rem": [68542906]
}
}Current Behavior
When calling update_task with assignees: [68542906, 88743496]:
- The API call succeeds (returns 200)
- The
date_updatedfield changes - But assignees are not modified - the API silently ignores the malformed parameter
Expected Behavior
Assignees should be updated when provided via the MCP tool.
Root Cause
In mcp_servers/clickup/tools/tasks.py, the function signature correctly expects a Dict:
assignees: Optional[Dict[str, Any]] = None,But in mcp_servers/clickup/server.py, the tool schema exposes it incorrectly and the handler doesn't pass assignees at all:
# Schema doesn't include assignees for update_task
# Handler also doesn't extract/pass assignees:
elif name == "clickup_update_task":
task_id = arguments.get("task_id")
name = arguments.get("name")
description = arguments.get("description")
status = arguments.get("status")
priority = arguments.get("priority")
due_date = arguments.get("due_date")
result = await update_task(task_id, name, description, status, priority, due_date)
# ^ assignees not passed!Suggested Fix
- Add
assigneesto theupdate_tasktool schema inserver.pywith the correct object format:
"assignees": {
"type": "object",
"description": "Object with 'add' and 'rem' arrays of user IDs",
"properties": {
"add": {
"type": "array",
"items": {"type": "number"},
"description": "User IDs to add as assignees"
},
"rem": {
"type": "array",
"items": {"type": "number"},
"description": "User IDs to remove from assignees"
}
}
}- Update the handler to pass assignees to the function:
assignees = arguments.get("assignees")
result = await update_task(task_id, name, description, status, priority, due_date, assignees=assignees)Environment
- MCP Server:
mcp_servers/clickup - ClickUp API version: v2
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels