Asana for AI agents
Asana is a project management tool teams use to organize tasks, projects, and goals, with features for assigning work, tracking status, and coordinating across a workspace. Connect it once through Arc0, and your agent, or Claude, ChatGPT and Cursor, can use it through one MCP endpoint, limited to what each user approved.
What agents do in Asana.
Create a task with the right details
Create a task in a project with an assignee, due date, and tags set.
Move a task into the right section
Add an existing task to a project and place it in the correct section.
Confirm before approving an access request
Approving a request for project access should be confirmed before it is granted.
153 Asana actions, graded by risk.
Every Asana action is tagged read, write or destructive, so one policy covers the whole app and new actions inherit the right default.
read
80Look things up. Allowed by default.
- asana.get_jobGet Job
- asana.get_tagGet Tag
- asana.get_goalGet Goal
- asana.get_tagsGet Tags
- asana.get_teamGet Team
- asana.get_userGet User
- asana.get_goalsGet Goals
- asana.get_storyGet Story
- asana.get_a_taskGet a task
- asana.get_eventsGet Events on a Resource
- asana.get_statusGet Status Update
- asana.get_sectionGet Section
- asana.get_webhooksGet Webhooks
- asana.get_a_projectGet a project
- asana.get_portfolioGet Portfolio
- asana.get_workspaceGet Workspace
write
53Create and change things. Allow, or ask the user first.
- asana.create_tagCreate a tag
- asana.update_tagUpdate Tag
- asana.create_teamCreate Team
- asana.update_teamUpdate a team
- asana.update_userUpdate User
- asana.update_storyUpdate Story
- asana.create_a_taskCreate task in asana with specific details
- asana.update_a_taskUpdate a task
- asana.create_subtaskCreate subtask
- asana.update_projectUpdate a project
- asana.update_sectionUpdate Section
- asana.update_webhookUpdate a webhook
- asana.add_tag_to_taskAdd Tag to Task
- asana.add_user_to_teamAdd User for Team
- asana.create_a_projectCreate a project
- asana.create_allocationCreate Allocation
destructive
20Delete, cancel or archive. Ask first, or deny outright.
- asana.delete_tagDelete a Tag
- asana.delete_taskDelete a task
- asana.delete_storyDelete Story
- asana.delete_projectDelete a project
- asana.delete_sectionDelete a section
- asana.delete_allocationDelete Allocation
- asana.delete_attachmentDelete Attachment
- asana.delete_membershipDelete Membership
- asana.delete_custom_fieldDelete Custom Field
- asana.delete_project_briefDelete Project Brief
- asana.delete_status_updateDelete Status Update
- asana.remove_tag_from_taskRemove Tag from Task
- asana.remove_user_for_teamRemove User For Team
- asana.delete_project_statusDelete Project Status
- asana.remove_project_from_taskRemove Project from Task
- asana.remove_follower_from_taskRemove Follower From Task
Asana in three steps.
- 01Your users connect AsanaThey sign in to Asana on Arc0 Connect, under your brand, and approve the access you ask for.
- 02You set the rulesReads run, writes like “create a tag” can wait for the user, and “delete a Tag” can be denied outright.
- 03Any agent can actYour agent calls Asana through the Arc0 SDK or MCP, and so can Claude, ChatGPT and Cursor. Every call lands on the audit log.
await arc0.policies.set('asana', { read: 'allow', write: 'ask', // create_tag destructive: 'deny', // delete_tag }) # Claude Code: the same connection, one URL $ claude mcp add --transport http arc0 \ https://mcp.arc0.ai/u/u_8f2
How Asana connects.
Users sign in to Asana on Arc0 Connect and approve the scopes you request. Build with Arc0’s Asana OAuth app, or bring your own so the Asana consent screen names you. Tokens refresh automatically, and you can export them whenever you want.
The same Asana connection serves your agent over MCP and your own backend over REST and the proxy, so a user connects once. How Arc0 handles credentials →
- AUTH
- OAuth 2.0
- CREDENTIALS
- Per-tenant encrypted vault
- MODEL SEES
- Results only, never credentials
- AUDIT LOG
- Every call, on every plan
Use Asana from any agent.
Asana and Arc0, answered.
Can I use Asana with Claude, ChatGPT or Cursor?
Yes. Connect Asana to Arc0 once, then add your Arc0 MCP URL to Claude, ChatGPT, Cursor, Claude Code or any other remote-MCP client. Each assistant only gets the Asana actions you allow.
How do users connect Asana?
Users sign in to Asana on Arc0 Connect and approve the scopes you request. Build with Arc0’s Asana OAuth app, or bring your own so the Asana consent screen names you. Tokens refresh automatically, and you can export them whenever you want.
Which Asana actions can my agent take?
153 in total: 80 read, 53 write and 20 destructive, such as “create a tag”. Your policies decide which of them each agent may call.
Can I stop my agent from deleting things in Asana?
Yes. Actions like “delete a Tag” are graded destructive. Set destructive actions to deny, or to ask so the user approves each one, and blocked calls still show up on the audit log.
Can my own backend call Asana too?
Yes. The same Asana connection is available over REST and through the Arc0 proxy, so your product and your agent share one connection per user.
Plug Asana into your agent.
Your users connect Asana once, under your brand. Your agent gets 153 actions behind your policies, with every call on the record.
Free to build · MCP + REST · Audit log on every plan