Asana MCP server: connect Asana to Claude, Claude Code and Cursor
Asana runs an official hosted MCP server (V2, generally available) at mcp.asana.com/v2/mcp. This guide covers OAuth app registration, setup in Claude, Claude Code and Cursor, the full tool list with read and write tools, admin controls and the limits worth knowing.
Asana holds the answer to "what is everyone working on, and what is late?" The Asana MCP server lets an AI client read and update that directly: find overdue tasks, summarise a project's status, turn meeting notes into tasks, post a status update. This guide covers how the server works, how to connect it to Claude, Claude Code and Cursor, which tools it exposes, and the controls you want before a team uses it. If MCP is new to you, start with what an MCP server is.
Facts are from Asana's developer documentation as of October 2026.
What the server is
Asana's MCP server is official, hosted by Asana and generally available. Version 2 went GA on 4 February 2026:
| Endpoint | https://mcp.asana.com/v2/mcp |
| Transport | Streamable HTTP |
| Auth | OAuth 2.0 |
| Local option | None from Asana |
The V1 beta server at https://mcp.asana.com/sse was shut down on 11 May 2026. If a guide or config still points at /sse, that is why it fails.
Three properties matter for planning:
- It acts as the signed-in user. The agent sees exactly what that person can see in Asana, nothing more.
- Tokens are tied to one workspace. If people work across several Asana workspaces, each needs its own connection.
- MCP tokens are not REST API tokens. You cannot reuse an MCP token to call Asana's normal API, and vice versa.
Setup in Claude.ai and Claude Desktop
The simplest route: open Claude's connector directory, add Asana, sign in to Asana and authorize. That is all for individual use.
Setup in Claude Code
Asana's server does not support dynamic client registration, so you register an app yourself:
- In the Asana developer console, create an app and note its client ID and client secret.
- Set the app's redirect URI to
http://localhost:8080/callback. - Add the server:
claude mcp add --transport http \
--client-id YOUR_CLIENT_ID --client-secret --callback-port 8080 \
asana https://mcp.asana.com/v2/mcp
Claude Code prompts for the secret and stores it in the system keychain. Run /mcp in a session to complete the OAuth login. Asana's docs say to omit the OAuth scope parameter; access follows the user's permissions instead of scopes.
Some users have reported redirect URI errors in Asana's community forum. If the login fails, check that the redirect URI in the Asana app matches http://localhost:8080/callback exactly and that the port in --callback-port is the same. Our Claude Code MCP guide covers remote servers and OAuth in general.
Setup in Cursor
Add the server URL https://mcp.asana.com/v2/mcp to Cursor's mcp.json, with your Asana app's client ID and secret in the server's auth block. Asana's docs show reading both from environment variables rather than pasting them into the file, which is the right habit for any shared config.
For Cursor, the Asana app's redirect URI is cursor://anysphere.cursor-mcp/oauth/callback. See our Cursor MCP guide for the general steps.
The tools
Read tools
| Area | Tools |
|---|---|
| Search | search_objects, search_tasks (Premium) |
| Tasks | get_task, get_tasks, get_my_tasks, get_attachments |
| Projects and portfolios | get_project, get_projects, get_portfolio, get_portfolios, get_items_for_portfolio, get_status_overview |
| People and teams | get_me, get_user, get_users, get_teams |
| Asana AI agents | get_agent, get_workspace_agents |
Write tools
| Tool | What it does |
|---|---|
create_tasks | Creates tasks, up to 50 per call |
update_tasks | Changes assignee, due date, status and other fields |
delete_task | Deletes a task |
add_comment | Comments on a task |
create_project | Creates a project |
create_project_status_update | Posts a project status update |
In Claude and ChatGPT there are also interactive preview tools (create_task_preview, create_project_preview, search_tasks_preview) that show a draft in the chat before anything is created.
What people use it for
- My week. "List my incomplete tasks due this week, grouped by project, and flag anything overdue."
- Project status. "Summarise the status of the Q4 launch project: what is done, what is late, who is blocked." Then, after review: "Post that as a status update."
- Meeting notes to tasks. "Turn these notes into tasks in the Website project, assign them as named, due Friday." This is where the 50-tasks-per-call limit and the preview tools help.
- Portfolio review. "Which projects in the Marketing portfolio have no status update in the last two weeks?"
Recurring routines like the weekly status belong in a skill, so every project manager's agent writes the update the same way.
Read-only and admin controls
There is no server-side read-only mode, so control comes from three places:
- Asana permissions. The agent can only change what the user can change.
- Admin allow and block. Enterprise+ and Legacy Enterprise customers manage MCP clients in Asana's app management. Other tiers contact Asana support to block it.
- Your AI client. In Claude Code, allow the
get_andsearch_tools and keep a confirmation oncreate_,update_and especiallydelete_task.
Task descriptions and comments are written by people, sometimes outside the company (guests, form submissions). Treat them as untrusted input, and do not combine Asana with tools that send data out of the company in the same session without approval. The general rules are in MCP security best practices.
Data residency
Asana offers data residency for data at rest, and its help centre says processing can still happen in the US and elsewhere. Asana's MCP documentation does not say whether MCP traffic follows a chosen EU region, so check with Asana if that matters for your contract. Separately, whatever the agent reads from Asana goes to your AI client's model provider as part of the conversation.
Running it for a team
Per-user connections work for a few people. For a department, you want the same tools allowed, the same write policy and one log across Asana, the CRM and whatever else the agents touch. That is the job of an MCP gateway. Walma AI Hub runs approved MCP servers like Asana behind one policy and one audit log, with every model available, inside the customer's own Azure tenant in an EU region. See the MCP directory for the other project tools we support.
Frequently asked questions
Does Asana have an MCP server?+
Yes. Asana hosts an official MCP server. Version 2, at https://mcp.asana.com/v2/mcp, became generally available on 4 February 2026 and uses Streamable HTTP with OAuth. The earlier V1 beta server at mcp.asana.com/sse was shut down on 11 May 2026, so older tutorials that use the /sse URL no longer work.
How do I connect Asana to Claude?+
In Claude.ai or Claude Desktop, add the Asana app from Claude's connector directory, sign in to Asana and authorize it. In Claude Code you register your own Asana app to get a client ID and secret, then run claude mcp add with --client-id, --client-secret and --callback-port 8080 against https://mcp.asana.com/v2/mcp.
Can the Asana MCP server create and delete tasks?+
Yes. Besides read tools it has write tools including create_tasks, update_tasks, delete_task, add_comment, create_project and create_project_status_update. There is no server-side read-only mode, so what an agent can change is limited by the signed-in user's own Asana permissions and by approval settings in your AI client.
Can an Asana admin block MCP access?+
Enterprise+ and Legacy Enterprise customers can allow or block MCP clients through Asana's app management. On other tiers, Asana says to contact support to block it.
Do I need a paid Asana plan for the MCP server?+
Basic access works across tiers, but some tools depend on plan features. For example search_tasks requires Asana Premium, and the admin controls for allowing or blocking MCP clients require Enterprise+.
The same tools, in your EU region, under your control
A 20-minute walkthrough with an engineer. We map it to your tools, your MCP servers and your budget model.