
Wraps Asana's REST API through OAuth so Claude can query your project management data directly. Currently exposes one tool to list workspaces, returning the IDs needed for project and task operations. Hosted through Pipeworx's gateway, which means you can either connect to the standalone Asana endpoint or add the full Pipeworx gateway for 673+ data sources. Includes an ask_pipeworx function that handles tool selection and argument mapping from natural language queries. Useful if you're already running Asana workspaces and want Claude to pull task lists, project status, or workspace metadata without switching contexts.
Public tool metadata for what this MCP can expose to an agent.
get_attachmentsList all attachments for a project, project brief, or task. Returns attachment names, IDs, and URLs (download_url, permanent_url, view_url). Use for accessing files attached to Asana objects. Supports pagination for objects with many attachments.4 paramsList all attachments for a project, project brief, or task. Returns attachment names, IDs, and URLs (download_url, permanent_url, view_url). Use for accessing files attached to Asana objects. Supports pagination for objects with many attachments.
limitnumberoffsetstringopt_fieldsstringparentstringget_portfolioGet detailed portfolio data by ID including name, owner, and projects. Use after finding portfolio ID via search_objects. Returns complete portfolio configuration. Essential for understanding portfolio context and content.2 paramsGet detailed portfolio data by ID including name, owner, and projects. Use after finding portfolio ID via search_objects. Returns complete portfolio configuration. Essential for understanding portfolio context and content.
opt_fieldsstringportfolio_gidstringget_portfoliosList portfolios in workspace owned by the current user. REQUIRES workspace parameter. Returns portfolio names and IDs for portfolios you own. Use for portfolio discovery and management. Supports pagination for workspaces with many portfolios.3 paramsList portfolios in workspace owned by the current user. REQUIRES workspace parameter. Returns portfolio names and IDs for portfolios you own. Use for portfolio discovery and management. Supports pagination for workspaces with many portfolios.
limitnumberoffsetstringopt_fieldsstringget_items_for_portfolioList projects, goals, and other items in a portfolio. Returns item names, IDs, and types. Use for portfolio content exploration and management. Supports pagination for portfolios with many items.4 paramsList projects, goals, and other items in a portfolio. Returns item names, IDs, and types. Use for portfolio content exploration and management. Supports pagination for portfolios with many items.
limitnumberoffsetstringopt_fieldsstringportfolio_gidstringget_projectGet detailed project data including name, description, owner, members, and current status. Also returns task counts (num_tasks, num_incomplete_tasks, num_completed_tasks) and optionally sections. A null task_counts or sections value means the data could not be retrieved and sh...3 paramsGet detailed project data including name, description, owner, members, and current status. Also returns task counts (num_tasks, num_incomplete_tasks, num_completed_tasks) and optionally sections. A null task_counts or sections value means the data could not be retrieved and sh...
include_sectionsbooleanopt_fieldsstringproject_idstringget_projectsList projects in a workspace, optionally filtered by team. Returns project names, IDs, owner info, and task counts (num_tasks, num_incomplete_tasks, num_completed_tasks). A null task_counts value means counts could not be retrieved and should not be interpreted as zero.5 paramsList projects in a workspace, optionally filtered by team. Returns project names, IDs, owner info, and task counts (num_tasks, num_incomplete_tasks, num_completed_tasks). A null task_counts value means counts could not be retrieved and should not be interpreted as zero.
archivedbooleanlimitnumberoffsetstringopt_fieldsstringteamstringcreate_project_status_updatePost a status update to a project or portfolio. Use for project health updates, milestone documentation, or blocker reporting. Returns created status with gid, parent, title, status_type, author, created_at, permalink_url. One of text or html_text must be provided.5 paramsPost a status update to a project or portfolio. Use for project health updates, milestone documentation, or blocker reporting. Returns created status with gid, parent, title, status_type, author, created_at, permalink_url. One of text or html_text must be provided.
colorstringgreen · yellow · red · blue · completehtml_textstringparentstringtextstringtitlestringcreate_projectCreate a new project with optional sections and tasks in a single operation. Optionally pass sections, each with a sectionName and an optional list of tasks (with name, assignee, due_on, etc.), to set up the full project structure at creation time. Tasks are nested within thei...14 paramsCreate a new project with optional sections and tasks in a single operation. Optionally pass sections, each with a sectionName and an optional list of tasks (with name, assignee, due_on, etc.), to set up the full project structure at creation time. Tasks are nested within thei...
colorstringdark-pink · dark-green · dark-blue · dark-red · dark-teal · dark-browncustom_fieldsobjectdefault_access_levelstringadmin · editor · commenter · viewerdefault_viewstringlist · board · calendar · timelinedefault: listdue_onstringhtml_notesstringmembersstringnamestringnotesstringownerstringprivacy_settingstringpublic_to_workspace · private_to_team · privatesectionsarraystart_onstringteamstringget_status_overviewGet status overview and progress reports for initiatives/projects. Use this tool as a standalone when users ask for: status updates, status reports, project status, work overview, progress overview, initiative status, identified blockers, or any status-related queries. This to...2 paramsGet status overview and progress reports for initiatives/projects. Use this tool as a standalone when users ask for: status updates, status reports, project status, work overview, progress overview, initiative status, identified blockers, or any status-related queries. This to...
keywordsstringopt_fieldsstringsearch_tasksPremium accounts only. Advanced task search with full-text and complex filters. Searches task names, descriptions, and comments. Returns tasks with gid, name, assignee, due_on, completed. When the user asks about tasks assigned to them, use assignee_any="me" for best results....28 paramsPremium accounts only. Advanced task search with full-text and complex filters. Searches task names, descriptions, and comments. Returns tasks with gid, name, assignee, due_on, completed. When the user asks about tasks assigned to them, use assignee_any="me" for best results....
assignee_anystringcompletedbooleancompleted_at_afterstringcompleted_at_beforestringcompleted_on_afterstringcompleted_on_beforestringcreated_at_afterstringcreated_at_beforestringcreated_by_anystringcreated_on_afterstringcreated_on_beforestringcustom_fieldsstringdue_onstringdue_on_afterstringdue_on_beforestringfollowers_anystringis_subtaskbooleanlimitnumbermodified_at_afterstringmodified_on_afterstring+8 more parameters. See the server's own documentation for the full schema.
Asana MCP — wraps the Asana REST API (OAuth)
Part of Pipeworx — an MCP gateway connecting AI agents to 1476+ live data sources.
| Tool | Description |
|---|---|
asana_list_workspaces | Get all accessible Asana workspaces. Returns workspace names and IDs needed to list projects and tasks. |
asana_list_tasks | List tasks in a project. Returns task ID, name, completion status, assignee, and due date. Requires project ID. |
asana_get_task | Get full task details including name, description, assignee, projects, tags, subtasks, and status. Requires task ID. |
asana_create_task | Create a new task in a project. Returns task ID, name, and permalink. Requires project ID and task name. |
asana_list_projects | List all projects in a workspace. Returns project ID, name, and archived status. Requires workspace ID. |
asana_search_tasks | Search tasks across a workspace by keyword. Returns matching tasks with ID, name, completion status, and assignee. Requires workspace ID. |
Add to your MCP client (Claude Desktop, Cursor, Windsurf, etc.):
{
"mcpServers": {
"asana": {
"url": "https://gateway.pipeworx.io/asana/mcp"
}
}
}
tools/list at https://gateway.pipeworx.io/asana/mcp returns the tools in the table
above plus the shared Pipeworx meta-tools — ask_pipeworx,
discover_tools, search_within, remember/recall and the rest of the
gateway-wide set. So the tool count you see is larger than this table: a
single-pack endpoint currently lists roughly 30 shared tools alongside the
pack's own. The connection's initialize response states its exact scope, and
is the authoritative answer for a given day.
This is deliberate, not multiplexing by accident. The meta-tools are what let a
scoped connection answer a question this pack does not cover — via
ask_pipeworx, which routes across the whole catalog — without you adding a
second MCP server. There is currently no way to mount a pack endpoint without
them; if the extra schemas cost you more context than the routing is worth,
connect to the full gateway once rather than to several pack endpoints.
Or connect to the full Pipeworx gateway to get every pack's tools listed directly, instead of just this one's:
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
Both URLs reach the same gateway and the same 1476+ data sources. The
only difference is which pack's tools are listed directly; ask_pipeworx
reaches all of them from either one.
Instead of calling tools directly, you can ask questions in plain English — this works on the pack endpoint above as well as on the full gateway:
ask_pipeworx({ question: "your question about Asana data" })
The gateway picks the right tool and fills the arguments automatically.
MIT