Asana MCP Integration: 400 error, Property keys should match pattern.

Status Fixed / completed
Maintainer reply None cached
Activity 3 comments · opened May 23, 2025 · closed May 28, 2025

Bug Description
After installing the Asana Integration MCP every prompt is returned with an error:

API Error: 400 {"type":"error","error":{"type":"invalid_request_error","message":"tools.35.custom.input_schema.properties: Property keys should match pattern '^[a-zA-Z0-9_-]{1,64}$'"}}

Sentry MCP Integration works.
The exact same asana mcp config works in Claude Desktop (macos).
Tried in different local repos and behavior is consistent.

Tried with the default (this is from ~/.claude.json):

"asana": {
  "command": "npx",
  "args": [
    "mcp-remote@latest",
    "https://mcp.asana.com/sse"
  ]
},

Tried with specific node instance (works with Claude Desktop):

"asana": {
  "command": "mise",
  "args": [
    "exec",
    "node@22",
    "--",
    "npx",
    "mcp-remote@latest",
    "https://mcp.asana.com/sse"
  ]
},

Tried with and without @latest.

Environment Info

  • Platform: macos
  • Terminal: ghostty
  • Version: 1.0.2
  • Feedback ID: 767d2c30-55c9-463d-828b-48d4681ffaca

Errors

[{"error":"Error: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"tools.35.custom.input_schema.properties: Property keys should match pattern '^[a-zA-Z0-9_-]{1,64}$'\"}}\n    at I5.generate (file:///Users/bob/.local/share/mise/installs/node/22.2.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:706:5882)\n    at Wz.makeStatusError (file:///Users/bob/.local/share/mise/installs/node/22.2.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:721:2082)\n    at Wz.makeRequest (file:///Users/bob/.local/share/mise/installs/node/22.2.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:721:5257)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)","timestamp":"2025-05-23T20:30:44.621Z"},{"error":"Error: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"tools.35.custom.input_schema.properties: Property keys should match pattern '^[a-zA-Z0-9_-]{1,64}$'\"}}\n    at I5.generate (file:///Users/bob/.local/share/mise/installs/node/22.2.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:706:5882)\n    at Wz.makeStatusError (file:///Users/bob/.local/share/mise/installs/node/22.2.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:721:2082)\n    at Wz.makeRequest (file:///Users/bob/.local/share/mise/installs/node/22.2.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:721:5257)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async PW2.Ut.showErrors (file:///Users/bob/.local/share/mise/installs/node/22.2.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:1513:13958)\n    at async Ut (file:///Users/bob/.local/share/mise/installs/node/22.2.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:1513:6623)\n    at async PW2 (file:///Users/bob/.local/share/mise/installs/node/22.2.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:1513:13834)\n    at async Hp1 (file:///Users/bob/.local/share/mise/installs/node/22.2.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:1495:5500)\n    at async OX1 (file:///Users/bob/.local/share/mise/installs/node/22.2.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:1513:11803)\n    at async oA5 (file:///Users/bob/.local/share/mise/installs/node/22.2.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:1929:6323)","timestamp":"2025-05-23T20:30:44.782Z"},{"error":"SyntaxError: Unexpected token 'I', \"I apologiz\"... is not valid JSON\n    at JSON.parse (<anonymous>)\n    at D8 (file:///Users/bob/.local/share/mise/installs/node/22.2.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:561:9972)\n    at Ow2 (file:///Users/bob/.local/share/mise/installs/node/22.2.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:1977:2337)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)","timestamp":"2025-05-23T20:30:46.693Z"}]

View original on GitHub ↗

3 Comments

ilkovich · 1 year ago

I was able to solve this by using the first config

"asana": {
  "command": "npx",
  "args": [
    "mcp-remote@latest",
    "https://mcp.asana.com/sse"
  ]
}

and exporting my asana personal access token

export ASANA_ACCESS_TOKEN=<access_token>

and then firing up claude.

bobisme · 1 year ago

Asana may have changed something. I gave it a shot and noticed it got me to re-auth on asana.com. It actually works without passing in the ASANA_ACCESS_TOKEN env.

github-actions[bot] · 1 year ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.