MCP Server for Asana
Read and manage Asana tasks, projects, sections, tags and status updates from an MCP client
Asana's own hosted MCP endpoint for reading and changing tasks, projects and portfolios
Official · asana.com Remote (hosted) · Streamable HTTP Productivity
Opens the app, which asks before it adds the server.
Its sign-in lets no client register itself: a client signs in only with an app (a client ID) registered with its maker first, so these snippets work only after that step.
claude mcp add --transport http \
--client-id <YOUR_CLIENT_ID> \
--client-secret \
--callback-port 8080 \
asana https://mcp.asana.com/v2/mcp{
"mcpServers": {
"asana": {
"url": "https://mcp.asana.com/v2/mcp",
"auth": {
"CLIENT_ID": "${env:ASANA_CLIENT_ID}",
"CLIENT_SECRET": "${env:ASANA_CLIENT_SECRET}"
}
}
}
}{
"servers": {
"asana": {
"type": "http",
"url": "https://mcp.asana.com/v2/mcp"
}
}
}[mcp_servers.asana]
command = "npx"
args = [
"-y",
"mcp-remote@latest",
"https://mcp.asana.com/v2/mcp",
"3334",
"--static-oauth-client-info",
"@/Users/<YOUR_USERNAME>/.asana/mcp_oauth_client.json",
"--resource",
"https://mcp.asana.com/v2"
]{
"mcpServers": {
"asana": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-remote@latest",
"https://mcp.asana.com/v2/mcp",
"3334",
"--static-oauth-client-info",
"{\"client_id\": \"${env:ASANA_CLIENT_ID}\", \"client_secret\": \"${env:ASANA_CLIENT_SECRET}\"}"
],
"env": {
"ASANA_CLIENT_ID": "${env:ASANA_CLIENT_ID}",
"ASANA_CLIENT_SECRET": "${env:ASANA_CLIENT_SECRET}"
}
}
}
}{
"mcpServers": {
"asana": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-remote@latest",
"https://mcp.asana.com/v2/mcp",
"3334",
"--static-oauth-client-info",
"{\"client_id\": \"${env:ASANA_CLIENT_ID}\", \"client_secret\": \"${env:ASANA_CLIENT_SECRET}\"}"
],
"env": {
"ASANA_CLIENT_ID": "${env:ASANA_CLIENT_ID}",
"ASANA_CLIENT_SECRET": "${env:ASANA_CLIENT_SECRET}"
}
}
}
}https://mcp.asana.com/v2/mcphttps://mcp.asana.com/v2/mcpAsana runs this MCP server itself at https://mcp.asana.com/v2/mcp, over Streamable HTTP. There is nothing to install: a client connects to the address and the user signs in to Asana in the browser. Once connected, an assistant can look up tasks, projects, portfolios, teams, users and AI Teammates, pull status overviews of projects, and create, update, comment on or delete tasks, create projects and post project status updates.
The tools reference lists 27 tools: 18 that only read, 6 that write, and 3 preview tools that show a confirmation card before anything is created; Asana says the preview tools render only in Claude and ChatGPT, and other clients use the plain write tools, which act at once. Asana says the list changes over time and that `tools/list` in the client is the authoritative source.
This V2 server replaces the earlier beta server at https://mcp.asana.com/sse, which Asana marked deprecated with shutdown on 05/11/2026. V2 tool names dropped the `asana_` prefix that V1 used. A session is tied to one workspace, chosen at sign-in, and tokens issued for it are not accepted by the Asana REST API. The endpoint's sign-in metadata (/.well-known/oauth-protected-resource/v2/mcp) names app.asana.com as the authorization server and a single scope, `default`, which matches the docs' statement that MCP apps get full access to every tool rather than per-tool scopes.
An Asana account, with the MCP client not blocked by the workspace admin through Asana app management. For coding clients (Claude Code, Cursor, VS Code, Codex, Windsurf, Kiro), you first create your own MCP app in the Asana developer console to get a client ID and client secret and set the redirect URL your client uses, because the server does not offer dynamic client registration. Codex, Windsurf and Kiro connect through the community `mcp-remote` package, which needs Node.js and npm. The Claude and ChatGPT apps are set up from the Asana Help Center.
Each session reaches one workspace; working across several needs separate sessions. `search_tasks` works on Premium Asana accounts only (others use `get_tasks`). `create_tasks` and `update_tasks` take up to 50 tasks per call. There is no dedicated goals tool: goals are found through `search_objects`. The preview tools with a confirmation step work only in Claude and ChatGPT. MCP tokens cannot be used with the Asana REST API. Some clients, such as Replit and JetBrains, do not yet support V2's pre-registered OAuth and were told to stay on the V1 server until its 05/11/2026 shutdown. Asana describes `mcp-remote`, used for Codex, Windsurf and Kiro, as experimental and unsupported by Asana.
Suits Asana users who want an assistant to triage, create and update work in their workspace without running anything locally, and who prefer the vendor's own endpoint. Claude and ChatGPT users get the simplest setup through Asana's apps and the confirmation previews. Developers on coding clients must first register their own OAuth app, which is more setup than a token-based server. Since writes such as delete_task act without a confirmation step outside Claude and ChatGPT, teams that want read-only use should know the token carries full access to all tools. Those who need the Asana REST API itself or several workspaces in one session should look elsewhere.
search_objectsget_taskget_tasksget_my_taskssearch_tasksget_projectget_projectsget_portfolioget_portfoliosget_items_for_portfolioget_status_overviewget_attachmentsget_userget_meget_usersget_teamsget_agentget_workspace_agentscreate_taskscreate_projectupdate_tasksdelete_taskadd_commentcreate_project_status_updatecreate_task_previewcreate_project_previewsearch_tasks_preview