asana_add_ followers_ for_ taskAdd followers to a task.
Search every task in a workspace, reassign and re-date them in bulk, spin up projects with sections and subtasks, and pull the comment history behind any piece of work.
PopMCPAsana
Every task, project, section, portfolio, goal, tag, custom field and time-tracking call PopMCP exposes, plus the webhooks and polls it watches for you.
asana_add_ followers_ for_ taskAdd followers to a task.
asana_add_ project_ for_ taskAdd a project to a task.
asana_add_ tag_ for_ taskAdd a tag to a task.
asana_create_ subtask_ for_ taskCreate a subtask.
asana_create_ taskCreate a task.
asana_delete_ taskDelete a task.
asana_get_ subtasks_ for_ taskGet subtasks from a task.
asana_get_ taskGet a task.
asana_get_ tasksGet multiple tasks.
asana_get_ tasks_ for_ projectGet tasks from a project.
asana_search_ tasks_ for_ workspaceSearch tasks in a workspace.
asana_set_ parent_ for_ taskSet the parent of a task.
asana_update_ taskUpdate a task.
asana_create_ projectCreate a project.
asana_delete_ projectDelete a project.
asana_get_ projectGet a project.
asana_get_ projectsGet multiple projects.
asana_get_ projects_ for_ teamGet a team's projects.
asana_get_ projects_ for_ workspaceGet all projects in a workspace.
asana_update_ projectUpdate a project.
asana_get_ items_ for_ portfolioGet portfolio items.
asana_get_ portfolioGet a portfolio.
asana_get_ portfoliosGet multiple portfolios.
asana_get_ goalGet a goal.
asana_get_ goalsGet goals.
asana_create_ tagCreate a tag.
asana_get_ custom_ fieldGet a custom field.
asana_get_ custom_ fields_ for_ workspaceGet a workspace's custom fields.
asana_get_ tagsGet multiple tags.
asana_get_ tags_ for_ workspaceGet tags in a workspace.
asana_get_ userGet an user.
asana_get_ usersGet multiple users.
asana_get_ users_ for_ workspaceGet users in a workspace or organization.
asana_add_ task_ for_ sectionAdd task to section.
asana_create_ section_ for_ projectCreate a section in a project.
asana_create_ story_ for_ taskCreate a story on a task.
asana_get_ sections_ for_ projectGet sections in a project.
asana_get_ stories_ for_ taskGet stories from a task.
asana_get_ teamGet a team.
asana_get_ teams_ for_ workspaceGet teams in a workspace.
asana_get_ workspaceGet a workspace.
asana_get_ workspacesGet multiple workspaces.
asana_create_ webhookEstablish a webhook.
asana_delete_ webhookDelete a webhook.
asana_get_ webhooksGet multiple webhooks.
asana_get_ attachmentGet an attachment.
asana_get_ attachments_ for_ objectGet attachments from an object.
asana_typeahead_ for_ workspaceGet objects via typeahead.
asana_add_ dependencies_ for_ taskSet dependencies for a task.
asana_add_ dependents_ for_ taskSet dependents for a task.
asana_duplicate_ taskDuplicate a task.
asana_get_ dependencies_ for_ taskGet dependencies from a task.
asana_get_ dependents_ for_ taskGet dependents from a task.
asana_get_ task_ for_ custom_ idGet a task for a given custom ID.
asana_get_ tasks_ for_ sectionGet tasks from a section.
asana_get_ tasks_ for_ tagGet tasks from a tag.
asana_get_ tasks_ for_ user_ task_ listGet tasks from an user task list.
asana_remove_ dependencies_ for_ taskUnlink dependencies from a task.
asana_remove_ dependents_ for_ taskUnlink dependents from a task.
asana_remove_ follower_ for_ taskRemove followers from a task.
asana_remove_ project_ for_ taskRemove a project from a task.
asana_remove_ tag_ for_ taskRemove a tag from a task.
asana_add_ custom_ field_ setting_ for_ projectAdd a custom field to a project.
asana_add_ followers_ for_ projectAdd followers to a project.
asana_add_ members_ for_ projectAdd users to a project.
asana_create_ project_ for_ teamCreate a project in a team.
asana_create_ project_ for_ workspaceCreate a project in a workspace.
asana_duplicate_ projectDuplicate a project.
asana_get_ projects_ for_ taskGet projects a task is in.
asana_get_ task_ counts_ for_ projectGet task count of a project.
asana_project_ save_ as_ templateCreate a project template from a project.
asana_remove_ custom_ field_ setting_ for_ projectRemove a custom field from a project.
asana_remove_ followers_ for_ projectRemove followers from a project.
asana_remove_ members_ for_ projectRemove users from a project.
asana_search_ projects_ for_ workspaceSearch projects in a workspace.
asana_add_ custom_ field_ setting_ for_ portfolioAdd a custom field to a portfolio.
asana_add_ item_ for_ portfolioAdd a portfolio item.
asana_add_ members_ for_ portfolioAdd users to a portfolio.
asana_create_ portfolioCreate a portfolio.
asana_delete_ portfolioDelete a portfolio.
asana_duplicate_ portfolioDuplicate a portfolio.
asana_remove_ custom_ field_ setting_ for_ portfolioRemove a custom field from a portfolio.
asana_remove_ item_ for_ portfolioRemove a portfolio item.
asana_remove_ members_ for_ portfolioRemove users from a portfolio.
asana_update_ portfolioUpdate a portfolio.
asana_add_ custom_ field_ setting_ for_ goalAdd a custom field to a goal.
asana_add_ followersAdd a collaborator to a goal.
asana_create_ goalCreate a goal.
asana_create_ goal_ metricCreate a goal metric.
asana_delete_ goalDelete a goal.
asana_get_ parent_ goals_ for_ goalGet parent goals from a goal.
asana_remove_ custom_ field_ setting_ for_ goalRemove a custom field from a goal.
asana_remove_ followersRemove a collaborator from a goal.
asana_update_ goalUpdate a goal.
asana_update_ goal_ metricUpdate a goal metric.
asana_create_ custom_ fieldCreate a custom field.
asana_create_ enum_ option_ for_ custom_ fieldCreate an enum option.
asana_create_ tag_ for_ workspaceCreate a tag in a workspace.
asana_delete_ custom_ fieldDelete a custom field.
asana_delete_ tagDelete a tag.
asana_get_ favorites_ for_ userGet an user's favorites.
asana_get_ tagGet a tag.
asana_get_ tags_ for_ taskGet a task's tags.
asana_get_ user_ for_ workspaceGet an user in a workspace or organization.
asana_get_ users_ for_ teamGet users in a team.
asana_insert_ enum_ option_ for_ custom_ fieldReorder a custom field's enum.
asana_update_ custom_ fieldUpdate a custom field.
asana_update_ enum_ optionUpdate an enum option.
asana_update_ tagUpdate a tag.
asana_update_ userUpdate an user.
asana_update_ user_ for_ workspaceUpdate an user in a workspace or organization.
asana_add_ user_ for_ teamAdd an user to a team.
asana_create_ story_ for_ goalCreate a story on a goal.
asana_create_ teamCreate a team.
asana_delete_ sectionDelete a section.
asana_delete_ storyDelete a story.
asana_get_ sectionGet a section.
asana_get_ stories_ for_ goalGet stories from a goal.
asana_get_ storyGet a story.
asana_get_ teams_ for_ userGet teams for an user.
asana_insert_ section_ for_ projectMove or Insert sections.
asana_remove_ user_ for_ teamRemove an user from a team.
asana_update_ sectionUpdate a section.
asana_update_ storyUpdate a story.
asana_update_ teamUpdate a team.
asana_add_ user_ for_ workspaceAdd an user to a workspace or organization.
asana_create_ time_ tracking_ categoryCreate a time tracking category.
asana_create_ time_ tracking_ entryCreate a time tracking entry.
asana_delete_ time_ tracking_ categoryDelete a time tracking category.
asana_delete_ time_ tracking_ entryDelete a time tracking entry.
asana_get_ time_ tracking_ categoriesGet time tracking categories for a workspace.
asana_get_ time_ tracking_ categoryGet a time tracking category.
asana_get_ time_ tracking_ entriesGet multiple time tracking entries.
asana_get_ time_ tracking_ entries_ for_ taskGet time tracking entries for a task.
asana_get_ time_ tracking_ entries_ for_ time_ tracking_ categoryGet time tracking entries for a time tracking category.
asana_get_ time_ tracking_ entryGet a time tracking entry.
asana_get_ workspace_ eventsGet workspace events.
asana_remove_ user_ for_ workspaceRemove an user from a workspace or organization.
asana_update_ time_ tracking_ categoryUpdate a time tracking category.
asana_update_ time_ tracking_ entryUpdate a time tracking entry.
asana_update_ workspaceUpdate a workspace.
asana_add_ supporting_ relationshipAdd a supporting goal relationship.
asana_create_ allocationCreate an allocation.
asana_create_ budgetCreate a budget.
asana_create_ membershipCreate a membership.
asana_create_ ooo_ entryCreate an OOO entry.
asana_create_ rateCreate a rate.
asana_create_ roleCreate a role.
asana_delete_ allocationDelete an allocation.
asana_delete_ budgetDelete a budget.
asana_delete_ membershipDelete a membership.
asana_delete_ ooo_ entryDelete an OOO entry.
asana_delete_ project_ templateDelete a project template.
asana_delete_ rateDelete a rate.
asana_delete_ roleDelete a role.
asana_get_ allocationGet an allocation.
asana_get_ allocationsGet multiple allocations.
asana_get_ budgetGet a budget.
asana_get_ budgetsGet all budgets.
asana_get_ goal_ relationshipGet a goal relationship.
asana_get_ goal_ relationshipsGet goal relationships.
asana_get_ membershipGet a membership.
asana_get_ membershipsGet multiple memberships.
asana_get_ ooo_ entriesGet OOO entries for an user.
asana_get_ ooo_ entryGet an OOO entry.
asana_get_ project_ templateGet a project template.
asana_get_ project_ templatesGet multiple project templates.
asana_get_ project_ templates_ for_ teamGet a team's project templates.
asana_get_ rateGet a rate.
asana_get_ ratesGet multiple rates.
asana_get_ roleGet a role.
asana_get_ rolesGet multiple roles.
asana_get_ webhookGet a webhook.
asana_instantiate_ projectInstantiate a project from a project template.
asana_remove_ supporting_ relationshipRemoves a supporting goal relationship.
asana_update_ allocationUpdate an allocation.
asana_update_ budgetUpdate a budget.
asana_update_ goal_ relationshipUpdate a goal relationship.
asana_update_ membershipUpdate a membership.
asana_update_ ooo_ entryUpdate an OOO entry.
asana_update_ rateUpdate a rate.
asana_update_ roleUpdate a role.
asana_update_ webhookUpdate a webhook.
asana_approve_ access_ requestApprove an access request.
asana_create_ access_ requestCreate an access request.
asana_create_ attachment_ for_ objectUpload an attachment.
asana_create_ project_ briefCreate a project brief.
asana_create_ project_ status_ for_ projectCreate a project status.
asana_create_ status_ for_ objectCreate a status update.
asana_create_ timesheet_ approval_ statusCreate a timesheet approval status.
asana_delete_ attachmentDelete an attachment.
asana_delete_ project_ briefDelete a project brief.
asana_delete_ project_ statusDelete a project status.
asana_delete_ statusDelete a status update.
asana_delete_ task_ templateDelete a task template.
asana_get_ access_ requestsGet access requests.
asana_get_ custom_ field_ settings_ for_ goalGet a goal's custom fields.
asana_get_ custom_ field_ settings_ for_ portfolioGet a portfolio's custom fields.
asana_get_ custom_ field_ settings_ for_ projectGet a project's custom fields.
asana_get_ custom_ field_ settings_ for_ teamGet a team's custom fields.
asana_get_ project_ briefGet a project brief.
asana_get_ project_ portfolio_ settingGet a project portfolio setting.
asana_get_ project_ portfolio_ settings_ for_ portfolioGet project portfolio settings for a portfolio.
asana_get_ project_ portfolio_ settings_ for_ projectGet project portfolio settings for a project.
asana_get_ project_ statusGet a project status.
asana_get_ project_ statuses_ for_ projectGet statuses from a project.
asana_get_ statusGet a status update.
asana_get_ statuses_ for_ objectGet status updates from an object.
asana_get_ task_ templateGet a task template.
asana_get_ task_ templatesGet multiple task templates.
asana_get_ team_ membershipGet a team membership.
asana_get_ team_ membershipsGet team memberships.
asana_get_ team_ memberships_ for_ teamGet memberships from a team.
asana_get_ team_ memberships_ for_ userGet memberships from an user.
asana_get_ timesheet_ approval_ statusGet a timesheet approval status.
asana_get_ timesheet_ approval_ statusesGet multiple timesheet approval statuses.
asana_instantiate_ taskInstantiate a task from a task template.
asana_reject_ access_ requestReject an access request.
asana_update_ project_ briefUpdate a project brief.
asana_update_ project_ portfolio_ settingUpdate a project portfolio setting.
asana_update_ timesheet_ approval_ statusUpdate a timesheet approval status.
asana_get_ portfolio_ membershipGet a portfolio membership.
asana_get_ portfolio_ membershipsGet multiple portfolio memberships.
asana_get_ portfolio_ memberships_ for_ portfolioGet memberships from a portfolio.
asana_get_ workspace_ membershipGet a workspace membership.
asana_get_ workspace_ memberships_ for_ userGet workspace memberships for an user.
asana_get_ workspace_ memberships_ for_ workspaceGet the workspace memberships for a workspace.
asana_create_ graph_ exportInitiate a graph export.
asana_create_ organization_ exportCreate an organization export request.
asana_create_ resource_ exportInitiate a resource export.
asana_get_ agentGet an agent.
asana_get_ agents_ for_ workspaceGet a list of agents in a workspace.
asana_get_ custom_ typeGet a custom type.
asana_get_ custom_ typesGet all custom types associated with an object.
asana_get_ organization_ exportGet details on an org export request.
asana_get_ project_ membershipGet a project membership.
asana_get_ project_ memberships_ for_ projectGet memberships from a project.
asana_get_ time_ periodGet a time period.
asana_get_ time_ periodsGet time periods.
asana_create_ batch_ requestSubmit parallel requests.
asana_get_ audit_ log_ eventsGet audit log events.
asana_get_ eventsGet events on a resource.
asana_get_ jobGet a job by id.
asana_get_ reactions_ on_ objectGet reactions with an emoji base on an object..
asana_get_ user_ task_ listGet an user task list.
asana_get_ user_ task_ list_ for_ userGet an user's task list.
asana_trigger_ ruleTrigger a rule.
Credentials off one Asana screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.
Paste a Personal Access Token — it authenticates as you over HTTPS, with no OAuth app, redirect URL or client secret. Then choose which Asana workspaces to connect and which PopMCP workspace each lands in.
••••••••••••3f7aSet the connection to read-only for reporting, or full access to write. Hold writes for approval so deleting a project or task waits for your yes, and turn on the full catalog when you need modules past the defaults.
Drop the PopMCP URL into Claude, ChatGPT, Codex or any other supported client. It signs in through PopMCP with OAuth, so your Asana credential never leaves the server.
app.popmcp.com/mcp/…Ask for something harmless before you turn writes on. Once it comes back clean, widen the tool set or switch the connection to full access.
Which tasks in the Q3 Launch project are overdue and who owns them
asana_get_projects_for_workspaceok
Then just ask for the work
“Which tasks in the Q3 Launch project are overdue and who owns them”
“Find every unassigned task due this week in Marketing and assign them to Priya”
“Set up a Website Redesign project with Design, Build and QA sections and a kickoff task”
“Show the projects in our Roadmap portfolio and the last comment on each blocked task”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting Asana behind an AI client.
No. The connect form asks for one value, a Personal Access Token, and that token authenticates as you over HTTPS. There is no OAuth app, redirect URL, or client secret to register beforehand. Generate the PAT in Asana, paste it, and the connection is live.
You decide after the token is accepted. PopMCP asks which Asana workspaces to connect and which PopMCP workspace each one belongs in, so a client's workspace and your internal one stay separate. Because the token authenticates as you, the agent only reaches projects and tasks your own Asana account can already see.
247 operations across 48 API modules, split 117 read and 130 write. 48 load by default so your AI client's tool list stays workable, and the rest stay searchable, so a request that needs portfolios or the audit log still resolves. There are also 24 triggers PopMCP can watch.
Task created, task updated, task deleted, task removed from project, comment added, project created, project updated, project deleted, section added, file attached, and project member added all come through Asana webhooks. Task completed, status update posted, and time logged are polled instead, so those land on a check interval rather than the second they happen. Worth knowing if you are building an approval flow that fires the moment someone ticks a task off.
Yes. get_custom_fields_for_workspace lists what your workspace defines and get_custom_field returns a single definition with its options, so the agent knows the real values before it filters. search_tasks_for_workspace is Asana's advanced search, so priority, stage, or any other custom field can narrow the result set.
Yes. Portfolios, goals, status updates, teams, tags, sections, attachments, memberships, time tracking, and webhooks are all covered, along with the batch, typeahead, and audit log APIs. So an agent can walk from a portfolio to its projects to the goal they roll up to, or read time logged against a single task, without you wiring two tools together.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server — Claude Desktop, Claude Web, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Loading 247 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 48-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. You can switch a connection to the full catalog at any time.
A tool is something your AI calls — there are 247 here. A trigger is something PopMCP watches for you: 24 Asana events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Asana.
Launch a hosted MCP endpoint for Asana, keep tool access under control, and start testing real workflow prompts right away.