Suggest a server AI tools directory →

Asana MCP server

Last verified: 2026-09

Tasks and projects in Asana.

Community Chat, mail & docs Needs a secret Claude Desktop, Cursor, Windsurf, Claude Code

What it does

Asana workspaces, projects, tasks, stories, dependencies. asana_create_task and update are writes. Optional read-only mode via env.

It sits in Chat, mail & docs: These servers act as the bot or the integration you install.

Good for

  • List workspaces and search tasks in one project.
  • Create a task in a test project, not the company workspace.
  • Read stories on a task instead of opening Asana.
  • Enable read-only mode if the package supports it.

Tools

  • asana_list_workspaces / asana_search_projects / asana_get_project — Navigate.
  • asana_search_tasks / asana_get_task / asana_get_task_stories — Read work.
  • asana_create_task / asana_update_task / asana_create_subtask / asana_create_task_story — Write.
  • asana_add_task_dependencies / asana_add_task_dependents — Graph.

Config (Claude Desktop / Cursor / Windsurf)

Paste the JSON below. Same mcpServers shape. Replace placeholder paths and secrets. Windows paths look like C:\\Users\\you\\project, not /path/to. Host-side steps →

Claude Desktop

OSConfig file
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json (usually C:\Users\<you>\AppData\Roaming\Claude\)
Linux~/.config/Claude/claude_desktop_config.json

Cursor

ScopemacOS / LinuxWindows
This project.cursor/mcp.json in the repo root
This user~/.cursor/mcp.json %USERPROFILE%\.cursor\mcp.json

Windsurf

OSConfig file
macOS / Linux~/.codeium/windsurf/mcp_config.json
Windows%USERPROFILE%\.codeium\windsurf\mcp_config.json
{
  "mcpServers": {
    "asana": {
      "command": "npx",
      "args": [
        "-y",
        "asana-mcp"
      ],
      "env": {
        "ASANA_ACCESS_TOKEN": "1/..."
      }
    }
  }
}

Windsurf remote MCP: use serverUrl instead of url if the block below is HTTP.

One-liner: npx -y asana-mcp

Secrets it wants: ASANA_ACCESS_TOKEN

Source repo →

How to get started

  1. Create a PAT. Set ASANA_ACCESS_TOKEN. Turn on read-only mode if the package supports it.
  2. List workspaces, then search tasks in one project.
  3. Do not let it mass-update a company workspace.

Access risk

Create/update will ping teammates. A PAT is the user.

When to skip it

Skip it for Linear/Jira/Todoist if that is the real tracker.

Instead: Linear, Todoist, Jira.

Vs alternatives

ServerOfficial?Needs a secret?Best for
AsanaNoYesTasks and projects in Asana.
LinearNoYesIssues, projects, and cycles in Linear.
TodoistNoYesInbox and projects in Todoist.
JiraNoYesJira issues and JQL search.

More in Chat, mail & docs

All 18 in this category →

FAQ

Which token?

ASANA_ACCESS_TOKEN — a PAT. Create/update pings teammates.

Asana or Linear or Todoist?

Team tracker vs personal inbox. Match what the org already uses.

Dependencies and subtasks?

Yes — asana_add_task_dependencies, asana_create_subtask, etc.

Can it mass-update?

If you ask it to. Do not point it at the company workspace on day one.