MCP Tools Reference
The Asana V2 MCP server exposes a set of tools that allow AI assistants to read from and write to your Asana workspace. This page lists every available tool, what it does, and when to use it.
This list changes over time. Tools may be added, updated, or deprecated as the tool set evolves. Always use the
tools/listMCP command in your client to get the current tool schemas. Subscribe to the developer changelog for update notifications.
How to use this reference
Tools are grouped into three categories:
- Read tools return data from your workspace without making any changes.
- Write tools create, modify, or delete data in your workspace.
- Interactive tools render a confirmation UI before committing a change. These are currently available in Claude and ChatGPT.
Access and permissions: MCP apps in Asana do not use permission scopes. When a user authorizes an MCP client, the token automatically requests full access to all available tools. Once authorized, a tool cannot access projects, tasks, or data that the authenticated user does not already have permission to view in Asana.
Read tools
| Tool | Description | Example prompts |
|---|---|---|
search_objects | Universal search across Asana resource types. Use this as the first step when you don't know the GID of an object. Supports tasks, projects, portfolios, goals, teams, users, tags, and custom fields. V2 does not include a dedicated goals tool ā use search_objects with resource_type: goal to find goals by name or partial match. | "Find the Q3 Planning project" / "Show me the marketing portfolios" |
get_task | Returns full details for a single task: name, description, assignee, due dates, custom fields, project memberships, dependencies, subtasks, and comments. | "Show me the details of this task" / "What are the subtasks on the Website Redesign task?" |
get_tasks | Returns a filtered list of tasks by context. Requires at least one filter: project, section, tag, user task list, or assignee. Supports additional filters for completion status and modification date. | "List all incomplete tasks in the Marketing project" / "Show me tasks assigned to me that were modified this week" |
get_my_tasks | Returns tasks assigned to the currently authenticated user. A shortcut for common "what's on my plate" queries. Supports filtering by completion status. | "What tasks do I have?" / "Show me my incomplete tasks" |
search_tasks | Advanced task search with full-text and complex filters. Searches task names, descriptions, and comments. Supports filtering by assignee, due date, creation date, project, section, tag, and custom fields. Available on Premium accounts only; use get_tasks for non-Premium workspaces. | "Find all overdue tasks assigned to me" / "Search for tasks mentioning 'API redesign' due this month" |
get_project | Returns full details for a single project: name, description, owner, member list, task counts, and optionally the project's sections. | "Show me the details of the Product Launch project" / "What sections does the Sprint 12 project have?" |
get_projects | Returns a list of projects in the workspace. Optionally filter by team or include archived projects. | "List all active projects" / "Show me projects for the Engineering team" |
get_portfolio | Returns full details for a single portfolio, including name, owner, and associated projects. | "Show me the details of the Q4 portfolio" |
get_portfolios | Returns a list of portfolios owned by the authenticated user in the current workspace. | "What portfolios do I own?" / "List all my portfolios" |
get_items_for_portfolio | Returns the items inside a portfolio, including projects and goals with their names and IDs. | "What projects are in the Company Goals portfolio?" / "List the items in this portfolio" |
get_status_overview | Returns an aggregated status report for one or more projects or portfolios based on keyword search. Includes project details, current status updates, task summaries, and flagged blockers. This tool handles its own search internally ā do not chain other search tools before calling it. | "Give me a status overview of the Rebrand initiative" / "What's the current status of Q2 planning?" |
get_attachments | Returns attachments for a task, project, or project brief. Includes file names, download URLs, and view URLs. | "What files are attached to this task?" / "Show me the attachments on the Design Spec project" |
get_user | Returns details for a user by GID, email address, or the string "me". Returns name, email, and workspace memberships. When called without a user identifier, returns the authenticated user. | "Who am I authenticated as?" |
get_me | Returns the name, email, and workspace memberships of the currently authenticated user. Use when you need specific details about the authenticated user rather than just their GID. | "What account am I logged in as?" / "Show me my user details" |
get_users | Returns a list of users in the workspace. Optionally filter by team membership. Supports pagination for large workspaces. | "Who is on the Engineering team?" / "List all users in the workspace" |
get_teams | Returns a list of teams in the workspace. Optionally filter to only teams a specific user belongs to. | "List all teams in the workspace" / "What teams is this user a member of?" |
Write tools
| Tool | Description | Example prompts |
|---|---|---|
create_tasks | Creates one or more tasks immediately, without a confirmation step. Supports up to 50 tasks per call. Each task can specify a project, section, parent task (for subtasks), assignee, due date, start date, description, followers, and custom field values. Use create_task_preview in Claude or ChatGPT when you want to review before creating. | "Create tasks for each item in this list" / "Add three subtasks to this parent task" |
create_project | Creates a new project immediately, without a confirmation step. Optionally include sections and tasks in a single operation to set up the full project structure at creation time. Use create_project_preview in Claude or ChatGPT when you want to review the plan before creating. | "Create a project for the Q4 launch with a Backlog and In Progress section" / "Set up a new project for the design team" |
update_tasks | Updates one or more tasks in a single operation. Supports up to 50 tasks per call. Fields that can be updated include name, assignee, due date, start date, description, completion status, parent, dependencies, dependents, project membership, followers, and custom fields. | "Mark these tasks as complete" |
delete_task | Permanently deletes a task and any of its subtasks that are not also members of another project. This action cannot be undone. | "Delete this duplicate task" |
add_comment | Adds a comment to a task. Supports plain text and HTML-formatted comments, @-mentions via GID references, and pinned comments. Use only for discussion, feedback, or context ā not for actions Asana logs automatically (such as assignments or status changes). | "Add a comment saying the design files are ready for review" / "Post a summary of today's decisions to this task" |
create_project_status_update | Posts a status update to a project or portfolio. Requires a title, a status color (green, yellow, red, blue, or complete), and body text. Supports plain text and HTML. | "Post a green status update to the Q3 Roadmap project saying we're on track" / "Mark the Product Launch portfolio as at risk" |
Interactive tools
These tools render a confirmation UI before committing a change. They are currently available in Claude and ChatGPT. Other MCP clients use the standard write tools directly.
| Tool | Description | Example prompts |
|---|---|---|
create_task_preview | Drafts a task and presents it for review before creating it in Asana. Use this when creating a single task and you want to confirm the details first. Fields in the preview: name, assignee, due date, start date, project, and section. | "Create a task to follow up with the design team" / "Add a task for the kickoff meeting prep" |
create_project_preview | Drafts a structured project plan and presents it for review before creating it in Asana. Generates a project with sections, tasks, assignees, due dates, and priorities. | "Create a project to manage our Q4 product launch" / "Set up a project for the website redesign" |
search_tasks_preview | Searches for tasks and displays results in an interactive UI. Supports filtering by assignee, due date range, start date, completion status, and text search. | "Show me all tasks due this week" / "Find incomplete tasks assigned to me |
Tips for developers
- Migrating from V1? Tool names in V2 no longer use the
asana_prefix āasana_create_taskis nowcreate_task, and so on. Many tools that previously required aworkspaceGidparameter no longer do, because workspace scope is set at authorization time. Review the V2 changelog post for the full list of what was renamed, consolidated, and dropped. - Use
tools/listfor current schemas. Tool parameters may change over time. The authoritative source for parameter names, types, and constraints is thetools/listMCP command, not this page. - Tokens are workspace-scoped. When you authorize an MCP session, you select a specific workspace. All tool calls in that session are scoped to that workspace. To work across multiple workspaces, you need separate sessions.
- MCP tokens do not work with the Asana REST API. Tokens issued for MCP apps are valid only for the MCP server. For standard API access, create a separate app and authenticate through the standard OAuth flow.
- App visibility can be limited to specific workspaces for private apps In the Asana developer console under "Manage distribution", you can control which workspaces' users are allowed to see your app.
Related resources
- Using Asana's MCP Server: setup and connection guide for end users
- Integrating with Asana's MCP Server: OAuth app registration and authorization flow for developers
- Connecting coding clients to Asana's V2 server: setup instructions for Claude Code, Cursor, VS Code, Codex, and more
- API changelog: subscribe for API and MCP updates
Updated about 4 hours ago