Describe the bug
The Asana MCP Connector (currently utilized in Claude.ai) is broken for single-task operations like get_task and update_tasks. The connector appears to still rely on the deprecated V1 tool schema, specifically sending the task_id parameter instead of the required V2 task_gid parameter.
When this legacy payload is sent to the new Asana V2 MCP server (https://mcp.asana.com/v2/mcp), the Asana server fails to handle the missing V2 schema parameters, crashes, and returns a 500 Internal Server Error. List operations like get_tasks continue to work normally as their schema requirements are less strict.
To Reproduce
Steps to reproduce the behavior:
Enable the Asana MCP connector in Claude.ai.
Prompt Claude to read or update a specific single task (e.g., "Read task 1213431798432341").
Claude executes the tool call using the hardcoded V1 schema parameter: {"task_id": "1213431798432341"}.
The connector forwards this payload to the Asana V2 MCP server.
The request fails with a 500 Internal Server Error because the V2 server strictly expects task_gid.
Expected behavior
The MCP connector should fetch and respect the current tool parameters from the Asana V2 tools/list command. Specifically, it needs to use task_gid instead of task_id for single-task operations to ensure compatibility with the V2 endpoint.
Logs
Instead of a 400 Bad Request, the Asana V2 server crashes and returns the following 500 error trace back to Claude:
JSON
{
"error": "server_error",
"message": "Oops! An unexpected error occurred...",
"phrase": "2 bright starfish dig awfully often"
}
Example of the V1 payload Claude attempts to generate based on the current connector schema:
JSON
{
"name": "get_task",
"input": {
"task_id": "1213431798432341",
"opt_fields": "name,completed"
}
}
Additional context
The issue started appearing around May 27, 2026. I reached out to Asana's API Support regarding the 500 crash, and they confirmed the root cause lies in the outdated connector schema:
Asana Support Response:
"You’re right: a legacy payload (like task_id instead of task_gid) should be rejected as invalid (400), not crash as a 500. The V2 MCP server expects the current parameter names and constraints, and the only authoritative source for those is the tools/list command (not any static schema). To unblock the connector, the fix is to update the tool call to use the V2 parameter names shown in tools/list (for example, task_gid for single-task operations)."
Since the tool schema is hardcoded within the connector, users cannot bypass this by prompting Claude to use task_gid (the call fails pre-validation on Anthropic's side). The schema must be updated in the repository.
Describe the bug
The Asana MCP Connector (currently utilized in Claude.ai) is broken for single-task operations like get_task and update_tasks. The connector appears to still rely on the deprecated V1 tool schema, specifically sending the task_id parameter instead of the required V2 task_gid parameter.
When this legacy payload is sent to the new Asana V2 MCP server (https://mcp.asana.com/v2/mcp), the Asana server fails to handle the missing V2 schema parameters, crashes, and returns a 500 Internal Server Error. List operations like get_tasks continue to work normally as their schema requirements are less strict.
To Reproduce
Steps to reproduce the behavior:
Enable the Asana MCP connector in Claude.ai.
Prompt Claude to read or update a specific single task (e.g., "Read task 1213431798432341").
Claude executes the tool call using the hardcoded V1 schema parameter: {"task_id": "1213431798432341"}.
The connector forwards this payload to the Asana V2 MCP server.
The request fails with a 500 Internal Server Error because the V2 server strictly expects task_gid.
Expected behavior
The MCP connector should fetch and respect the current tool parameters from the Asana V2 tools/list command. Specifically, it needs to use task_gid instead of task_id for single-task operations to ensure compatibility with the V2 endpoint.
Logs
Instead of a 400 Bad Request, the Asana V2 server crashes and returns the following 500 error trace back to Claude:
JSON
{
"error": "server_error",
"message": "Oops! An unexpected error occurred...",
"phrase": "2 bright starfish dig awfully often"
}
Example of the V1 payload Claude attempts to generate based on the current connector schema:
JSON
{
"name": "get_task",
"input": {
"task_id": "1213431798432341",
"opt_fields": "name,completed"
}
}
Additional context
The issue started appearing around May 27, 2026. I reached out to Asana's API Support regarding the 500 crash, and they confirmed the root cause lies in the outdated connector schema:
Asana Support Response:
"You’re right: a legacy payload (like task_id instead of task_gid) should be rejected as invalid (400), not crash as a 500. The V2 MCP server expects the current parameter names and constraints, and the only authoritative source for those is the tools/list command (not any static schema). To unblock the connector, the fix is to update the tool call to use the V2 parameter names shown in tools/list (for example, task_gid for single-task operations)."
Since the tool schema is hardcoded within the connector, users cannot bypass this by prompting Claude to use task_gid (the call fails pre-validation on Anthropic's side). The schema must be updated in the repository.