Asana
Connect Asana to Claude, ChatGPT or Cursor via MCP. OAuth setup with workspaces, projects, tasks, stories, tags, and portfolios.
Overview
Connect Asana to give AI clients access to your workspaces, projects, tasks, stories, tags, and portfolios for product and project management. This is the hosted Asana MCP integration for Claude, ChatGPT, Cursor, and other MCP clients — no self-hosted server required.
This integration is not created by, affiliated with, or supported by Asana.
Common use cases
- Asana connector for AI agents — list projects, search tasks, update work items, and post comments from chat.
- Asana OAuth MCP — approve access once; stackgate.ai stores and refreshes credentials securely.
- Private gateway — combine Asana with Gmail, Slack, and other integrations through one governed endpoint.
Prerequisites
- An Asana account with workspaces and projects you want AI to access
- A stackgate.ai account
Getting credentials
- Sign in to stackgate.ai.
- Go to Integrations and open Asana.
- Click Activate, then Connect Asana.
- Choose standard or scoped tool access, approve the Asana OAuth prompt — stackgate.ai stores your tokens securely.
No manual personal access tokens are required for end users.
Operators: create an OAuth app in the Asana developer console, set the redirect URI to https://stackgate.ai/oauth/asana/callback, and under OAuth → Permission scopes enable Full permissions. Asana’s section list/create endpoints (and some project fields) are not covered by granular scopes yet, so stackgate.ai requests the default scope. Hub-side Read/Write tool selection still limits which MCP tools a connection may call.
Using with AI clients
- Dedicated endpoint:
POST /mcp/asanawith a Sanctum bearer token - Private gateway: one config for all integrations — use
asana__*namespaced tools
See Documentation for HTTP authentication and private gateway setup.
Troubleshooting
- 422 integration not configured — complete the OAuth connect flow in My Integrations.
- OAuth redirect mismatch — in the Asana developer console, add this exact redirect URI:
https://stackgate.ai/oauth/asana/callback. It must matchASANA_REDIRECT_URIcharacter-for-character. - 401 unauthorized from Asana — disconnect and reconnect Asana from the integration page (access tokens expire after about an hour; refresh should renew them automatically).
- 429 too many requests — Asana enforces per-minute and concurrency limits; wait for Retry-After and avoid tight polling loops.
- forbidden_scopes on authorize — enable Full permissions on your Asana app under OAuth → Permission scopes (this integration requests the
defaultscope). - Full permissions required / section tools fail — list-sections and create-section need Full permissions; reconnect Asana after enabling it. You can still discover section GIDs from
list-tasks→memberships.section. - search-tasks premium-only — Asana’s task search API requires a paid Asana plan on the connected workspace.
- portfolios plan-only — portfolio tools require Asana Business or Enterprise.
Available tools
-
get_me
Return the connected Asana user profile.
-
list_workspaces
List Asana workspaces accessible to the connected account.
-
list_teams
List teams in an Asana workspace (organizations only).
-
list_users
List users in an Asana workspace — use to resolve assignees.
-
typeahead
Search Asana objects in a workspace via typeahead (task, project, user, portfolio, tag, and more).
-
list_projects
List projects in an Asana workspace.
-
get_project
Get details for an Asana project by GID.
-
create_project
Create a project in an Asana workspace or team.
-
update_project
Update an Asana project name, notes, archived flag, or color.
-
list_sections
List sections (columns/groups) in an Asana project.
-
create_section
Create a section in an Asana project.
-
list_tasks
List tasks for a project, section, or assignee+workspace. Provide project_gid, section_gid, or assignee with workspace_gid.
-
search_tasks
Search tasks in a workspace with text and filters (Asana task search API).
-
get_task
Get full details for an Asana task by GID.
-
create_task
Create an Asana task. Provide workspace and/or projects (project GID).
-
update_task
Update an Asana task name, notes, assignee, due date, or completed status.
-
delete_task
Permanently delete an Asana task.
-
duplicate_task
Duplicate an Asana task.
-
list_subtasks
List subtasks of an Asana task.
-
create_subtask
Create a subtask under an Asana task.
-
add_task_to_section
Move or add an Asana task into a project section.
-
add_task_to_project
Add an Asana task to a project (optionally into a section).
-
remove_task_from_project
Remove an Asana task from a project.
-
list_task_stories
List stories (comments and activity) on an Asana task.
-
create_task_story
Add a comment (story) to an Asana task.
-
list_tags
List tags in an Asana workspace.
-
add_tag_to_task
Add a tag to an Asana task.
-
remove_tag_from_task
Remove a tag from an Asana task.
-
list_portfolios
List portfolios in an Asana workspace owned by a user (defaults to me).
-
get_portfolio
Get details for an Asana portfolio.
-
list_portfolio_items
List items (projects/portfolios) in an Asana portfolio.
MCP endpoint:
https://stackgate.ai/mcp/asana
(HTTP) or via the
private gateway.